From cba85576a1614f4b279e2785204eff46f02b130a Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Sat, 20 Jul 2024 10:26:03 +0000 Subject: [PATCH] build based on 2da44be --- dev/404.html | 4 +- dev/api.html | 52 +++++++++--------- dev/assets/aawycxi.0nxlbsqv.png | Bin 58927 -> 0 bytes ...feag.Cx40vhB3.png => anpauvw.Cx40vhB3.png} | Bin ...{api.md.BaSIMxyj.js => api.md.D8vRTXzc.js} | 42 +++++++------- ...SIMxyj.lean.js => api.md.D8vRTXzc.lean.js} | 2 +- .../{app.DKLFVYt5.js => app.D52uw_PB.js} | 2 +- dev/assets/azslksb.DfFnyYWA.png | Bin 0 -> 65746 bytes ...tssm.CG4dr3Lx.png => bawalzh.CG4dr3Lx.png} | Bin ...exok.CZy9YIUA.png => bdqumbk.CZy9YIUA.png} | Bin dev/assets/bjjpnwy.CGuOBdTF.png | Bin 62608 -> 0 bytes ...wfat.B9NpLJr_.png => bvuwypa.B9NpLJr_.png} | Bin ....C_fGYeG6.js => call_notes.md.Sm3Jf0W7.js} | 2 +- ...lean.js => call_notes.md.Sm3Jf0W7.lean.js} | 2 +- ...ajgs.CULn5saZ.png => cdpcpju.CULn5saZ.png} | Bin .../chunks/@localSearchIndexroot.Bw2U9g4S.js | 1 - .../chunks/@localSearchIndexroot.CJomwgzg.js | 1 + ...C0vCad.js => VPLocalSearchBox.BQzORzSF.js} | 4 +- dev/assets/chunks/framework.B24clL9_.js | 17 ------ dev/assets/chunks/framework.CpnCegiD.js | 17 ++++++ .../{theme.CA8W1fhX.js => theme.DpIXNgls.js} | 4 +- ...sxlq.Dig-DWOQ.png => cifeaqx.Dig-DWOQ.png} | Bin ...cwxh._0R9BbFk.png => dgfelxe._0R9BbFk.png} | Bin ...xcun.DC3TvBOO.png => doyulqn.DC3TvBOO.png} | Bin ...fyzm.DuBHk1fh.png => dyqtlpa.DuBHk1fh.png} | Bin ...ents_accurate_accumulators.md.CqEFN_MH.js} | 2 +- ...accurate_accumulators.md.CqEFN_MH.lean.js} | 2 +- ... => experiments_predicates.md.DS4MeDQL.js} | 2 +- ...xperiments_predicates.md.DS4MeDQL.lean.js} | 2 +- ...UE-.js => explanations_crs.md.D9xjcHO4.js} | 2 +- ...s => explanations_crs.md.D9xjcHO4.lean.js} | 2 +- ... => explanations_paradigms.md.PSNZ06gt.js} | 2 +- ...xplanations_paradigms.md.PSNZ06gt.lean.js} | 2 +- ...explanations_peculiarities.md.B6SBpZ9S.js} | 2 +- ...nations_peculiarities.md.B6SBpZ9S.lean.js} | 2 +- ...explanations_winding_order.md.Cf8Ra8rH.js} | 2 +- ...nations_winding_order.md.Cf8Ra8rH.lean.js} | 2 +- ...wabp.-VpeHhXX.png => fkidkll.-VpeHhXX.png} | Bin ...hvry.DwqDxlAG.png => fktvlcp.DwqDxlAG.png} | Bin ...sagc.Dab1-ETk.png => futqezz.Dab1-ETk.png} | Bin dev/assets/ghuyiqw.ntn85YF1.png | Bin 206880 -> 0 bytes dev/assets/haxqwpd.T7QiddIg.png | Bin 77830 -> 0 bytes ...yhtn.Bglvb-jp.png => ihbnhiw.Bglvb-jp.png} | Bin ...ex.md.CU0EZZRg.js => index.md.BDvCOB10.js} | 2 +- ...ZZRg.lean.js => index.md.BDvCOB10.lean.js} | 2 +- ...lgnl.C3SxJ3x-.png => ingzict.C3SxJ3x-.png} | Bin ...xgq13n_.js => introduction.md.C36sb0xX.js} | 2 +- ...an.js => introduction.md.C36sb0xX.lean.js} | 2 +- dev/assets/jehsbsq.Ca53rWB_.png | Bin 0 -> 77705 bytes ...trqs.CLtpJ5Wb.png => kcnoiau.CLtpJ5Wb.png} | Bin ...qfhf.DaovVbE6.png => kssggsd.DaovVbE6.png} | Bin ...puin.Dz86q2IX.png => ksxutwl.Dz86q2IX.png} | Bin ...jhet.BEFUMtlf.png => lhpdfnq.BEFUMtlf.png} | Bin ...cypg.BD0hVfse.png => lnugvso.BD0hVfse.png} | Bin ...nycn.BOOG5oTW.png => lpjngjy.BOOG5oTW.png} | Bin ...llgl.DHcwB147.png => lsfurro.DHcwB147.png} | Bin ...ykgu.Cb0_DiYE.png => odnjzpw.Cb0_DiYE.png} | Bin ...sisg.DeeQUply.png => ofqxxvh.DeeQUply.png} | Bin dev/assets/oglzmiy.BGGXnzMt.png | Bin 0 -> 59321 bytes dev/assets/ozfobmp.CdEPS9bT.png | Bin 228525 -> 0 bytes ...tgip.B94PsR1K.png => prkyiek.B94PsR1K.png} | Bin ...vmse.CgiryX2p.png => qmdfdhw.CgiryX2p.png} | Bin dev/assets/qtioqlb.D_GL9RZM.png | Bin 66418 -> 0 bytes dev/assets/sbyddke.BQg609vq.png | Bin 0 -> 63408 bytes ...K.js => source_GeometryOps.md.lnbjBCgq.js} | 2 +- ...=> source_GeometryOps.md.lnbjBCgq.lean.js} | 2 +- ...s => source_methods_angles.md.D6z_FLba.js} | 6 +- ...source_methods_angles.md.D6z_FLba.lean.js} | 2 +- ....js => source_methods_area.md.BVvuCOln.js} | 6 +- ...> source_methods_area.md.BVvuCOln.lean.js} | 2 +- ...source_methods_barycentric.md.Crjs7J0g.js} | 2 +- ...e_methods_barycentric.md.Crjs7J0g.lean.js} | 2 +- ...s => source_methods_buffer.md.DazqrJzE.js} | 2 +- ...source_methods_buffer.md.DazqrJzE.lean.js} | 2 +- ...=> source_methods_centroid.md.IR8dpgJi.js} | 4 +- ...urce_methods_centroid.md.IR8dpgJi.lean.js} | 2 +- ...lipping_clipping_processor.md.BWhMiGnY.js} | 16 +++--- ...ng_clipping_processor.md.BWhMiGnY.lean.js} | 2 +- ..._methods_clipping_coverage.md.KxEH9c7F.js} | 2 +- ...ods_clipping_coverage.md.KxEH9c7F.lean.js} | 2 +- ...ource_methods_clipping_cut.md.DwfIybVD.js} | 4 +- ..._methods_clipping_cut.md.DwfIybVD.lean.js} | 2 +- ...ethods_clipping_difference.md.CtVeedUt.js} | 8 +-- ...s_clipping_difference.md.CtVeedUt.lean.js} | 2 +- ...hods_clipping_intersection.md.BFsZe1GD.js} | 16 +++--- ...clipping_intersection.md.BFsZe1GD.lean.js} | 2 +- ...ethods_clipping_predicates.md.DndNuKgS.js} | 2 +- ...s_clipping_predicates.md.DndNuKgS.lean.js} | 2 +- ...rce_methods_clipping_union.md.wPjIz2t-.js} | 8 +-- ...ethods_clipping_union.md.wPjIz2t-.lean.js} | 2 +- ...=> source_methods_distance.md.B1hZWVIF.js} | 2 +- ...urce_methods_distance.md.B1hZWVIF.lean.js} | 2 +- ...s => source_methods_equals.md.Ch6uNWJu.js} | 12 ++-- .../source_methods_equals.md.Ch6uNWJu.lean.js | 1 + .../source_methods_equals.md.De9KY65L.lean.js | 1 - ...ds_geom_relations_contains.md.BS3Tc390.js} | 2 +- ...om_relations_contains.md.BS3Tc390.lean.js} | 2 +- ...s_geom_relations_coveredby.md.CBrVFPVo.js} | 6 +- ...m_relations_coveredby.md.CBrVFPVo.lean.js} | 2 +- ...hods_geom_relations_covers.md.CJImsgZm.js} | 2 +- ...geom_relations_covers.md.CJImsgZm.lean.js} | 2 +- ...ods_geom_relations_crosses.md.DFkK36VY.js} | 2 +- ...eom_relations_crosses.md.DFkK36VY.lean.js} | 2 +- ...ds_geom_relations_disjoint.md.Ey3ncSdC.js} | 4 +- ...om_relations_disjoint.md.Ey3ncSdC.lean.js} | 2 +- ...tions_geom_geom_processors.md.BKbXzScL.js} | 20 +++---- ..._geom_geom_processors.md.BKbXzScL.lean.js} | 2 +- ..._geom_relations_intersects.md.BipP7oNj.js} | 2 +- ..._relations_intersects.md.BipP7oNj.lean.js} | 2 +- ...ds_geom_relations_overlaps.md.-oFxCtIE.js} | 8 +-- ...om_relations_overlaps.md.-oFxCtIE.lean.js} | 2 +- ...ods_geom_relations_touches.md.Be6oTFXc.js} | 16 +++--- ...eom_relations_touches.md.Be6oTFXc.lean.js} | 2 +- ...hods_geom_relations_within.md.326UAtQM.js} | 2 +- ...geom_relations_within.md.326UAtQM.lean.js} | 2 +- ...source_methods_orientation.md.DA9Vnshv.js} | 2 +- ...e_methods_orientation.md.DA9Vnshv.lean.js} | 2 +- ... source_methods_polygonize.md.S22nQIi1.js} | 6 +- ...ce_methods_polygonize.md.S22nQIi1.lean.js} | 2 +- ...source_not_implemented_yet.md.B6R1ju5V.js} | 2 +- ...e_not_implemented_yet.md.B6R1ju5V.lean.js} | 2 +- ...TX.js => source_primitives.md.Ci3epseD.js} | 22 ++++---- ... => source_primitives.md.Ci3epseD.lean.js} | 2 +- ...ons_correction_closed_ring.md.By-OKekv.js} | 2 +- ...orrection_closed_ring.md.By-OKekv.lean.js} | 2 +- ...ection_geometry_correction.md.Bj6QaD57.js} | 2 +- ...n_geometry_correction.md.Bj6QaD57.lean.js} | 2 +- ...tion_intersecting_polygons.md.RsuC_abn.js} | 2 +- ...intersecting_polygons.md.RsuC_abn.lean.js} | 2 +- ...rce_transformations_extent.md.BPu3IaY5.js} | 2 +- ...ransformations_extent.md.BPu3IaY5.lean.js} | 2 +- ...ource_transformations_flip.md.BGimQo7i.js} | 2 +- ..._transformations_flip.md.BGimQo7i.lean.js} | 2 +- ...e_transformations_reproject.md.6JWOJF2A.js | 1 - ...e_transformations_reproject.md.DHAjuiB9.js | 1 + ...sformations_reproject.md.DHAjuiB9.lean.js} | 2 +- ...transformations_segmentize.md.D4VG4yA6.js} | 2 +- ...formations_segmentize.md.D4VG4yA6.lean.js} | 2 +- ...e_transformations_simplify.md.BT2U96wa.js} | 16 +++--- ...nsformations_simplify.md.BT2U96wa.lean.js} | 2 +- ..._transformations_transform.md.DzNIRGhW.js} | 4 +- ...sformations_transform.md.DzNIRGhW.lean.js} | 2 +- ...rce_transformations_tuples.md.ZfaVsRxE.js} | 2 +- ...ransformations_tuples.md.ZfaVsRxE.lean.js} | 2 +- ...ZoqYnp-.js => source_types.md.CpC4Xnr3.js} | 2 +- ...an.js => source_types.md.CpC4Xnr3.lean.js} | 2 +- ...jHA-HQh.js => source_utils.md.Czr5gCUE.js} | 2 +- ...an.js => source_utils.md.Czr5gCUE.lean.js} | 2 +- ...qnrr.lu4jwpi-.png => tgxocmm.lu4jwpi-.png} | Bin ...ials_creating_geometry.md.Dpft0-QP.lean.js | 1 - ...utorials_creating_geometry.md.k23w5UdQ.js} | 6 +- ...ials_creating_geometry.md.k23w5UdQ.lean.js | 1 + ...=> tutorials_spatial_joins.md.CcDuRcBC.js} | 2 +- ...torials_spatial_joins.md.CcDuRcBC.lean.js} | 2 +- dev/assets/usyjtvi.CKZ1zuzD.png | Bin 0 -> 230732 bytes dev/assets/uugsbqm.CgeJoG2G.png | Bin 0 -> 208870 bytes ...bhxl.3sfpQl2i.png => vmgxabz.3sfpQl2i.png} | Bin ...evil.0OJvb21A.png => wecdjri.0OJvb21A.png} | Bin ...amec.3UVIT8DR.png => wjmfxnc.3UVIT8DR.png} | Bin ...svjw.DiwGEg2f.png => yfkpvhd.DiwGEg2f.png} | Bin dev/call_notes.html | 10 ++-- dev/experiments/accurate_accumulators.html | 10 ++-- dev/experiments/predicates.html | 12 ++-- dev/explanations/crs.html | 10 ++-- dev/explanations/paradigms.html | 10 ++-- dev/explanations/peculiarities.html | 10 ++-- dev/explanations/winding_order.html | 10 ++-- dev/hashmap.json | 2 +- dev/index.html | 10 ++-- dev/introduction.html | 10 ++-- dev/source/GeometryOps.html | 10 ++-- dev/source/methods/angles.html | 16 +++--- dev/source/methods/area.html | 16 +++--- dev/source/methods/barycentric.html | 12 ++-- dev/source/methods/buffer.html | 10 ++-- dev/source/methods/centroid.html | 14 ++--- .../methods/clipping/clipping_processor.html | 24 ++++---- dev/source/methods/clipping/coverage.html | 14 ++--- dev/source/methods/clipping/cut.html | 14 ++--- dev/source/methods/clipping/difference.html | 16 +++--- dev/source/methods/clipping/intersection.html | 24 ++++---- dev/source/methods/clipping/predicates.html | 10 ++-- dev/source/methods/clipping/union.html | 16 +++--- dev/source/methods/distance.html | 16 +++--- dev/source/methods/equals.html | 18 +++--- .../methods/geom_relations/contains.html | 14 ++--- .../methods/geom_relations/coveredby.html | 16 +++--- dev/source/methods/geom_relations/covers.html | 14 ++--- .../methods/geom_relations/crosses.html | 10 ++-- .../methods/geom_relations/disjoint.html | 14 ++--- .../geom_relations/geom_geom_processors.html | 28 +++++----- .../methods/geom_relations/intersects.html | 12 ++-- .../methods/geom_relations/overlaps.html | 18 +++--- .../methods/geom_relations/touches.html | 28 +++++----- dev/source/methods/geom_relations/within.html | 12 ++-- dev/source/methods/orientation.html | 10 ++-- dev/source/methods/polygonize.html | 14 ++--- dev/source/not_implemented_yet.html | 10 ++-- dev/source/primitives.html | 30 +++++----- .../correction/closed_ring.html | 10 ++-- .../correction/geometry_correction.html | 10 ++-- .../correction/intersecting_polygons.html | 12 ++-- dev/source/transformations/extent.html | 10 ++-- dev/source/transformations/flip.html | 10 ++-- dev/source/transformations/reproject.html | 16 +++--- dev/source/transformations/segmentize.html | 14 ++--- dev/source/transformations/simplify.html | 32 +++++------ dev/source/transformations/transform.html | 12 ++-- dev/source/transformations/tuples.html | 10 ++-- dev/source/types.html | 10 ++-- dev/source/utils.html | 10 ++-- dev/tutorials/creating_geometry.html | 34 ++++++------ dev/tutorials/spatial_joins.html | 16 +++--- 213 files changed, 632 insertions(+), 632 deletions(-) delete mode 100644 dev/assets/aawycxi.0nxlbsqv.png rename dev/assets/{kvzfeag.Cx40vhB3.png => anpauvw.Cx40vhB3.png} (100%) rename dev/assets/{api.md.BaSIMxyj.js => api.md.D8vRTXzc.js} (88%) rename dev/assets/{api.md.BaSIMxyj.lean.js => api.md.D8vRTXzc.lean.js} (98%) rename dev/assets/{app.DKLFVYt5.js => app.D52uw_PB.js} (90%) create mode 100644 dev/assets/azslksb.DfFnyYWA.png rename dev/assets/{fxutssm.CG4dr3Lx.png => bawalzh.CG4dr3Lx.png} (100%) rename dev/assets/{zjkexok.CZy9YIUA.png => bdqumbk.CZy9YIUA.png} (100%) delete mode 100644 dev/assets/bjjpnwy.CGuOBdTF.png rename dev/assets/{wpfwfat.B9NpLJr_.png => bvuwypa.B9NpLJr_.png} (100%) rename dev/assets/{call_notes.md.C_fGYeG6.js => call_notes.md.Sm3Jf0W7.js} (96%) rename dev/assets/{call_notes.md.C_fGYeG6.lean.js => call_notes.md.Sm3Jf0W7.lean.js} (67%) rename dev/assets/{lqjajgs.CULn5saZ.png => cdpcpju.CULn5saZ.png} (100%) delete mode 100644 dev/assets/chunks/@localSearchIndexroot.Bw2U9g4S.js create mode 100644 dev/assets/chunks/@localSearchIndexroot.CJomwgzg.js rename dev/assets/chunks/{VPLocalSearchBox.10C0vCad.js => VPLocalSearchBox.BQzORzSF.js} (82%) delete mode 100644 dev/assets/chunks/framework.B24clL9_.js create mode 100644 dev/assets/chunks/framework.CpnCegiD.js rename dev/assets/chunks/{theme.CA8W1fhX.js => theme.DpIXNgls.js} (99%) rename dev/assets/{zhfsxlq.Dig-DWOQ.png => cifeaqx.Dig-DWOQ.png} (100%) rename dev/assets/{olvcwxh._0R9BbFk.png => dgfelxe._0R9BbFk.png} (100%) rename dev/assets/{jxbxcun.DC3TvBOO.png => doyulqn.DC3TvBOO.png} (100%) rename dev/assets/{krsfyzm.DuBHk1fh.png => dyqtlpa.DuBHk1fh.png} (100%) rename dev/assets/{experiments_accurate_accumulators.md.BPqWh7OV.js => experiments_accurate_accumulators.md.CqEFN_MH.js} (98%) rename dev/assets/{experiments_accurate_accumulators.md.BPqWh7OV.lean.js => experiments_accurate_accumulators.md.CqEFN_MH.lean.js} (73%) rename dev/assets/{experiments_predicates.md.Bv_nbSH7.js => experiments_predicates.md.DS4MeDQL.js} (99%) rename dev/assets/{experiments_predicates.md.Bv_nbSH7.lean.js => experiments_predicates.md.DS4MeDQL.lean.js} (73%) rename dev/assets/{explanations_crs.md.DJ9--UE-.js => explanations_crs.md.D9xjcHO4.js} (83%) rename dev/assets/{explanations_crs.md.DJ9--UE-.lean.js => explanations_crs.md.D9xjcHO4.lean.js} (83%) rename dev/assets/{explanations_paradigms.md.DBcWqEbw.js => explanations_paradigms.md.PSNZ06gt.js} (97%) rename dev/assets/{explanations_paradigms.md.DBcWqEbw.lean.js => explanations_paradigms.md.PSNZ06gt.lean.js} (70%) rename dev/assets/{explanations_peculiarities.md.YNoUlJgY.js => explanations_peculiarities.md.B6SBpZ9S.js} (96%) rename dev/assets/{explanations_peculiarities.md.YNoUlJgY.lean.js => explanations_peculiarities.md.B6SBpZ9S.lean.js} (71%) rename dev/assets/{explanations_winding_order.md.C9ZwbxD-.js => explanations_winding_order.md.Cf8Ra8rH.js} (84%) rename dev/assets/{explanations_winding_order.md.C9ZwbxD-.lean.js => explanations_winding_order.md.Cf8Ra8rH.lean.js} (84%) rename dev/assets/{emzwabp.-VpeHhXX.png => fkidkll.-VpeHhXX.png} (100%) rename dev/assets/{chjhvry.DwqDxlAG.png => fktvlcp.DwqDxlAG.png} (100%) rename dev/assets/{zkusagc.Dab1-ETk.png => futqezz.Dab1-ETk.png} (100%) delete mode 100644 dev/assets/ghuyiqw.ntn85YF1.png delete mode 100644 dev/assets/haxqwpd.T7QiddIg.png rename dev/assets/{reeyhtn.Bglvb-jp.png => ihbnhiw.Bglvb-jp.png} (100%) rename dev/assets/{index.md.CU0EZZRg.js => index.md.BDvCOB10.js} (96%) rename dev/assets/{index.md.CU0EZZRg.lean.js => index.md.BDvCOB10.lean.js} (92%) rename dev/assets/{esclgnl.C3SxJ3x-.png => ingzict.C3SxJ3x-.png} (100%) rename dev/assets/{introduction.md.Bxgq13n_.js => introduction.md.C36sb0xX.js} (95%) rename dev/assets/{introduction.md.Bxgq13n_.lean.js => introduction.md.C36sb0xX.lean.js} (68%) create mode 100644 dev/assets/jehsbsq.Ca53rWB_.png rename dev/assets/{nuutrqs.CLtpJ5Wb.png => kcnoiau.CLtpJ5Wb.png} (100%) rename dev/assets/{hbkqfhf.DaovVbE6.png => kssggsd.DaovVbE6.png} (100%) rename dev/assets/{qkrpuin.Dz86q2IX.png => ksxutwl.Dz86q2IX.png} (100%) rename dev/assets/{adbjhet.BEFUMtlf.png => lhpdfnq.BEFUMtlf.png} (100%) rename dev/assets/{liicypg.BD0hVfse.png => lnugvso.BD0hVfse.png} (100%) rename dev/assets/{nzznycn.BOOG5oTW.png => lpjngjy.BOOG5oTW.png} (100%) rename dev/assets/{fgtllgl.DHcwB147.png => lsfurro.DHcwB147.png} (100%) rename dev/assets/{qdzykgu.Cb0_DiYE.png => odnjzpw.Cb0_DiYE.png} (100%) rename dev/assets/{lbpsisg.DeeQUply.png => ofqxxvh.DeeQUply.png} (100%) create mode 100644 dev/assets/oglzmiy.BGGXnzMt.png delete mode 100644 dev/assets/ozfobmp.CdEPS9bT.png rename dev/assets/{cpjtgip.B94PsR1K.png => prkyiek.B94PsR1K.png} (100%) rename dev/assets/{atfvmse.CgiryX2p.png => qmdfdhw.CgiryX2p.png} (100%) delete mode 100644 dev/assets/qtioqlb.D_GL9RZM.png create mode 100644 dev/assets/sbyddke.BQg609vq.png rename dev/assets/{source_GeometryOps.md.CEBUZDYK.js => source_GeometryOps.md.lnbjBCgq.js} (99%) rename dev/assets/{source_GeometryOps.md.CEBUZDYK.lean.js => source_GeometryOps.md.lnbjBCgq.lean.js} (70%) rename dev/assets/{source_methods_angles.md.Co3OX7YF.js => source_methods_angles.md.D6z_FLba.js} (99%) rename dev/assets/{source_methods_angles.md.Co3OX7YF.lean.js => source_methods_angles.md.D6z_FLba.lean.js} (73%) rename dev/assets/{source_methods_area.md.CyNnYHMW.js => source_methods_area.md.BVvuCOln.js} (92%) rename dev/assets/{source_methods_area.md.CyNnYHMW.lean.js => source_methods_area.md.BVvuCOln.lean.js} (64%) rename dev/assets/{source_methods_barycentric.md.9FZWAtEK.js => source_methods_barycentric.md.Crjs7J0g.js} (99%) rename dev/assets/{source_methods_barycentric.md.9FZWAtEK.lean.js => source_methods_barycentric.md.Crjs7J0g.lean.js} (98%) rename dev/assets/{source_methods_buffer.md.DkINH657.js => source_methods_buffer.md.DazqrJzE.js} (98%) rename dev/assets/{source_methods_buffer.md.DkINH657.lean.js => source_methods_buffer.md.DazqrJzE.lean.js} (70%) rename dev/assets/{source_methods_centroid.md.BnJYQgzS.js => source_methods_centroid.md.IR8dpgJi.js} (99%) rename dev/assets/{source_methods_centroid.md.BnJYQgzS.lean.js => source_methods_centroid.md.IR8dpgJi.lean.js} (64%) rename dev/assets/{source_methods_clipping_clipping_processor.md.Bcxp8BIM.js => source_methods_clipping_clipping_processor.md.BWhMiGnY.js} (96%) rename dev/assets/{source_methods_clipping_clipping_processor.md.Bcxp8BIM.lean.js => source_methods_clipping_clipping_processor.md.BWhMiGnY.lean.js} (75%) rename dev/assets/{source_methods_clipping_coverage.md.0c_XYlaF.js => source_methods_clipping_coverage.md.KxEH9c7F.js} (99%) rename dev/assets/{source_methods_clipping_coverage.md.0c_XYlaF.lean.js => source_methods_clipping_coverage.md.KxEH9c7F.lean.js} (74%) rename dev/assets/{source_methods_clipping_cut.md.B9hPmCjC.js => source_methods_clipping_cut.md.DwfIybVD.js} (99%) rename dev/assets/{source_methods_clipping_cut.md.B9hPmCjC.lean.js => source_methods_clipping_cut.md.DwfIybVD.lean.js} (74%) rename dev/assets/{source_methods_clipping_difference.md.OH-ojrcQ.js => source_methods_clipping_difference.md.CtVeedUt.js} (98%) rename dev/assets/{source_methods_clipping_difference.md.OH-ojrcQ.lean.js => source_methods_clipping_difference.md.CtVeedUt.lean.js} (73%) rename dev/assets/{source_methods_clipping_intersection.md.CxIjImlm.js => source_methods_clipping_intersection.md.BFsZe1GD.js} (99%) rename dev/assets/{source_methods_clipping_intersection.md.CxIjImlm.lean.js => source_methods_clipping_intersection.md.BFsZe1GD.lean.js} (73%) rename dev/assets/{source_methods_clipping_predicates.md.G1r6ZHhc.js => source_methods_clipping_predicates.md.DndNuKgS.js} (99%) rename dev/assets/{source_methods_clipping_predicates.md.G1r6ZHhc.lean.js => source_methods_clipping_predicates.md.DndNuKgS.lean.js} (75%) rename dev/assets/{source_methods_clipping_union.md.2_48PnSR.js => source_methods_clipping_union.md.wPjIz2t-.js} (98%) rename dev/assets/{source_methods_clipping_union.md.2_48PnSR.lean.js => source_methods_clipping_union.md.wPjIz2t-.lean.js} (72%) rename dev/assets/{source_methods_distance.md.CyM1f5P-.js => source_methods_distance.md.B1hZWVIF.js} (99%) rename dev/assets/{source_methods_distance.md.CyM1f5P-.lean.js => source_methods_distance.md.B1hZWVIF.lean.js} (65%) rename dev/assets/{source_methods_equals.md.De9KY65L.js => source_methods_equals.md.Ch6uNWJu.js} (98%) create mode 100644 dev/assets/source_methods_equals.md.Ch6uNWJu.lean.js delete mode 100644 dev/assets/source_methods_equals.md.De9KY65L.lean.js rename dev/assets/{source_methods_geom_relations_contains.md.BBjEMOLE.js => source_methods_geom_relations_contains.md.BS3Tc390.js} (91%) rename dev/assets/{source_methods_geom_relations_contains.md.BBjEMOLE.lean.js => source_methods_geom_relations_contains.md.BS3Tc390.lean.js} (76%) rename dev/assets/{source_methods_geom_relations_coveredby.md.DsEyTkLB.js => source_methods_geom_relations_coveredby.md.CBrVFPVo.js} (99%) rename dev/assets/{source_methods_geom_relations_coveredby.md.DsEyTkLB.lean.js => source_methods_geom_relations_coveredby.md.CBrVFPVo.lean.js} (76%) rename dev/assets/{source_methods_geom_relations_covers.md.DBGlhZWH.js => source_methods_geom_relations_covers.md.CJImsgZm.js} (90%) rename dev/assets/{source_methods_geom_relations_covers.md.DBGlhZWH.lean.js => source_methods_geom_relations_covers.md.CJImsgZm.lean.js} (75%) rename dev/assets/{source_methods_geom_relations_crosses.md.CWVmsKpo.js => source_methods_geom_relations_crosses.md.DFkK36VY.js} (99%) rename dev/assets/{source_methods_geom_relations_crosses.md.CWVmsKpo.lean.js => source_methods_geom_relations_crosses.md.DFkK36VY.lean.js} (73%) rename dev/assets/{source_methods_geom_relations_disjoint.md.B8jOB-e2.js => source_methods_geom_relations_disjoint.md.Ey3ncSdC.js} (99%) rename dev/assets/{source_methods_geom_relations_disjoint.md.B8jOB-e2.lean.js => source_methods_geom_relations_disjoint.md.Ey3ncSdC.lean.js} (76%) rename dev/assets/{source_methods_geom_relations_geom_geom_processors.md.BjtPpMj6.js => source_methods_geom_relations_geom_geom_processors.md.BKbXzScL.js} (97%) rename dev/assets/{source_methods_geom_relations_geom_geom_processors.md.BjtPpMj6.lean.js => source_methods_geom_relations_geom_geom_processors.md.BKbXzScL.lean.js} (76%) rename dev/assets/{source_methods_geom_relations_intersects.md.DSsOzsR7.js => source_methods_geom_relations_intersects.md.BipP7oNj.js} (98%) rename dev/assets/{source_methods_geom_relations_intersects.md.DSsOzsR7.lean.js => source_methods_geom_relations_intersects.md.BipP7oNj.lean.js} (76%) rename dev/assets/{source_methods_geom_relations_overlaps.md.BvA1Wxsv.js => source_methods_geom_relations_overlaps.md.-oFxCtIE.js} (96%) rename dev/assets/{source_methods_geom_relations_overlaps.md.BvA1Wxsv.lean.js => source_methods_geom_relations_overlaps.md.-oFxCtIE.lean.js} (76%) rename dev/assets/{source_methods_geom_relations_touches.md.bOdhhT-s.js => source_methods_geom_relations_touches.md.Be6oTFXc.js} (97%) rename dev/assets/{source_methods_geom_relations_touches.md.bOdhhT-s.lean.js => source_methods_geom_relations_touches.md.Be6oTFXc.lean.js} (75%) rename dev/assets/{source_methods_geom_relations_within.md.CzUr-h8N.js => source_methods_geom_relations_within.md.326UAtQM.js} (99%) rename dev/assets/{source_methods_geom_relations_within.md.CzUr-h8N.lean.js => source_methods_geom_relations_within.md.326UAtQM.lean.js} (75%) rename dev/assets/{source_methods_orientation.md.CASnd2QG.js => source_methods_orientation.md.DA9Vnshv.js} (99%) rename dev/assets/{source_methods_orientation.md.CASnd2QG.lean.js => source_methods_orientation.md.DA9Vnshv.lean.js} (71%) rename dev/assets/{source_methods_polygonize.md.Geb3kI4e.js => source_methods_polygonize.md.S22nQIi1.js} (99%) rename dev/assets/{source_methods_polygonize.md.Geb3kI4e.lean.js => source_methods_polygonize.md.S22nQIi1.lean.js} (72%) rename dev/assets/{source_not_implemented_yet.md.DmzFilCO.js => source_not_implemented_yet.md.B6R1ju5V.js} (94%) rename dev/assets/{source_not_implemented_yet.md.DmzFilCO.lean.js => source_not_implemented_yet.md.B6R1ju5V.lean.js} (71%) rename dev/assets/{source_primitives.md.CJbutZTX.js => source_primitives.md.Ci3epseD.js} (97%) rename dev/assets/{source_primitives.md.CJbutZTX.lean.js => source_primitives.md.Ci3epseD.lean.js} (70%) rename dev/assets/{source_transformations_correction_closed_ring.md.BWSVYN50.js => source_transformations_correction_closed_ring.md.By-OKekv.js} (99%) rename dev/assets/{source_transformations_correction_closed_ring.md.BWSVYN50.lean.js => source_transformations_correction_closed_ring.md.By-OKekv.lean.js} (97%) rename dev/assets/{source_transformations_correction_geometry_correction.md.C9Yo3rkc.js => source_transformations_correction_geometry_correction.md.Bj6QaD57.js} (99%) rename dev/assets/{source_transformations_correction_geometry_correction.md.C9Yo3rkc.lean.js => source_transformations_correction_geometry_correction.md.Bj6QaD57.lean.js} (76%) rename dev/assets/{source_transformations_correction_intersecting_polygons.md.F5THHt5h.js => source_transformations_correction_intersecting_polygons.md.RsuC_abn.js} (95%) rename dev/assets/{source_transformations_correction_intersecting_polygons.md.F5THHt5h.lean.js => source_transformations_correction_intersecting_polygons.md.RsuC_abn.lean.js} (76%) rename dev/assets/{source_transformations_extent.md.DmS08vS9.js => source_transformations_extent.md.BPu3IaY5.js} (95%) rename dev/assets/{source_transformations_extent.md.DmS08vS9.lean.js => source_transformations_extent.md.BPu3IaY5.lean.js} (72%) rename dev/assets/{source_transformations_flip.md.BJm-42I_.js => source_transformations_flip.md.BGimQo7i.js} (97%) rename dev/assets/{source_transformations_flip.md.BJm-42I_.lean.js => source_transformations_flip.md.BGimQo7i.lean.js} (72%) delete mode 100644 dev/assets/source_transformations_reproject.md.6JWOJF2A.js create mode 100644 dev/assets/source_transformations_reproject.md.DHAjuiB9.js rename dev/assets/{source_transformations_reproject.md.6JWOJF2A.lean.js => source_transformations_reproject.md.DHAjuiB9.lean.js} (73%) rename dev/assets/{source_transformations_segmentize.md.DZWIMZsy.js => source_transformations_segmentize.md.D4VG4yA6.js} (99%) rename dev/assets/{source_transformations_segmentize.md.DZWIMZsy.lean.js => source_transformations_segmentize.md.D4VG4yA6.lean.js} (66%) rename dev/assets/{source_transformations_simplify.md.CTR8JsZ-.js => source_transformations_simplify.md.BT2U96wa.js} (99%) rename dev/assets/{source_transformations_simplify.md.CTR8JsZ-.lean.js => source_transformations_simplify.md.BT2U96wa.lean.js} (53%) rename dev/assets/{source_transformations_transform.md.DW-rR35W.js => source_transformations_transform.md.DzNIRGhW.js} (98%) rename dev/assets/{source_transformations_transform.md.DW-rR35W.lean.js => source_transformations_transform.md.DzNIRGhW.lean.js} (73%) rename dev/assets/{source_transformations_tuples.md.edr8CO-n.js => source_transformations_tuples.md.ZfaVsRxE.js} (96%) rename dev/assets/{source_transformations_tuples.md.edr8CO-n.lean.js => source_transformations_tuples.md.ZfaVsRxE.lean.js} (72%) rename dev/assets/{source_types.md.FZoqYnp-.js => source_types.md.CpC4Xnr3.js} (99%) rename dev/assets/{source_types.md.FZoqYnp-.lean.js => source_types.md.CpC4Xnr3.lean.js} (68%) rename dev/assets/{source_utils.md.HjHA-HQh.js => source_utils.md.Czr5gCUE.js} (99%) rename dev/assets/{source_utils.md.HjHA-HQh.lean.js => source_utils.md.Czr5gCUE.lean.js} (69%) rename dev/assets/{gotqnrr.lu4jwpi-.png => tgxocmm.lu4jwpi-.png} (100%) delete mode 100644 dev/assets/tutorials_creating_geometry.md.Dpft0-QP.lean.js rename dev/assets/{tutorials_creating_geometry.md.Dpft0-QP.js => tutorials_creating_geometry.md.k23w5UdQ.js} (98%) create mode 100644 dev/assets/tutorials_creating_geometry.md.k23w5UdQ.lean.js rename dev/assets/{tutorials_spatial_joins.md.DVpey7LA.js => tutorials_spatial_joins.md.CcDuRcBC.js} (99%) rename dev/assets/{tutorials_spatial_joins.md.DVpey7LA.lean.js => tutorials_spatial_joins.md.CcDuRcBC.lean.js} (91%) create mode 100644 dev/assets/usyjtvi.CKZ1zuzD.png create mode 100644 dev/assets/uugsbqm.CgeJoG2G.png rename dev/assets/{xizbhxl.3sfpQl2i.png => vmgxabz.3sfpQl2i.png} (100%) rename dev/assets/{vtsevil.0OJvb21A.png => wecdjri.0OJvb21A.png} (100%) rename dev/assets/{svnamec.3UVIT8DR.png => wjmfxnc.3UVIT8DR.png} (100%) rename dev/assets/{lipsvjw.DiwGEg2f.png => yfkpvhd.DiwGEg2f.png} (100%) diff --git a/dev/404.html b/dev/404.html index 476a1e884..aedf992fd 100644 --- a/dev/404.html +++ b/dev/404.html @@ -8,7 +8,7 @@ - + @@ -16,7 +16,7 @@
- + \ No newline at end of file diff --git a/dev/api.html b/dev/api.html index 4f91d04af..7cb517ec9 100644 --- a/dev/api.html +++ b/dev/api.html @@ -8,17 +8,17 @@ - + - - - + + + -
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

# GeometryOps.applyFunction.
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

# GeometryOps.applyFunction.
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)])])
@@ -27,7 +27,7 @@
     (GI.y(p), GI.x(p))
 end

source


# GeometryOps.applyreduceFunction.
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.reprojectFunction.
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 referece system, as a GeoFormatTypes.jl object or a string.

  • target_crs: the target coordinate referece 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 retreivable 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.transformFunction.
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.transformFunction.
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
 
@@ -40,7 +40,7 @@
 GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Linea
 rRing{false, false, Vector{StaticArraysCore.SVector{2, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Float64}}, Nothing, Nothing}(StaticArraysCo
 re.SVector{2, Float64}[[4.5, 3.5], [6.5, 5.5], [8.5, 7.5], [4.5, 3.5]], nothing, nothing), GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Float64}}, Nothing, Nothing}(StaticA
-rraysCore.SVector{2, Float64}[[6.5, 5.5], [8.5, 7.5], [9.5, 8.5], [6.5, 5.5]], nothing, nothing)], nothing, nothing)

With Rotations.jl you need to actuall multiply the Rotation by the SVector point, which is easy using an anonymous function.

julia
julia> using Rotations
+rraysCore.SVector{2, Float64}[[6.5, 5.5], [8.5, 7.5], [9.5, 8.5], [6.5, 5.5]], nothing, nothing)], nothing, nothing)

With Rotations.jl you need to actually multiply the Rotation by the SVector point, which is easy using an anonymous function.

julia
julia> using Rotations
 
 julia> GO.transform(p -> one(RotMatrix{2}) * p, geom)
 GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearR
@@ -89,7 +89,7 @@
 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 colinear 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(
@@ -104,7 +104,7 @@
 )::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.touchesFunction.
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 geometies 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.touchesFunction.
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)])
@@ -127,13 +127,13 @@
 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 defintion.

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 defintion, 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 defintion, 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.centroidFunction.
julia
centroid(geom, [T=Float64])::Tuple{T, T}

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

source


# GeometryOps.distanceFunction.
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_distanceFunction.
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.areaFunction.
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.
@@ -141,7 +141,7 @@
 - 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_areaFunction.
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slighly 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_areaFunction.
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
@@ -150,11 +150,11 @@
 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.anglesFunction.
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 polygin is a vector of vectors of angles formed by each ring.
+- 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_extentFunction.
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_coordinatesFunction.
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_interpolateFunction.
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.AbstractBarycentricCoordinateMethodType.
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.ClosedRingType.
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.DiffIntersectingPolygonsType.
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.DouglasPeuckerType.
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 uneccesary computation in algorithm.

source


# GeometryOps.GEOSType.
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.GeodesicSegmentsType.
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.GeometryCorrectionType.
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.LineOrientationType.
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 (colinear with the curve), or line_out (not interacting with the curve).

source


# GeometryOps.LinearSegmentsType.
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.MeanValueType.
julia
MeanValue() <: AbstractBarycentricCoordinateMethod

This method calculates barycentric coordinates using the mean value method.

References

source


# GeometryOps.PointOrientationType.
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.RadialDistanceType.
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 uneccesary computation in algorithm.

source


# GeometryOps.SimplifyAlgType.
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.TraitTargetType.
julia
TraitTarget{T}

This struct holds a trait parameter or a union of trait parameters.

It is primarily used for dispatch into methods which select trait levels, like apply, or as a parameter to target.

Constructors

julia
TraitTarget(GI.PointTrait())
+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.GEOSType.
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.GeodesicSegmentsType.
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.GeometryCorrectionType.
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.LineOrientationType.
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.LinearSegmentsType.
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.MeanValueType.
julia
MeanValue() <: AbstractBarycentricCoordinateMethod

This method calculates barycentric coordinates using the mean value method.

References

source


# GeometryOps.PointOrientationType.
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.RadialDistanceType.
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.SimplifyAlgType.
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.TraitTargetType.
julia
TraitTarget{T}

This struct holds a trait parameter or a union of trait parameters.

It is primarily used for dispatch into methods which select trait levels, like apply, or as a parameter to target.

Constructors

julia
TraitTarget(GI.PointTrait())
 TraitTarget(GI.LineStringTrait(), GI.LinearRingTrait()) # and other traits as you may like
 TraitTarget(TraitTarget(...))
 # There are also type based constructors available, but that's not advised.
@@ -162,10 +162,10 @@
 TraitTarget(Union{GI.LineStringTrait, GI.LinearRingTrait})
 # etc.

source


# GeometryOps.UnionIntersectingPolygonsType.
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.VisvalingamWhyattType.
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 uneccesary computation in algorithm.

source


# GeometryOps._detMethod.
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_curvesMethod.
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.anglesMethod.
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._detMethod.
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_curvesMethod.
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.anglesMethod.
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 polygin is a vector of vectors of angles formed by each ring.
+- 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.applyMethod.
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
@@ -237,13 +237,13 @@
 )::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.equalsMethod.
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 defintion, but rings are, so the line must have a repeated last point to be equal

source


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

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

source


# GeometryOps.equalsMethod.
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.equalsMethod.
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.equalsMethod.
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.equalsMethod.
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.equalsMethod.
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.equalsMethod.
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.equalsMethod.
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.equalsMethod.
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.equalsMethod.
julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

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

source


# GeometryOps.equalsMethod.
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.equalsMethod.
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.equalsMethod.
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.equalsMethod.
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.equalsMethod.
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.equalsMethod.
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.equalsMethod.
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.equalsMethod.
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 defintion, but rings are, so the line must have a repeated last point to be equal

source


# GeometryOps.equalsMethod.
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.equalsMethod.
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 defintion.

source


# GeometryOps.equalsMethod.
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.flattenMethod.
julia
flatten(target::Type{<:GI.AbstractTrait}, obj)
+)::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.equalsMethod.
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.flattenMethod.
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


# GeometryOps.flipMethod.
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.intersectionMethod.
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)])
@@ -295,7 +295,7 @@
 
 GO.overlaps(poly1, poly2)
 # output
-true

source


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

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

source


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

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

source


# GeometryOps.overlapsMethod.
julia
overlaps(
+true

source


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

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

source


# GeometryOps.overlapsMethod.
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.overlapsMethod.
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.overlapsMethod.
julia
overlaps(
@@ -323,14 +323,14 @@
 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.rebuildMethod.
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


# GeometryOps.reconstructMethod.
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.

Ususally used in combination with flatten.

source


# GeometryOps.segmentizeMethod.
julia
segmentize([method = LinearSegments()], 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::SegmentizeMethod = LinearSegments(): The method to use for segmentizing the geometry. At the moment, only LinearSegments and GeodesicSegments are available.

  • geom: The geometry to segmentize. Must be a LineString, LinearRing, or greater in complexity.

  • max_distance::Real: The maximum distance, in the input space, between vertices in the geometry. Only used if you don't explicitly pass a method.

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

source


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

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

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

source


# GeometryOps.rebuildMethod.
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


# GeometryOps.reconstructMethod.
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


# GeometryOps.segmentizeMethod.
julia
segmentize([method = LinearSegments()], 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::SegmentizeMethod = LinearSegments(): The method to use for segmentizing the geometry. At the moment, only LinearSegments and GeodesicSegments are available.

  • geom: The geometry to segmentize. Must be a LineString, LinearRing, or greater in complexity.

  • max_distance::Real: The maximum distance, in the input space, between vertices in the geometry. Only used if you don't explicitly pass a method.

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

source


# GeometryOps.signed_areaMethod.
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_distanceMethod.
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.simplifyMethod.
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 decreaseing 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
+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
 
 poly = GI.Polygon([[
@@ -372,7 +372,7 @@
 
 
 ```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.touchesMethod.
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 geometies interior or boundary.

Examples

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

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

source


# GeometryOps.touchesMethod.
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)])
@@ -392,7 +392,7 @@
 GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Linea
 rRing{false, false, Vector{StaticArraysCore.SVector{2, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Float64}}, Nothing, Nothing}(StaticArraysCo
 re.SVector{2, Float64}[[4.5, 3.5], [6.5, 5.5], [8.5, 7.5], [4.5, 3.5]], nothing, nothing), GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Float64}}, Nothing, Nothing}(StaticA
-rraysCore.SVector{2, Float64}[[6.5, 5.5], [8.5, 7.5], [9.5, 8.5], [6.5, 5.5]], nothing, nothing)], nothing, nothing)

With Rotations.jl you need to actuall multiply the Rotation by the SVector point, which is easy using an anonymous function.

julia
julia> using Rotations
+rraysCore.SVector{2, Float64}[[6.5, 5.5], [8.5, 7.5], [9.5, 8.5], [6.5, 5.5]], nothing, nothing)], nothing, nothing)

With Rotations.jl you need to actually multiply the Rotation by the SVector point, which is easy using an anonymous function.

julia
julia> using Rotations
 
 julia> GO.transform(p -> one(RotMatrix{2}) * p, geom)
 GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearR
@@ -416,7 +416,7 @@
 
 # output
 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/dev/assets/aawycxi.0nxlbsqv.png b/dev/assets/aawycxi.0nxlbsqv.png deleted file mode 100644 index eb91ea6fa0de2188f8bb78f7065bc396230dbe2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58927 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 diff --git a/dev/assets/kvzfeag.Cx40vhB3.png b/dev/assets/anpauvw.Cx40vhB3.png similarity index 100% rename from dev/assets/kvzfeag.Cx40vhB3.png rename to dev/assets/anpauvw.Cx40vhB3.png diff --git a/dev/assets/api.md.BaSIMxyj.js b/dev/assets/api.md.D8vRTXzc.js similarity index 88% rename from dev/assets/api.md.BaSIMxyj.js rename to dev/assets/api.md.D8vRTXzc.js index 168620a59..956d3c2bf 100644 --- a/dev/assets/api.md.BaSIMxyj.js +++ b/dev/assets/api.md.D8vRTXzc.js @@ -1,4 +1,4 @@ -import{_ as n,c as e,j as s,a,a7 as i,o as t}from"./chunks/framework.B24clL9_.js";const S=JSON.parse('{"title":"Full GeometryOps API documentation","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),l={name:"api.md"},h=i(`

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

# GeometryOps.applyFunction.
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{_ as n,c as e,j as s,a,a7 as i,o as t}from"./chunks/framework.CpnCegiD.js";const S=JSON.parse('{"title":"Full GeometryOps API documentation","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),l={name:"api.md"},h=i(`

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

# GeometryOps.applyFunction.
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)])])
@@ -7,7 +7,7 @@ import{_ as n,c as e,j as s,a,a7 as i,o as t}from"./chunks/framework.B24clL9_.js
     (GI.y(p), GI.x(p))
 end

source


# GeometryOps.applyreduceFunction.
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.reprojectFunction.
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 referece system, as a GeoFormatTypes.jl object or a string.

  • target_crs: the target coordinate referece 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 retreivable 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.transformFunction.
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.transformFunction.
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
 
@@ -20,7 +20,7 @@ import{_ as n,c as e,j as s,a,a7 as i,o as t}from"./chunks/framework.B24clL9_.js
 GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Linea
 rRing{false, false, Vector{StaticArraysCore.SVector{2, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Float64}}, Nothing, Nothing}(StaticArraysCo
 re.SVector{2, Float64}[[4.5, 3.5], [6.5, 5.5], [8.5, 7.5], [4.5, 3.5]], nothing, nothing), GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Float64}}, Nothing, Nothing}(StaticA
-rraysCore.SVector{2, Float64}[[6.5, 5.5], [8.5, 7.5], [9.5, 8.5], [6.5, 5.5]], nothing, nothing)], nothing, nothing)

With Rotations.jl you need to actuall multiply the Rotation by the SVector point, which is easy using an anonymous function.

julia
julia> using Rotations
+rraysCore.SVector{2, Float64}[[6.5, 5.5], [8.5, 7.5], [9.5, 8.5], [6.5, 5.5]], nothing, nothing)], nothing, nothing)

With Rotations.jl you need to actually multiply the Rotation by the SVector point, which is easy using an anonymous function.

julia
julia> using Rotations
 
 julia> GO.transform(p -> one(RotMatrix{2}) * p, geom)
 GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearR
@@ -69,7 +69,7 @@ import{_ as n,c as e,j as s,a,a7 as i,o as t}from"./chunks/framework.B24clL9_.js
 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 colinear 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(
@@ -84,7 +84,7 @@ import{_ as n,c as e,j as s,a,a7 as i,o as t}from"./chunks/framework.B24clL9_.js
 )::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.touchesFunction.
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 geometies 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.touchesFunction.
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)])
@@ -107,13 +107,13 @@ import{_ as n,c as e,j as s,a,a7 as i,o as t}from"./chunks/framework.B24clL9_.js
 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 defintion.

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 defintion, 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 defintion, 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.centroidFunction.
julia
centroid(geom, [T=Float64])::Tuple{T, T}

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

source


# GeometryOps.distanceFunction.
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_distanceFunction.
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.areaFunction.
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.
@@ -121,7 +121,7 @@ import{_ as n,c as e,j as s,a,a7 as i,o as t}from"./chunks/framework.B24clL9_.js
 - 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_areaFunction.
julia
signed_area(geom, [T = Float64])::T

Returns the signed area of a single geometry, based on winding order. This is computed slighly 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_areaFunction.
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
@@ -130,11 +130,11 @@ import{_ as n,c as e,j as s,a,a7 as i,o as t}from"./chunks/framework.B24clL9_.js
 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.anglesFunction.
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 polygin is a vector of vectors of angles formed by each ring.
+- 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_extentFunction.
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_coordinatesFunction.
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_interpolateFunction.
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.AbstractBarycentricCoordinateMethodType.
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.ClosedRingType.
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.DiffIntersectingPolygonsType.
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.DouglasPeuckerType.
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 uneccesary computation in algorithm.

source


# GeometryOps.GEOSType.
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.GeodesicSegmentsType.
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.GeometryCorrectionType.
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.LineOrientationType.
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 (colinear with the curve), or line_out (not interacting with the curve).

source


# GeometryOps.LinearSegmentsType.
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.MeanValueType.
julia
MeanValue() <: AbstractBarycentricCoordinateMethod

This method calculates barycentric coordinates using the mean value method.

References

source


# GeometryOps.PointOrientationType.
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.RadialDistanceType.
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 uneccesary computation in algorithm.

source


# GeometryOps.SimplifyAlgType.
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.TraitTargetType.
julia
TraitTarget{T}

This struct holds a trait parameter or a union of trait parameters.

It is primarily used for dispatch into methods which select trait levels, like apply, or as a parameter to target.

Constructors

julia
TraitTarget(GI.PointTrait())
+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.GEOSType.
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.GeodesicSegmentsType.
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.GeometryCorrectionType.
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.LineOrientationType.
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.LinearSegmentsType.
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.MeanValueType.
julia
MeanValue() <: AbstractBarycentricCoordinateMethod

This method calculates barycentric coordinates using the mean value method.

References

source


# GeometryOps.PointOrientationType.
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.RadialDistanceType.
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.SimplifyAlgType.
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.TraitTargetType.
julia
TraitTarget{T}

This struct holds a trait parameter or a union of trait parameters.

It is primarily used for dispatch into methods which select trait levels, like apply, or as a parameter to target.

Constructors

julia
TraitTarget(GI.PointTrait())
 TraitTarget(GI.LineStringTrait(), GI.LinearRingTrait()) # and other traits as you may like
 TraitTarget(TraitTarget(...))
 # There are also type based constructors available, but that's not advised.
@@ -142,10 +142,10 @@ import{_ as n,c as e,j as s,a,a7 as i,o as t}from"./chunks/framework.B24clL9_.js
 TraitTarget(Union{GI.LineStringTrait, GI.LinearRingTrait})
 # etc.

source


# GeometryOps.UnionIntersectingPolygonsType.
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.VisvalingamWhyattType.
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 uneccesary computation in algorithm.

source


# GeometryOps._detMethod.
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_curvesMethod.
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.anglesMethod.
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._detMethod.
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_curvesMethod.
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.anglesMethod.
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 polygin is a vector of vectors of angles formed by each ring.
+- 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.applyMethod.
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
@@ -217,13 +217,13 @@ import{_ as n,c as e,j as s,a,a7 as i,o as t}from"./chunks/framework.B24clL9_.js
 )::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.equalsMethod.
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 defintion, but rings are, so the line must have a repeated last point to be equal

source


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

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

source


# GeometryOps.equalsMethod.
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.equalsMethod.
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.equalsMethod.
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.equalsMethod.
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.equalsMethod.
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.equalsMethod.
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.equalsMethod.
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.equalsMethod.
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.equalsMethod.
julia
equals(::GI.MultiPointTrait, mp1, ::GI.MultiPointTrait, mp2)::Bool

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

source


# GeometryOps.equalsMethod.
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.equalsMethod.
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.equalsMethod.
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.equalsMethod.
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.equalsMethod.
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.equalsMethod.
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.equalsMethod.
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.equalsMethod.
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 defintion, but rings are, so the line must have a repeated last point to be equal

source


# GeometryOps.equalsMethod.
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.equalsMethod.
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 defintion.

source


# GeometryOps.equalsMethod.
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.flattenMethod.
julia
flatten(target::Type{<:GI.AbstractTrait}, obj)
+)::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.equalsMethod.
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.flattenMethod.
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


# GeometryOps.flipMethod.
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.intersectionMethod.
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)])
@@ -275,7 +275,7 @@ import{_ as n,c as e,j as s,a,a7 as i,o as t}from"./chunks/framework.B24clL9_.js
 
 GO.overlaps(poly1, poly2)
 # output
-true

source


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

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

source


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

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

source


# GeometryOps.overlapsMethod.
julia
overlaps(
+true

source


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

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

source


# GeometryOps.overlapsMethod.
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.overlapsMethod.
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.overlapsMethod.
julia
overlaps(
@@ -303,14 +303,14 @@ import{_ as n,c as e,j as s,a,a7 as i,o as t}from"./chunks/framework.B24clL9_.js
 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.rebuildMethod.
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


# GeometryOps.reconstructMethod.
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.

Ususally used in combination with flatten.

source


# GeometryOps.segmentizeMethod.
julia
segmentize([method = LinearSegments()], 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::SegmentizeMethod = LinearSegments(): The method to use for segmentizing the geometry. At the moment, only LinearSegments and GeodesicSegments are available.

  • geom: The geometry to segmentize. Must be a LineString, LinearRing, or greater in complexity.

  • max_distance::Real: The maximum distance, in the input space, between vertices in the geometry. Only used if you don't explicitly pass a method.

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

source


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

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

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

source


# GeometryOps.rebuildMethod.
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


# GeometryOps.reconstructMethod.
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


# GeometryOps.segmentizeMethod.
julia
segmentize([method = LinearSegments()], 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::SegmentizeMethod = LinearSegments(): The method to use for segmentizing the geometry. At the moment, only LinearSegments and GeodesicSegments are available.

  • geom: The geometry to segmentize. Must be a LineString, LinearRing, or greater in complexity.

  • max_distance::Real: The maximum distance, in the input space, between vertices in the geometry. Only used if you don't explicitly pass a method.

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

source


# GeometryOps.signed_areaMethod.
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_distanceMethod.
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.simplifyMethod.
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 decreaseing 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
+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
 
 poly = GI.Polygon([[
@@ -352,7 +352,7 @@ import{_ as n,c as e,j as s,a,a7 as i,o as t}from"./chunks/framework.B24clL9_.js
 
 
 \`\`\`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),x=i(`
# GeometryOps.touchesMethod.
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 geometies interior or boundary.

Examples

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

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

source

`,3),x=i(`
# GeometryOps.touchesMethod.
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)])
@@ -372,7 +372,7 @@ import{_ as n,c as e,j as s,a,a7 as i,o as t}from"./chunks/framework.B24clL9_.js
 GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Linea
 rRing{false, false, Vector{StaticArraysCore.SVector{2, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Float64}}, Nothing, Nothing}(StaticArraysCo
 re.SVector{2, Float64}[[4.5, 3.5], [6.5, 5.5], [8.5, 7.5], [4.5, 3.5]], nothing, nothing), GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Float64}}, Nothing, Nothing}(StaticA
-rraysCore.SVector{2, Float64}[[6.5, 5.5], [8.5, 7.5], [9.5, 8.5], [6.5, 5.5]], nothing, nothing)], nothing, nothing)

With Rotations.jl you need to actuall multiply the Rotation by the SVector point, which is easy using an anonymous function.

julia
julia> using Rotations
+rraysCore.SVector{2, Float64}[[6.5, 5.5], [8.5, 7.5], [9.5, 8.5], [6.5, 5.5]], nothing, nothing)], nothing, nothing)

With Rotations.jl you need to actually multiply the Rotation by the SVector point, which is easy using an anonymous function.

julia
julia> using Rotations
 
 julia> GO.transform(p -> one(RotMatrix{2}) * p, geom)
 GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Int64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearR
diff --git a/dev/assets/api.md.BaSIMxyj.lean.js b/dev/assets/api.md.D8vRTXzc.lean.js
similarity index 98%
rename from dev/assets/api.md.BaSIMxyj.lean.js
rename to dev/assets/api.md.D8vRTXzc.lean.js
index 50a41e00a..294979af1 100644
--- a/dev/assets/api.md.BaSIMxyj.lean.js
+++ b/dev/assets/api.md.D8vRTXzc.lean.js
@@ -1 +1 @@
-import{_ as n,c as e,j as s,a,a7 as i,o as t}from"./chunks/framework.B24clL9_.js";const S=JSON.parse('{"title":"Full GeometryOps API documentation","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),l={name:"api.md"},h=i("",174),p={style:{"border-width":"1px","border-style":"solid","border-color":"black",padding:"1em","border-radius":"25px"}},r=s("a",{id:"GeometryOps.isclockwise-Tuple{Any}",href:"#GeometryOps.isclockwise-Tuple{Any}"},"#",-1),k=s("b",null,[s("u",null,"GeometryOps.isclockwise")],-1),o=s("i",null,"Method",-1),d=i("",2),g={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},y={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"},E=i("",1),c=[E],u=s("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%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("munderover",null,[s("mo",{"data-mjx-texclass":"OP"},"∑"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mo",null,"="),s("mn",null,"2")]),s("mi",null,"n")]),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mi",null,"i")]),s("mo",null,"−"),s("msub",null,[s("mi",null,"x"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mo",null,"−"),s("mn",null,"1")])]),s("mo",{stretchy:"false"},")"),s("mo",null,"⋅"),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"y"),s("mi",null,"i")]),s("mo",null,"+"),s("msub",null,[s("mi",null,"y"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mo",null,"−"),s("mn",null,"1")])]),s("mo",{stretchy:"false"},")"),s("mo",{"data-mjx-texclass":"CLOSE"},")")]),s("mo",null,">"),s("mn",null,"0")])],-1),m=i("",3),F=i("",37),b={style:{"border-width":"1px","border-style":"solid","border-color":"black",padding:"1em","border-radius":"25px"}},C=s("a",{id:"GeometryOps.t_value-Union{Tuple{T2}, Tuple{T1}, Tuple{N}, Tuple{Union{Tuple{Vararg{T1, N}}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, Union{Tuple{Vararg{T1, N}}, 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{Tuple{Vararg{T1, N}}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, Union{Tuple{Vararg{T1, N}}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, T2, T2}} where {N, T1<:Real, T2<:Real}"},"#",-1),T=s("b",null,[s("u",null,"GeometryOps.t_value")],-1),f=s("i",null,"Method",-1),v=i("",3),A={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},G={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"},B=i("",1),O=[B],D=s("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%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"t"),s("mi",null,"ᵢ"),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{"data-mjx-auto-op":"false"},"det")]),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mo",null,","),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₊")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₁")]),s("mo",{"data-mjx-texclass":"CLOSE"},")")])]),s("mrow",null,[s("mi",null,"r"),s("mi",null,"ᵢ"),s("mo",null,"∗"),s("mi",null,"r"),s("mi",null,"ᵢ"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₊")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₁")]),s("mo",null,"+"),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mo",null,"⋅"),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₊")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₁")])])])])],-1),j=i("",3),x=i("",17);function w(Q,_,I,L,P,M){return t(),e("div",null,[h,s("div",p,[r,a(" "),k,a(" — "),o,a(". "),d,s("mjx-container",g,[(t(),e("svg",y,c)),u]),m]),F,s("div",b,[C,a(" "),T,a(" — "),f,a(". "),v,s("mjx-container",A,[(t(),e("svg",G,O)),D]),j]),x])}const R=n(l,[["render",w]]);export{S as __pageData,R as default};
+import{_ as n,c as e,j as s,a,a7 as i,o as t}from"./chunks/framework.CpnCegiD.js";const S=JSON.parse('{"title":"Full GeometryOps API documentation","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),l={name:"api.md"},h=i("",174),p={style:{"border-width":"1px","border-style":"solid","border-color":"black",padding:"1em","border-radius":"25px"}},r=s("a",{id:"GeometryOps.isclockwise-Tuple{Any}",href:"#GeometryOps.isclockwise-Tuple{Any}"},"#",-1),k=s("b",null,[s("u",null,"GeometryOps.isclockwise")],-1),o=s("i",null,"Method",-1),d=i("",2),g={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},y={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"},E=i("",1),c=[E],u=s("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%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("munderover",null,[s("mo",{"data-mjx-texclass":"OP"},"∑"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mo",null,"="),s("mn",null,"2")]),s("mi",null,"n")]),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"x"),s("mi",null,"i")]),s("mo",null,"−"),s("msub",null,[s("mi",null,"x"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mo",null,"−"),s("mn",null,"1")])]),s("mo",{stretchy:"false"},")"),s("mo",null,"⋅"),s("mo",{stretchy:"false"},"("),s("msub",null,[s("mi",null,"y"),s("mi",null,"i")]),s("mo",null,"+"),s("msub",null,[s("mi",null,"y"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mo",null,"−"),s("mn",null,"1")])]),s("mo",{stretchy:"false"},")"),s("mo",{"data-mjx-texclass":"CLOSE"},")")]),s("mo",null,">"),s("mn",null,"0")])],-1),m=i("",3),F=i("",37),b={style:{"border-width":"1px","border-style":"solid","border-color":"black",padding:"1em","border-radius":"25px"}},C=s("a",{id:"GeometryOps.t_value-Union{Tuple{T2}, Tuple{T1}, Tuple{N}, Tuple{Union{Tuple{Vararg{T1, N}}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, Union{Tuple{Vararg{T1, N}}, 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{Tuple{Vararg{T1, N}}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, Union{Tuple{Vararg{T1, N}}, StaticArraysCore.StaticArray{Tuple{N}, T1, 1}}, T2, T2}} where {N, T1<:Real, T2<:Real}"},"#",-1),T=s("b",null,[s("u",null,"GeometryOps.t_value")],-1),f=s("i",null,"Method",-1),v=i("",3),A={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},G={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"},B=i("",1),O=[B],D=s("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%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"t"),s("mi",null,"ᵢ"),s("mo",null,"="),s("mfrac",null,[s("mrow",null,[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{"data-mjx-auto-op":"false"},"det")]),s("mrow",{"data-mjx-texclass":"INNER"},[s("mo",{"data-mjx-texclass":"OPEN"},"("),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mo",null,","),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₊")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₁")]),s("mo",{"data-mjx-texclass":"CLOSE"},")")])]),s("mrow",null,[s("mi",null,"r"),s("mi",null,"ᵢ"),s("mo",null,"∗"),s("mi",null,"r"),s("mi",null,"ᵢ"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₊")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₁")]),s("mo",null,"+"),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mo",null,"⋅"),s("mi",null,"s"),s("mi",null,"ᵢ"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₊")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{"data-mjx-pseudoscript":"true"},"₁")])])])])],-1),j=i("",3),x=i("",17);function w(Q,_,I,L,P,M){return t(),e("div",null,[h,s("div",p,[r,a(" "),k,a(" — "),o,a(". "),d,s("mjx-container",g,[(t(),e("svg",y,c)),u]),m]),F,s("div",b,[C,a(" "),T,a(" — "),f,a(". "),v,s("mjx-container",A,[(t(),e("svg",G,O)),D]),j]),x])}const R=n(l,[["render",w]]);export{S as __pageData,R as default};
diff --git a/dev/assets/app.DKLFVYt5.js b/dev/assets/app.D52uw_PB.js
similarity index 90%
rename from dev/assets/app.DKLFVYt5.js
rename to dev/assets/app.D52uw_PB.js
index 5d31c9532..baff19b14 100644
--- a/dev/assets/app.DKLFVYt5.js
+++ b/dev/assets/app.D52uw_PB.js
@@ -1 +1 @@
-import{U as o,a8 as p,a9 as u,aa as l,ab as c,ac as f,ad as d,ae as m,af as h,ag as g,ah as A,d as P,u as v,y,x as w,ai as C,aj as R,ak as b,a6 as E}from"./chunks/framework.B24clL9_.js";import{R as S}from"./chunks/theme.CA8W1fhX.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(S),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return y(()=>{w(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&C(),R(),b(),s.setup&&s.setup(),()=>E(s.Layout)}});async function _(){globalThis.__VITEPRESS__=!0;const e=x(),a=j();a.provide(u,e);const t=l(e.route);return a.provide(c,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}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function j(){return h(T)}function x(){let e=o,a;return g(t=>{let n=A(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&_().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{_ as createApp};
+import{U as o,a8 as p,a9 as u,aa as l,ab as c,ac as f,ad as d,ae as m,af as h,ag as g,ah as A,d as P,u as v,y,x as w,ai as C,aj as R,ak as b,a6 as E}from"./chunks/framework.CpnCegiD.js";import{R as S}from"./chunks/theme.DpIXNgls.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(S),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return y(()=>{w(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&C(),R(),b(),s.setup&&s.setup(),()=>E(s.Layout)}});async function _(){globalThis.__VITEPRESS__=!0;const e=x(),a=j();a.provide(u,e);const t=l(e.route);return a.provide(c,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}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function j(){return h(T)}function x(){let e=o,a;return g(t=>{let n=A(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&_().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{_ as createApp};
diff --git a/dev/assets/azslksb.DfFnyYWA.png b/dev/assets/azslksb.DfFnyYWA.png
new file mode 100644
index 0000000000000000000000000000000000000000..65a660f657cdfc93b9c347a66501430904e07be4
GIT binary patch
literal 65746
zcmeEucR1Gn`?g9&nGJh{Qc6~`M=5ys
zcYS`x@%;Pz_dLh(+~4ofM|bY~e!pL@>vdh{b)M&S`(9E}Am78Vhlq%X{K9!TH6kM7
zH$+4`JW00W87WGG*Z9vaLnQ?{qAkMzlFMI&5fL3Cx*#WW#VLNe-&AYA(mLN9X^N&f
zJM*`55)XGWUd-WmLf)Hmf{F17xr_Ldu1l>ssakJn-#oRw#P!5y&z^Q-;*bGS$(cWV
zTc+7=!fd<9AKGs5NC($X|1{bkR_GsUJvml&T*cqA`U-=5v|?`I++Ggc}p!iC{+
z=IG9CZ2x{FvRC{6PygS%CL=TbL`3g+gKCEPVw7!tJv}|6>H4hxZsgR|p+m%$URBrS
z&Yg2xonzzRNKH?FQg!{)H~Vwv&RxBFRY|E)dUN&Wr(~ItkvY;0=Gu=RRgZh3D=1esmLS{j-{_doY`J(_QhjfjYNp_)|TvU2ClnfnO|{i6-`*{{)6Y(;t*t#!>X_ZEL#oYj8^u
zv^26^XVul!RaCMH;ugPjb!n-oRT~MMK7Cq;fxgj5KuJ*%d$zQ+q}^-56QzTfYG`os
z@ML9WZH_i)y?VvP#dTRtO-)mCt4gn6Z%7gq;nwb}?A?wl!<&ci+q-w~w&nNl-!n5Y
z)oo*wefjK}r`4IRzCPEPo`R#QiDmA8V&5B5k85aX)I27S~20ga=%Uy(zAAb^Ga8*agW$IIk`U{oQr%sKQe)$;0s+p-J!!y6U%q(VaW@%}8
z{rdIu=j#wsHYK5=>z99YUgOrde3?2;LP{#pDXsk8aobi68^3n(WiYRBoEByc=)%*8)>WJ
z{27G<_fgO51@j$0ehW9VwzgKL>b8NE`51(-*2DYz)1T57ql#*jv>tl*O8vz#QY&0j
zB(K5d_b(Ziy@dy9XhK~?u#I)6o!6xq85vda(L?XHHAo>mgscV#?{)KIV0}Zw@3plA
zNtZ|ozPM(S$%%rOwKxC0
z^o>!-Vra(7!ptl=KeFojv$V87%bf<{!f9{c{+{VYTvjkkxfUlSv5GPbme?Jo77fEn
zul(#UC1F!lRb@Yv`TBJlQ%ISmvGI}dZmV?sEqtSnblcw}a`M4_Dxb%Ng@wh%A|>lQ
z0s;$dsS0I!s>Fz@s&XHa6ukf5I^8E{Jnf>GI>ruDJ#_>Bn`QNYrCoSFA
z7K|$%yuAM4!Go3AL91`w(b3T-bqZg;dX*q*_dHDuK`JFB6~rn%F>~PJg$p>}D$dR&
z_jkSNp7x{VH8C+s6uYZvuCw~gGu|wLnWOT0aJcZ|
z`SWI1dx_;9X_=XsUB8|@BxY=Ey#8w@^?(2!8J4H2ijqx8$N@)VFw#gectnIZ)nPU;j#{=#Jcl3m57K%3ZizB11!S
z3knKya}|}8uyM>ReaDQ-WKv$e>dw&QH8=m}I6E*tF|qKPgNNtN&6_vP%(S$$R&huh
zPCW7TP5C^SXR0bAv#q4Iz1*I&@qj&%$}$uTiD4pE}v)i1mC<@iPsVlW{=FG4_wPKq#cv#D
zw4WXp5h>2f3M|`CP9A_0LC45A>Wu=qIN7SIq_iH`DekekQEo^F)!m&S?UCq{^!oK{Z*oQ<
zhiR<^l|WYM&F0mQ?d|OdL^D#q_X~@Q;*LL=N+{MmDH(;xgrjp=Pn^iOoGMQ$MdRh?
zr=-;Evb8BW%T9xIeb$@ey+=|1e*r`C*nc~SRjPge-p$SJ
zuDyNT7h79f_lfFf$c271C!dlXEzHSbbNpV|_CJS#*z-)de?Y)&e`%57`#n{Sq@iCr
zJ9qEg8NebLJ0&eg0vv1Tyu$)H9+j&sPW@iS@#DvR&JUrQhx^)b$oumN3O<{b!5MFR
zdQP@5a_HwzmDILl>)(0`PL#-9yx3e-^&pqcYR8=I0WDo!rZp}^z3r;v&`jzm^F2kv
zUY$I7QZWU1>hfuhD@G)6S%bER0Re}engv9=X%a7Pn
z&(s
zv9>qiLgzK?c@(c#ccj2z=+m^jr->C_
zSeoLLgck>@ykHfz^~}w6?fu`cBtAbsKY;Kcch^F-Wn^>#&O@zHyERa3vtzfXw19O;
zSEK-Mh`_|x&5dh7)|W4bs5yVlycX^?tMfD?!*45j+Oye&_TWMD+qW0{)6=dJ
zdvFeD&P+|2Sy}Nm6>c}|4+JuN-`g8kGaS5kH#tMTWv@`hvd8*=ck^>7mefby%xnr7
zuI>oHToZ@QnGQW7+q>S1Bns
zaNzJ5lQlLTfA{Xpz@0O>gUkQDH`S-JByu$^Ej)aD!Me7a8_q5+E(2bxBqb#!ZEbC1
z`*7_NJXf@}dwP1r*w`L8eQ!w+2iPssyMQohO_bz_TAFIx5yUX_B_k?2n$G$DNP@T{
zj+DGV*L$o=Ad@KjSfj;lxAk8~CVPB?f?69JQw8b#o;+dC&Q1PX?6Q+SRnOKfR1aHg
zWa-Al$1C%M2M3F|Z>$P?Z*$!Ex7>3|j{sRdph_J)c(DEzbGOB>&?8C{=o@Z-(`kA|qiW5Cix>!F+|DnmWg<
zjor3hdTV3RZX{{8ZlDBZdT!2IaTv%80Asz`Qhf7Y!dy+m*_J!2re-_d5CK4Sl=f?9
zCo3*->01XUCueMIESBf)-MdGQ96?G(goaD{`1x%C!(-j$E{=wV
zh}ev*tUJIP4i2bfMO-`7B_$-@-u)pj5ijW?WE^OC0FnXPo;@>ici;5b`a`>KpX@-x=g;<^UtYFsV;RUlgM!V<
zZ%CY&)SadjW%YBIuym?P&krbGxIh5Lf8pO3EXds-UsD1d|G_l(Q{W^*V)$>$%gM

5MtG16^!4`k*4BDD9pm5_ot&Kf_U%H}B9M_cC2L{+ZWQ?Uezajq*bDgp z2B2zr9;3W&lqozO_IBu_q5Ss!yW&rAfXHj*_wFh!BPR=?_NBJj`FFRAhz7x^wbsM zu5Kvm8SLlR*i&%Zt1MSoNT>qU!Rk&N;S~1u>CP2mp9V7*JIu_@|E$keBFk4_iHwSp z1_TX0!SA}8pFgMS(e9$Q7O&4K|B})>t6gZ+6me-UR1$iMtXPfPlZj|(Xf(6+^(tIN z2TdgzWJy88N*%yT?kT;{iKAwT?>m@v6{lf%ghfR$drsIECq7$A%QfXjjtqNBAsv-E&X z6XN5at0Xj(jvb20&9z0}jZ$tkP)5Ih|0BE0?PmGFBPy|i^))rAX?N#H@Wu`f4rBWU z>hF@I=$GFM*`ajm)Tse6y;6s?=_gi$QC?o}ksGROYH&S(bUGRu@?|vW`*d`A=}(zZ zy|Ouma(B%8lDhh+j=F+^w_2E^q$2_Z(Wj4g8*$?0<@M#u7XdUZ3kzeK=}(`^b_a!q z?%O;oFaLNUoX<(MKPdix8onOK!y&tquYUjWFMEFDrA!y;agbBJI+# zw0xbO{@rnQTM-JrSDCl-;>0<5`F)fxlw(FFCs*9ot@bK&=ApU2eEG7r_S^E_cD8r_ z&Ndb46dSRn3c70zjl$9Ci!w3~iadBvo($NyboJ`80tK7xzJ2>1er$FSvi^5ISRXTpX=y2vlAeu;Xv8Pu_9=KGjAc7J@~>>5RTfu*!?x z?(XiMp3n?rzSp`Xp}OomJU^$WH^Q_@|GwhPdWuzV;p_5VqBC)brMl+kBSAaIZA&Ow zBwoILjWlOrVWF&|QsK5<7!;)H>@4bBgBu-A`}OzLM62a8YV>pB882U2+u5Dq=04!Q zpOG;Rpxei~o#WrHFwiQyLzia-H5aSv zGC#62u6g41A*9}s5dpW~OZf23jfsEF=O=y8NeSoe?CcPkGBPsw6RRH|AOG~}QyhAf zKgaA_e``C@yKE31|E_^(>KWj}e?R}f#eg0e7$7IAOhI!Gg2Keq6unDK)%B@wga@+e zZImf{vGQ`A-DkY5X9pyAJ!(S(2qN&;oxM}KNNiNH4Gj&198_L{cIn~6YDbF}lf2ZY zPYrM0M8p2$$BzJie`RH5>@(oGPR}z0d4B$t=mf<5EpzjNB?}dm7NlD{TU(%A>x)3Z z;^N}`IaY&AD8_!sd}#DqS`f-YI9aF`_Vy^iRL^fDT*Beh(&_?JvvA8f5fM>9;FRAX?LN*?vr|Jd69GU*P7cBVtFg`g zEb%>(2gfW2%0v$zCT4q+GNuF{5(oJjb)sN9(sSY#>Gmz*^K_udhd(`IyyRV;t{JW)7^Fe@wB}9 z(J?UvR_Y!VAR|3IJUoLVBECF1c%r9Nv@#_>U(oe&6!*1}iHWZR&1(^7fTSkynIa5K zlJ}NCDi|9X)wP-!88yY8&dAUI{PE)?fx)UQP0#=i$}??sA5+{rcMlwuyL$x)1{Yys zqWi~BoB&%or-jn;5h(fBkItZt>CHdul+0pR3=E`ATbLvz%eU>=HP^3dZ*Px~BWCh( zJn#eIj%$8IrFQiyT98ga&hfFaIdxqgVKFfR8p3@8CY-M9aRG z_jsf97g8b?UJ8f4E`;OkV={W-JMnWz#~cr`vd)f-sOjh^rMA&$wC3_OTu2SGC1u~0+2e4Tft4BlNdUP*69o^K_6p2S4_Il*! zc2GP%J|qo=f(+>136vTd@yV8ib>KVfrAm_2#VbfIB;@4hNKOLTfT{^k(7ATa%hR)~ zr^g-L2FO=t(L+XGjNYVoP)A*i5)Quf)7Q*0^wOJ(3U^==pb%&Rh{9L_<2`8)V`93| z(jumD--!_s1@_VLij*swv%R_|A_HW~k&NuF@lAUi`t!z|sBhg1xF*YDp?i9li> zL~cYzT3lS@U}txCeIx8$a}6*vsxhtO8!*O6x77A;OQ%d*4j(>T=CLKk$7c;fiolq2 z8Q%W^K4I-nFG3U)E%N6nQPC2>s&nVYclUDJ1{nP08?ZFG>ULOhD!0e>YlSV164kz6 zE9cMerexVz`nF%ztU2~{S=*r-y@i&De=%+2E3Lcn%5$DDdmuEVyS z>+1X4BeULa7e}9N#a-b(!NcGBY%pse^}vyeKkHo%OUuh1L8mqr2~E?ZW|OF>s8MO{ zbPi6=iOEUL%a?Clzy5CBLQbw00BW$@rL(V(8$7IuiICfGdtqT=8yl&lb{`)fkUzM^ z#AXxVnc|X?*IGGGag4C-*q-&3*^gh)EC(@(w&Nhb)+ws^$I;>hTL|gs>${@`0t2e4 zriN4@4&EP07JXORvuCKTuCA_3%*@V|+Un~2si>$}SoF2Dj&X86Pe~b`niBEYbXC;P z9UB|NOGY2j95}!P)>uNK?D=zfdHD~(dq{s{bs@zjuC5zMzF-)sWf8?nk=!yQgarbf zkH3O3CrJTQIK&<9RJ48IAujK7mbRzGo9h5ZXxhLvgICA30+1rj*VNSX_v=L$`#7b7k=tgVbJwuL(3J(VvbI4Ox zR(9Y1{qrs|(<#ZxLx=}-(kOr;f}sDIPT%^RRV!va)!U7b^fah&0G%3PCIc5kSy96uryPsSm@}5RFjN zBVuBFr3cVd#tK{MD?OTemz@>z-iF-YZ}o~iS5RvPgTu&|%Ki5?PJc?4>{<38)a>Bk zPuRH&VVv_)E>I<~Uz1~F=M@#TwX~YzMLWPDs(F)aUzzDWx~c^f+gIV{VrRFAq~RfP zh>VmJf{ZLlbAq_0HID%rxBgPcAo^3g*z7@oLzft_?aT0`+Q*k`Q|m*GYDkg-NtD&% zP2CsHubz+0{>KY&$Mo=>)C0Lc7H^M4o~Bjc64#dz3>mioPXKc5EXk|%^emks73*0eVxcqs_;8(A{0WIzHXdf9J1%V!o{nOMmg=%JMT6Dc?JBWmVSd=9} z!6g)(YuBzJckbG?3z!k*JUk0DayGVn>1Ti3LWKU+s|V@mRXIQ7AGB> z?qqH4kqYn=(P=dd-TUKOlZU#2M189dQ+aV*(@GHMs*Ez{;#hqc2^-GbNIFr{BKr8a z*x2W3X$ca}0$9+ToVKnmC)6z#78X~luao2BKosS!Yq^=3%IfNQ2n1}3#kYl52sOMB zm=6$4e}%&r=#KZ&a3{Oo#WCuu^f0)3^=?nTIT#WgTmo4QnGZ*o{rjo5dovNuyEfc$ z9?8kcPjYiZnbR(~fo%pgvc}1o00jp3S0dnDBWgbdLXFyLPX|aE1S`b#M=zQ7?}wZ+ zH8y6y{>u__#o4oGK{XrhhrkZt0c?yXfZ7(Mpm%ZwxUT$6c=Tw8)m|(USA8ZsJNujr z6b4|JM;ReOF4JB7x~C2w_H^_{s@3Hw%F3dU_V@QcJgad(;)JHV!K0nU_TSW$ya^iY z{W4eL5ij(10KVI{EDa48+-90uTaP-(LJ$K#@c75jbb=AiODzk;Z?N5K6;A7D{^CrE{*XjM$zy=T!XFgkG=U)x{x_*j%j4qRgEVwWdPa1 z{(#a2EPjBV{(|f6OW_d_uMH{(T3YV>`Mr#&5fv4U6SBMqI$crmNnBi~MIZnnFmwV{VQN8xt4j0@$&&xy~yj^b07a zx^-tiq)kIZb`@F~ZjrC)4!PaaD4Dp|Cw_j=QY^4m=-7}AdMiCVKy`eci@!-;Nmw9V4S91R!`F+!7*3H_h$Q4*|%w z*m*vFe(I}>Jq#Q+-a~r|F1UMf80PU^GSUL#Kq8-?e-9q8@_{;?n6!YC=K+0N3;9CbF{CI3#prkG;J= zVrS4d``<Q^h~0&}g2WHxBePAj)Nq&0N?^-gEIzk4mg3F1~i8>W5h>?@=wtD^ya@bHp0zCLCLiL)B2xN1Pp94 zTL3e@KL+C->uh4-*K)=G3o^9;gw-N~Fx-T;_ehdv= zH!*R*DS?wl+G&o6a>Crq>|G5f%m9Hbl1~)Ez@vzXimt7$qRJ-CvVkFmtmuqpj46SE zo*uT6u7QEX_l7xInYd?4dI93jc(J>;Y;6}%(CT(DP|NP7U^26?xT2v^;W(R!g2013 z$INe7TWm85SW{><$O0Ze&>ij=2(M^NpFx#S0zVIjQw4yEP+UTIIEwr;GzpM6)Vr`A z!%D%C1UJ`6t#5cWI*I9laz-{IE2~PU`4LugzHCTKG=4`oIP8Y2cN$tegWQc+iHp+# z=?rybZrkvm^_9t{m^`HYg`EZ&J-!MAf*MT^l|l0F-@gGdZSCxC^3h>U&|4b^u}FT} z;yHo5QEz&hgJTEfCj?2hpWj}d&!0ZMDJ;Bm>(*QAVIbq}R*gstkb7ET`Wf~H8xN@6 z+|;x&H@riifwovj^q4h|Yu zubv|TfImP(!|wU}*UX8r7T;JW>)o<-wY5elg#N;aj z-$orr3&$$$uFS1C44!9pmf(PaI)-?10!>o90eMPkqJh&dzH{ z`o0+tvB6B_f%K;)pf8E ^&)b8vt8dU(|X_diIjLMizPx5Mh|rTKY!$$R$q?!84y z2diQey#g2-#cROsxqZhD)8<&O+o*w^ZEZFvR0b8Uz5xLT`S|XFLd4laKZfK5rjwmw z3@kbn@~asd&54rh3eQvbavT<3b36Bd?{ur{?+=rE*z$)hqx~W;6{++syKJPefBqB8 z>WE^_cJ?uFym#FfVVjX!7Rh_AYYRstB;rX(ki2YWt9__Bz_`h8y2qWqtpOz;)D$l2 zoU2~ExMN_m33yD-!-t1>SuG&uBa0#k0h@8ujust;M1~Z$)vhz5s0&OkRfBmjs3 zTUasNddP+Io%W#WUxB~3v%^WQlrONbJQSvnL8@FzKN7b-C z;{>z-W|p6y-@w3Np-)yUp~7LN=gpfpktTdRI)(llZUj2W&Fv5PPXb2v*_8v%ULPzJ zKwq=TsGuWK(fda8Or4@Y5^cWIrwgDM@m|Y4j4UZBnIO>T0UKuc?G>3vyV}0l8&-@{ z!f~coY<&Zl3KRm!Bzt&#{pT)q5 z>P}7~P0_QfPj1H*O4qMCNDjXd>8q@fCROjyR-b>d(^G_Y@7gVSRn=Jp4C)O)1gx{3I$no7XDPnBXsa{RD+{kg~RD|E%0#B$eZQ{h$SONw5#SSZ95G z7TIICXe41M+9+b6f(e~A+A(LVt)hgUpmkC5_fLCtZcglEyWJ4uOiDpA&)DB?)CjU` zB;W1;GWfv2!0Ieu6C6dGXGs#I++xe**aGAimzM(q1Kj~#@VwuSYGh~EQ}+04`0ON* z9PC4=C|^)Pe1d{L(*ATh<{cWUW^K*4W@mioj{8_0^*~jt6T?`t%p-!8H}SfOnVA#T z9xp{^8+dznuLt9P$9-I#e-NfgX!*QrZscg4OejKy9`YZ70?zSN#xwZYvoT1bsFeoS zuB~nUaj6)+eD2s`;ctdtbuQ1$oU5OtJ(A@0%KT;WLdSN*;wEk)bkGf*B49H%5Jhyq z7v2jlB~1+taHkS$>lgL)rH&n&!T|t34SXvJhZaw3Q`42JR}+M-SVS4*NU*`G3JQ~` z!cLs0=)>xn1dPtZ{8wi%8U#_zXJ3L!lDH!eOXmvq5cRk0-g0_jAq`u2RFoq$7`Wan z`-(&2*NJ(Zr^m+R{CBYV`1+EwNQfXn&o4)YhkH_e?=KaeHFE)}jV{qODi9p_!8GE* zuA1@-W#dL@K$s}J8@~F)_F52CD8OfEXnJ<`WN)3ujl6Eq zq3Ga1!bsfxen9kcucL6ZAvjN3J}M_q#!4En3L1Cqz@keSx_2e*y2PpNCyPK zSLP7AlHCA%2q3?rzNRLB5)x3ARI;edu9Z9Bxcvjd7*1HY67}@@o0^oFiWc<-`azoE zjnLyGKZ+cJ4g4(0N$q@}l}1-|hhR@cq>s;Q&lS`@+_~4OBVY+e!@fQV_^ZUk7!am6 ztP$7FF9XpM30JPoXMAmI8zxsoSoux9AsN^~6`GL1JbRi_MXKq~;AgX?O2^vf=71G> z2+HjM>?jf{WWn+z zz_@;)xN=zTpn$NqzdL&xn!4OG@%Y?7{nZm_{=kUtx|ABD|bgcM4~x zsdCdxF_NUr&CPXYuld(k*^PU7be<7!502^)(|!5C?t+(p?**@iKYaY!T)i3giW*&c z`O9~^vjfdFRCa;@l#tLoZfh>cz+a6j5a#%hpqcnI?a|WHOSoTp3RfnZ_3>=qYg&_h zA$fZfwVz8I1b3INuI`-3B1#(QT6{KI8(>C64%%gq=R-MsmKO(Z6$GD^{}H<4kr$gk z&&}rT-(Fieuj4y7g+qWgdZC39h%>FM4Y!B-&K5NkjKXxs$>Qiv79xKtMO9T4#UuCh zAfY**Xl!g`q@#QG{P{>?(!+<_UCmn@`vd~y^9l-%?DoV(uCiBP2E*#6^+)OoDH#$` z5fQUnw~*|3uH}xQD25$XMU5`Z&p%+2!nGlb`slRV3l7|2^9|_-r4B(qNbJ#D2U^>@Db*h=awMdp+vq&@K{j2hSQg>x#4g7ua}K(k0Z#{VuD-q=C+OXY z;)P`nj*MOs97#)*PPE>T-vP7}r9B2(TQNk!gys@7FO&&fgJaZtv=ARY?CGM^|48|f z4VY$B$6H|f(v`U&jk9NW@XOxk9dNH?z4r0io7_FO|<{kA!ACf{u8(8Q~Z zjM0?p>gjEisg}Oy-$u#kbX*GV5vrcD; zn2YBr>Z@wR>(PX$C^vnW^K#PFjV~=Ny}x5PiG@i4gADmgCf|Pic!79ew5+{G;jtpMh508@K$ff~CL&O=2QE;Hk;U zuss#){>;3VNBn~6-R(UHq6m=1pFhvNK1)Bzaa@FD3L&d>O_~43y$5nIirhhoAxVMr zt2ItIsOaHK1|}Msi5bEekGWuMTG}|P$Hs$BX;jsy%F0T;mE^Zd)m!!keR6O63;|q#Yqi0Zp)1>rRx!vp3i%luKxrJJner z#CZwrGP9uke0u`l=I4jD4&MGs=L0)-Jc^HJia!>rDf8fxXs-6&tqq)~0EW{~1or-% zMB>vabK>`VPe3h$GKJ^m$nTh$b>*Ayk86eoDuSV?oJ*c01=#ML*WBHuW~2EjydQad z+o{UmQ(|WdQx3c)AshCnF>CnV8?@S?wy|OKWCg!Wru7Kctys>i_;D zyS$S;*Q~msU{4$AS2z1td5L1%4TDeZtRO;R!_a^X32c0^ad9uw()7xlY(N?hGTpzZ zEVW^SypJvCK7L#b%@pkLJ2hLHn*p)8W$V6vrI}2D{95~M6M~L{QQ_DZ6aY{%=$|gx zsuziK&0O9iBu-Bnw

qyMb_REzu#(69%B9?dN-#);kiE?n6TwNQZzCP)=UMKG!C zksb$#S`Cczy0N`SD%|T~=lirJPr5Hm54goY)oo9Mcg$)zY$7yLaelzD;c#9k$H1IA zfT^A7?o(w(myuDTqBNE2!vF$shU?-c@@v$hA}d9W3VS_Fe`qzAwZ?M2GO(RKQ*=&S z2|482wGyb(P#3F}7uNwkK@HU#3BarQXJZ59utK!8q~^Er&kOe{C{(`~3&fmk9;xxs z3Zy&ZQ`vyJ|E|a#L2>C4Rg1*qP2sFjP!(l6CJFXV{f;7H*8Gx^m}tH;8UQGe77iTv zoE{!G_~M@_9x;niH()fYZxmtY8R8*#f2;wK>m|%!@lE^9Rp`=i9k_Z`IhxHQvJsF3 z*qzJ~STj6SKZwIW$!xm*DBFk5MlSKT3Zah|UP*>~+Tgm91jN zJqu6%qGQ3-@vSYr3uJtk+<$ixwQjQ%Ik={Psy}zqh z%btfd4c^C>+GuZO`%)`Fvsh8s7?j^T%|bUjI{HWn5p8pHQg~}?WX+uU&5HhJ(8c3t zXD=LEIZWF=ZXdCWX?DbEXPca}hq{u|?P^a_k`zF<5#qe<@#u+!iL0x0lniXJ4j`Fo zJ2|LF=P&Z;X=^{(A-f@Z<XXWfiX%EVKw2Sp(egRu=#jMvx{nqbW@e?)nGXfU z7mw{ZvA&vfLeQw^R&G-(+p66vKznVioWv(uHv7>JiblI}q?Bg^18kdU72&>GnBduelEQm*W+ovfh6{WegtY-KXW|gS z;*zzkJDc-7p^M)-jKSaxD3dh*!NaF6QDf{1`d#GiPs>BZ^cv2laSO9$!9qBqP!!=^hqdf9D zKP+_L-0g~spkT9Gm(sevVw~65X#9vdz*BMY6AxC~spH2Vj2x~;k~^CWfo+)|Uq^A~ z(KWM4cm&%oN;Gx1j7K~SoWKZFvg709@L(N$Gl@2?zsz|*+h>e5!3d@cjb7;1=VP9q z(1rm=d~Pp9(R6C)29YZF#g;m>{q9x9m5Lv=$_Jy?8_v$Y3~(8|YnzoBLn}Mj;@GZ@ zrsadE9?SwqhlJU|bojije@wyrgsP#XWg;%f9>y7j1?FX{DN!fp`^P~3&1+yB>bjj> z9w;rFSxS%6M9@CMyq(xdE@5KAAlk}o5S17R9;^7s#KeJA1xgfG!vbGuS`>7AM63_D zPZrR;Ss>P5O;1j~zmiUHa>4Hs=;wEPh5m6_Q^ebWyD^#qmM*I#t#K`R`u^9nh1?X* zRNCy>S9xoTZkq=MOhXNE5<&GwJ@8(4b>Sp1K>7_o7M=&Ss>W^!~!Dr*!mQqg>}nMOk}Yc4kS#`l|U1Rn&w?YfQMLgXRCq!5<5(x39zxr z%tg0@xY=g;q0T@N@?N#$E!neYVYz8ytb(_sDM^}@*Xm_vCN#~{3m4N6Sbn~~HYI)L z9nW_X6H^t{lYkjxJY_-_)i~3hwl~LBcDI}+UuZi$$Lk-QDSde-Wo4RrdKd=#0f?ZK z5I9*=jziJL2pf85{+pgA5`T*NkSI zE%flP%qChPgv(e0tPG_!e zHs^lwdlb{R4qdcb6g7LewZ2vNg`^uUDAWp2&o3^<$yaz@&(R`~peia90rDI)9@TqI zXlQBG?;U_fgkN~P#dC7}6m#;9hoYWmjLOQ(;cx}rk7lC?6$t-_i7dH_caP&&-FkL3H|57#fx_x9I!2y)zuqYT0Ru9 zfPAVKHY>=_hfRusi3y6wSprsQbjCChddrI{DuqQwvoJcshXT(6^k={&Oy#H~h`l!w zP{8DmaYHzccfqfMXsEm{F1v||0e!oBd$C8*hS03ph{U5e!4MY4^7ba`C8wt5p-x~( zfb+as&8^_y_vJn&YCiqd=3K|}(!MQ_`y zCZuJ7P3$=Zoa2!-zQO077^Av@q>3 zI-2LaXo4Nb`tn4@0j0&q1K|fyY3G>)#KkdEc-B!ciCnj`GPraJf5JD4;r-@eYm~{k zla=U7d3B3}UrNAe54HksGlEGL&;I)L3)BjzC?}unw{OLqW6P0*Aen&7MP{}_4`O9y zb?a6v>eT-IHAVv9a9sgOY?TNKBVq(j9heu`vA&23P0bb1O^8)|u>odzU1zUD-$wU> zk&>#orSD&q)YKO63kYFk;-?+oz{ec4ZpUR0O;77WXU8{0Aot(AsjjEzw(?W2tX&?) zrQJ*ceLSlwG)E8@^I6<~m{FvV{|VG0CY>>Kd!yzthTIU`(4C0}6}u`uq;nF737Sv) zT~kv+jY8=JEJ9ks_`4=l;Oc7j)2EkVEh5`h)7iQ5B8_E3MVCnKJCY;|3(MmT3_@bO(f#mTu#6Vhtxv=IO% zOfWdp;R`-KBxR&5H_ki2Ma1608Dh2Am2(p{%ys3y)wRo*imSnqg~%;O3O^<`5%j+&d&Bq__ttWHs@sKm)axg|!lb3zJPSAIMtVv9Kt^+}QW;w=nXKkuzPm zz%EpYr<76YzrJOvtJ{aJxGrLAbuH)yad0tigD&%>_cm5-lzipM$;eO;OLQ?17X~wKOboqoZ)PTU!xJwO zq)bv?-fWo4702ONg19&T{0$DN$lBsr5r=8IaSgBN=q~76&V{xW z=>sBO?j(ph#)VRjWQf)Z-Bi|&BPc9&Ubs#)rOzxdhR1>)>&fC~+`f44_~7vH+HqT7 zQd*3$)UvE5+L2L;V$SbHxVN|WqWevt6-1Da+9GURWihP^{&bfwT?&qlK0kKPCm>*a z)9T({+4FUcZ<2gJ9K6hWg2)I|Ef~#u*a3KXXTQFVgRdN30%6(*cnUcaBM)tW2w>I9 zh-_eqv9%S5YZl_?uNr)YL(>J#4uL_etiC1#5Ce-$V{2=MZZ4hRK9Cj-yy&d|4ny8Tk)>yn&`PB3D*?IRQQWTJtTOiq%*tycTbN z`EnaL0co#~S(J2qXA~6)ry3~w(Glryb0VD&-c&pboR1z3ggR~x%ZLy^qM=h? zS9k2#F*YB0+#s)}wOZhtnDZTKn{hCf!3%=CWm z0jX|)O~gv$?tOjh(ITxq*6G6ef@g$4ryB{N+@ik_gUv6}Jpwm%XP_)5F%k1VIJGE9 zw@gex$}VCU15?BUT1)7;Q1TF)*lsA>h)^cTI)nA!xoJ+o2Z}?5wbA9#gj=|}+OV(K zCfpzlxdPvUfu(LZfgpGbzzY-y;Dav#fZGgrKNQEx1~-@Kjodfz9sxl?v>yE|gEv21 z;ioM&Ns8$FSmm&YpM zbf1d-P7~4GshzuaVaTB!c~bb?DyS_gSr|he{u^UszWDKbHt`ug!<2`{jgiA`oFr_V zVQWyh0MJK2*W#A3@Ums4oZZ1x5*Y}PpXh8GQxOT^5}iG)FIli zkPv?3h655-S~v+8F1&jAk|bNY4WJooEvxVTN#E7Y%_dz;EFtUpbMUuva*y%#4GSwP zR-Iq}j>*k!+s3xK47VRHS?b=>OEiMbCK&dCSqBZBle06%){7i}oOwY5Ry%GQIT2)L|%+JdTI<4M-8p8qVtRN}3xT+4>#7B?o$>pBxyPP~6Uj zc)0&Gvb#LL*<~p)K*rXTOTd6W=42e|gHK9w|n-(#0| zaJI91d5rbnTZiyJXuHss*k(>`^PB0*#EJOC)J(0xmTc}pl7E-=h@bO3{owut3nx)E z2cu`xb;{!n8v3y!OK}Ohx+2kM2}eEoUCg1A6{fDdMd~lr49`W3{*IWPj&*!GzaqH4 zaDMCNdg8AqxxEE>`7UgKzd-NUr4Pd0OlI~!Ll0gK%&^e>JRl$UZ6;ge*hd_79JJn`R!%J9qksW1%QHu+jMeoUOFFeB4MrIkKGF>9;x^H*B?8Tp)> zApUNB`BmRRV=i%?z>G{YI}nbuJ?|9_j=O*yZ1^kjb8pAo5M)fxg?PGof|Ls9Nhn&x+?488Nx0PsrQOs ztjO}x;J3jiT>SS5yPudZ^fUd9rFWbBoWX~VRG7w!vYYwsrxkAzT)Xq&?@N>2{P|@R z?L*BMc0T&|#L3qe!-DDun9gTJ|MdR%)XoQ$yt}{m9eG|)OZ@LDK16dG2(D&F|9JHx z5fdo`LGDYbk0``mM)cyFDMV4?z|g_7We0R^8gC;n_;&Dx3Fv}fpVd|IFD->LXDKD^ zVcQjdRv8jSQ!hjYeE5g){`HO@?c*xK?7f#Z?9e&Js zr*uY$+D2~$ZA5lPhEBfOWr3Kog@zL+8-KSrR&=mcGUG#%Pb-J<-jiVK1M>Yj?9IA4 zOzEL@?HU*RNlCV{l>wLRx8ILbmrUn20{G*L=|VL1oyV~t7hiM`ZWP~T7FYSTA>sr< zgYb`mZ>5p9Qde91I6JG`QX9k-bUai+9|=}fn2jkmnF$5ynsV4jsam&^#TN0S%F&lJ zG#t8(ql`PQEBW&~_Sty*5We0e(dFmmb(UBNnDdVPccXl`;S5LjX1V!<@GJb!!R)n4 zEGi3;KdHkPC2alftUR6;T0d64GO%v$p@|PUbMphSybEW6_}p>jw{LGSTxrk<*>`aE z_WSjW^OWt^=MPaeV2j}MPE-*#PySq+Yut!-{TREZfm^|-V2`EC{Cipjc4}(p-``&7 zc*L;JG}GtT>|yRr6!&#mJK@~J~BhK+V^;CjJi*Tip{ z!lYLA0QGJL2!&OhKpnQk%lX!G^`M^`E7)p-Mb4P_#&o##?_& zi;`NXc4*>UCBi`-wOO6+gN3;i3= z@gQ`={$L=>kN52qyZMdAsciS-K&BE{aMb6tYs8 z$xK%E-kBj}WfK|6UWH_2lReAImRT~gvUkYdJ1gsVzVCWI>-+obd0yeZ-|uUj*Lfbt zaUK`4a<}G!uidkPDlGTV7ApEg7CkRNzKwcj;DwKy_`rV|p|_2AWVYq^;eQlrR(k zqu1X69M9J+@e3c~u*Uo_N6*||e_ve87DXy32V7_ED}8O2<)Hwheq0EngW_rFpe zvw)|J`{5Mj)kjaiKx+l8pidT^xp{dts})O&x;22F!h%~%4d!3$$?PZ@&^b65KS5{{ zf!!a^#HQmN$M$FM)ea?)!ZUW3VAeGEV(N&6{4iy6CQTP=eGp0!sg~t$3^1*8P_h9h7Wt--HsSds zYZDo})25+88y2Mt3pDgxv#w%wo+B}S_dr7f2|?gtRee08z`s8YY61O%!4$FAxc7f` zE;qE^say_V%!|Hj-p}5_H|3PDRACtj=Z?pE$z3@e3w2gGiZ>fq^#ywS`vW9huSJt> z4}d|6<~bi^6d@_^A5V){9kp#`x=3k30ZS9i@jz=l1z3yw-d9S_s;vvUdv&mqfe!dk zQfjFs3eQYK{fg40xE62qH0_CYz!$D16g!E(_K8LC*1s+rl`A>1iDqstZOq&ic2m%F0_8z%t5kW zC}7>K=-OsJxBar_S32_%gbjI`u*9QfVP|eB!n31>TTQ~=Uwq4Z+WJ*uuht;o|kzO3AE+xf0+vlROx7s@W;YuLiyiMre&b^W9t5+n?Z@ zD%Wb9K@%PI$kxA~M*zw5lQiCBG#i`UTwjVR?3vDeE|AeY<$;gA`xRzS*Zx)=Yk@ENOdH6`Lz2cIR~Q4?h0RiC^XtChdx?Te*ggjn!84DUb2s zMGKlJ;>g$6J4G(d+-`?Z280#$+xW$?027WE!={=3-x801WxhM+fI3$};KkxR{zV3e788#O)gax;)JSBD$ z+Y827ABdfThs%}YM^?rsI)y>}zfJI+AnMwlJqN0kP2a0Jc%dLzn9jTm8-LO;kn@-# zY?$a~QLa9z-BZQVfbb8`-5JLexNoKG^^=na7Z4oG!Dp>b1q&R*5Vk|=5XkwRlN8wmPE?o)MZM0t?#r@w9DsyW2oi?Z8Kz9LSHGz};4qcc) z2tGy7jP+?QL90OD*Y9weR)B=l;-Q-x?|`=BsKD_?Fd#Z00*i;u1g3!Nt|zdK<9HqO z)((K?sG1C5+*Af<8^KW46lG6c+BdjZ0e*gk;pA7FRAs{?=5FAvCO+poUM}j;c|PHr z59vyefRt>zVFL0JIYSo}Zt?`NLm++E}QNihLx?z^raG`lXQB0QYN}vYQ46X>m~%JL)jXOUDdlFQ`4+* z`Q#`2j*E5VcRCz1S9M)Bphpfm@XcXnfbD)h<}?Q?3C6inS(>nm&inF3aS%kKvu84Vm6j{Cc@|Oop7ZC?RhS?aYa=H8 zl=J1Zn~paUl;j^Rb8TUC{YmLP6k0J&yQHR^+sW|*{ihgszvBzp389nopMqyL{lLofC)-K4Wae{>Qn{D#S&ngSmmT|??z$km_JuY`Jl?l$^&2+K+{q1FiU zRle5QjD8O~B^t@sYb4|5rK*AYv3vn2blo8K#5$WeqZ#ARAH7=UaDq2Av>kxr3JQ%> z?2UUA@Jzn#P{v$x)bKpnu~`@*C4l zsLqN5PT8U#v@;%#+&x0{lgz(d%xqpV{2rhbIS8+Uu_AQKjL-$&ZZELFF{YHy_9KOh<&_ z8O>!{B(2jK$c{K7l_q(8zKij|h0L>Kr5Q4zZea)SepeB#v~xI7380_m8|Bo%%Japi z+6Q_v_v&9I^f?cIZI=zZdW*AX+7q{t(;PlyT48i?y!h=|v74XvhkAF^uVn}sNvIY_ zMbMS$8>I;)8T@%Rf#x>~B~A)2wjSZ*Gp3~6XDWNt@SA~FXi71Oy;B9TvfrOl&$ry7 z&@Pi|IDi59hLM0&o>bO>(KPMCah3iY*wa`FNU_+t5Ge1z6PQ>$h2cH@z2CZ2=H*N# z1B&lDGE$kWNWL}Z5H@V-qEIi2MKM16THjkB@l`hp8$JBw9VSz2tj+PBWnT@=8ZfsR z{lC_vQm5xu^)9%Iy3EJK>r$ie(PbV_0IZ(`sTJI+^I>_MUuc`oL=>u~i8dVYR0q!= zeG>5NJN$BsaV&qio>o)yOy>l#ESRo)C^Qihqy?@?g}nW-#uS%GlbE+>yuGAu6uVP1 z{f`#Ffywf@vCClX?&0!%hh`xsIugMv=!e7l_GiyryyyFbo|ne?+2hw+7)LD;3-Q*m zb`dj?60MotGH1UDpr3C?`RBD2fIw28Mg7@DDO|Cbb{NYYFq(pu#HnJmVzh7M=kn;a zxbp_{Cif^ibJyK(!$@ly%R1<0$3xD{a zRZ4P7jTKcvj{Z8*3v35L*qoL`1VkgMK_k-H#Hi6fLkhM|O-9(|6_L=&>({#CK&o7CtzyRLu zve6B%rOG__0Ol!kdNJc@oVD*D>0utv>`Hi1c@MnH_s;f*iNZeEKUJC9G0gZOR_gE)ObN@N%w%*;FuddgM^ z4B=TUh8buWO0&tLkd=HD{VLgkoHew=?4F60^{}@7phQXBG%P&y!{*7VvX9`aLs=Lw zJaEy2ZSontQvBs-bLfox$q7bO9d3trqmsU&2V4}gVb_j59mt#rd!|njQX}6$X9YNo zF?w;=2hcUCmbM~m7=2g;yzLUFZP=9!Y1U4Gxlch4pjdshpjY@_f~iAn)l>jEAZ;F# ze|~^`wlMf=%*jG#6FGPGoPsc-(qQ8)lm z73Yw-7^M97!W_zbh%8Lh@;&4yCRhftA#63YJVSGfjGuqA29H&#wV{V4KU)D9pM4Yzzqwm1v0NXrtnlXCO-cW?nAyzcrUsh`qIQul zC=VB8X()a?ZGG^4F2j%#hjZo^S>JA;`v=MQ^M>pQKukX3D2j(tj2`@b2_^XDgU0W# zk=;ptdwpx_%%A$x7@m=f2$f@F=;7pl%mQ!q_={4 z=il;<*e7nNrb*BaoJP&3>=EL@R!URWFImd2B4S)x)xViUiGdVi7D7xMmaLErhdieL!q=%dF z+D3H-Ek*=6L6fS(Bhi`LXBIwG^wr8){?69j^7ONPL2;SV!9o95nM#^*&3P=8-2-I# zS5#H!>hrPkI5z)@TZe*xTO=XRtR2q!Vr}a)Raj+)#Y{PD{Ye>a)X&cws^FNH*9bYV zMK^LX9T*0NXz((4Hxm z(`rDW))$bM#`gaoA_Gn#lpO=I=J$qEi&72mkl*^GHGR znxtnCFNf&8+97lJa0T*eR0tOGbUawF4N%%hVDrE=Lgx`ZcCiSNllRVtju)a8>Kpp+ zMWU;@Lm=pQtRg(Y=gh}}=af>y{>g>mBS?{tz~~ZfnL~EXL?l5d&`;r_#zxJLAv>7k z6It0(6BCz;KRMt>L&_%NFzKW z``-a+PLT61c-Uq`YN?0#SvNopztw*4m5TPYvFB57MyzX(P&(1l>EF5M-hrHQq||ll z&AmH1ReSJ@2st8V2!crj3ztwok7}r!50_FuV?W}pVwB2}6+XzysP^R348!ni4w!4T zXwP*3{9Jx|Vu?^ z7RB?&KqEopi4;v3);dk?!RQ*e4>3|BFAM!-2zCe{zy=`L`yD5T3iukuCS8EL^n9_$ z5Y)TC2B6pT5jnH6jr*YroV9ekA5yAsm;DIX#wUGs8rAvGL`(b)v>OD1pZ2ytZ31Fm z*IFn#os}A-S)ecG(3<6kDYV`IR1?q;Jlnm>(5|wtxY$-;*7pJaZ2HlUai&x-+Jk#) z7K{ZBhQwZ9xm%T2atGWd!B!7&pMyDp6Q|nqBOpx!(gdU~h@KFfP}BKMLw9#ZtgVNO z--E*w5LFbPt)z_lN5 zC`)q@gI(f3WdtOV7Xim4x?geAXEj(uGLH_5E=oJ(7+2D ztWr2T0vr{Nj(2PGPZkh_rj>OlWx!|e%xA|CwozElc;9vDCL$n&lM-dDZ&A=`_J3#cTZ7J)xx zk7)xH>lOgTMjeb#v|lWwyZ`PC1z=CkP}>52wKlMZi{g23#Njk* zSLp^hZuas+Y~NF;PD|e%AC`l6(n~a3Nu&peNKxRMAzQqTvQ8C1(nFMF0C>x(gF-mw znbuN2P=6pcr38)$yhxtUM5yy0u76!~+pVN71ex)g%N*}3GTU#+zJ#??yU}NVgmz5&E4F2I59Y)bEG-i)65*~5N3 zHs{$c7j~65@3wmVW!-v(R}UyrsQ5cqmVN~Did^tP1_cDC<4$w&NZ@3y{-t#Dvgr#2 zXrKq~ijkT&(Z$yIL}(hkO`JvROIO~JT+_%~;;hQOe+Q_ymjZ8^rT|iZRG{A=MH{b@ zc($nUz&flst)J&0+t?t}azqG^gRgntm)S)R42-C|q5Ey8H>8>b#Uq*I6@Ff+WjY~) zv*ilol`P^{7^hHTlhFo23%$FSnD7F=fvi+u_ftnT;MYySaw4R4hwJLIZJB06xM5-+ zShZb<@o|zjfq2WqTUvfNgyD0s(t}f*D3mjcy$P9qsLm@lkTmLiH?_YwW6Nd6CkRpr>D5EMvvoiej@vYm1Mc1q z>&A8QeP+MFO}?E$10c)a-8ak%uKJ zx}^LFhzNxPb)HX;|9V?2V8XECfFIfc3J9Tspp}UNf>qXoR9xQWkDvm0sjb~~?XH>1 z4i=@`o?Z`@Ij99%KIImD%0pN+>dyVoZ9U=eEZX3BhOB+E1&oJiNx@g z;vNdOy@{6tAl*YKXvi=8z5%_=TZx16{q84!_Wh`5*=U-8RrJ}2!tkjN4=G#8lc?`Q zVS$>~h2tFdDbn?{w0kqG8Cr!;Rvl|w6{N^z%&Xya1hFxg^VLjjBg8s28+3Jmap%1% ze)u0EMm4{01Hj7hg&S-1gBMl;9ICMX@@pzhBUxub0}#%)`sj?}^BwuH{1J*Y2C;k5 zY9G+~M8+gWG$e(B<(t(;c0+|mnrrdQ@8WaTXXC6(?TT1uA!HZ%f&OngvnogxNMf)Q z#Rq?+U+_3!8iK4|pghVfhHO_q&GD~)#sC2Uc&;RXq5p`2+;hIdr@X4v&WJ zNMORsquwOP29;_oyR9o|A1rG=eEuDaNcv}(-ML{R;LfV2unobyD?{nM#j8G0*8*we zZe=R1_o@=s6gWpC7hAldcrl;+ilRm12w3H9DVf6*X;am_#YOS22V3eQ^8*vrp^- z9MmYHjq{f$6&QNzmgEOK2^1PP$2~tL!;kq)2NCw1Ze;duibSNWkGP}gq>;( zROf`<-tB>|hSM#!+tk#jS~i*p}} zMSrAh5iT%P?rU(@EUic>ooL9iJerfb;qJ0%(!}stf$uAh&k8gQ^}y+n8pLA;;u1Zm zw#AzM3-25K$;E?0S-vnZ=#$z#d8Sa&ERje}ZM!h-{Y00AzvI@7(4KCCH`Vi#qun_2 z+j@achZ{}G?^TxOaG-i<|5HPm65VJ~a(IM>`#gjvv1SD*(Bj2VtntC;tDzVjJXL&& zsxw00Jl8V?juv1>BQ1-D0yd^Du)M|)ylQACT|6M0O`KjIpeZk$6FqItfr~;pZFLXF zuUT0e?Cs|aaN=R}b|W&KRLY~Q_K^&Q#A9Fur;{mAbUK!@f6-f%;%6Q0+RAq4E2UEj zR><6@|Z9%G23qc+%tjZxp5i^AR9m44_SXV(DEo5JU^SQgjWtLs9?;Ogv z4fy@Le*uMSXz_>=gc*I;h%l;)r%~s%#4N*+K0_|9P#rqf ztUk>|LK07T_!A5L@L!2j!-PJtNvcJws7^u613@yz7As3qp_>YoM2soEleQf+-246h z0=}!vaMj8BX7_0s@5}mBIY{*gC)~ZNXxArupsN|s<(>&wwirROu9m|WD6Ypel5xM9 zkoe0WMw|X+49}=ZC8sQcPQ7ca<<8*yN))P>z40b{Md6+5Y8s9Bwmnb$(1lk!%x_A& z9?ztlJHsV(zgUn9E%$-_ORCd$whrQMudcs%Dp1Ra@ho)qZ9ck=vU6^{7ZdwAo26O1 zG2gtGt2Y3s`c@|O0{)f^JseaL-Ja)rsePi71!?B6Ujp3R`QbRr_|^NxUAa{|A5W!^ z$G>luPIZOg<{pm}yl{hHg@9 z6pH?GZVE16*h-BXCFHSE>~I?YopY^V>!E#uPrr(|=ywP^a|zCQV4?(#q*Xt?E}X?B zg9)95EM6nB#H1?)Etv9#`U;|YHQdP5uHlPP{1u3BxB%#)1VsZ`=>^u=Dki>uzCEI3 zRWC1UG1BtJUFM#<%Wn3Pu8aFz|DqwaKIPrCxsy1SUjj6jUUU2I)0@F*2=F#Y3gsvHSeA{T*T_zM&dn%rP>ou@@ z*f5lcTw@CQg-3;k$aS1)QekfE-jvfEH_mvZJSpC|-<5DKwph26%&4+O>M8mumE07g zcC>zwl9sG^UAx-#ph6TdpW=2*aau8F@yusYpuh#jM&Au~K=jAEzj{*bX;F5TfK3~@ zDA=(Xi=macd4&ea;b&2Tbc3YB2*}+j_D9B?|4EIt3)aTo3oH~J^-yjyy`}9A_mi@h z75J?M&u^ByZ(hZ&{oR+(4;lchongost3f70u5}5(y+4G+70rhFh!tA|a8=o{ytwU6 zlNj1)(fVd^L--wDH0AyUp9MRf2s1X)?9u#{K|p<5|4jw`(FLUJnf?889r4T|(qYrh z0hQT4b=^@2V4l^b(5?XzKXOf6lpVG9L2{lpZOSsmjg_~0xj#(*GI6|eV>S&zz~7-1 zEp{%34{+=G<|dN|-AP4thQ7U)kfXuclmAG={Z_ZJ@Pbd=ep3iaB( z$=AG<6sSEy*@mzib}KK{R-e8g>)!o!Ch_pmP>T)12VhbG+1YG$ahpvOiyLD`wN1_9 zVtXbFh8`s4aDMkC@Pc$^50>etu+~!^7*Rvj`g80OB~Du7J-YTUDBhBjCtCn;jS6^; zztJ6=o2)GzO(_GG^BK_Fv#5u&1odqj^AKnR?Hs?@Pi2SNjR)*Y5K)gu9y z@M?Nbp#o%Ov_zP0S=HOzP^+K)A<9*UJJ_Y{Ij>kPL~-&x;H1a+qa{_WJWqe-5!<$Y85k16be);4nmG%3S`_>m$4X4VsD7 zd9qtL>MoGmK622p7u9pH&ewYeCFmC@$(C9jD8FxUab>Z>j*2i8^4&M!*og>N4_3;) z=AA+9AnR&At!u$m-HY7)K98hY@g{Yp-JZu*Kf4kz2A{imzVTl+G&gbV>cdE8g+rDf zG8d?^;cA`>m1HQfc7!p59r*soU86qN^;fa?^37*vs)G)+^?L_+3;0ne;ky3L)$HtD zo_mdHJ*M~|LdSl?N)w0S9X{>im+_a_V!S`8S!HF_dr#vmh&*QV;DtP0=WEQ{j}Q{ePpTykQ@(~+~e7Kik6saf4kz( z{Nm&2cJ!jlSc0U$6E`rb%iiK56V<2z%Mqe)h1$i=;XW!L9$@vrotw}f5S~kh5Ukp+ z24{f43d&7BlauXkjAUm3S^*@PL=f|NKFwq;EHZifUzk3qGz7oxSY4D`diP2aKA#xM zM;8D%U22<~)-OT}64*lUS#P80*u?D^)|X;UNf@NLZ3?DZf?g?JMWOV}P0h3X>d9W` zCi|vk2gd{AZVcI$@u8s=I^SXdp5mRUC(47`Ffh#y!srmGCSOHMWEYrtzf?wA5h1xi zB&>Kcrxi`04+0cKh48XYiVq4;$*CyQmoy5U#n3B3jCRcNy6RgY%yus|twi&AY!) z(P+vt`_RaL-lN+j|G5vx!_Rdt!sT#|f}qS5+?Sa~KZ1}M5#7P1HVCG~e*r@g8>vEg zh8|@TYjN8cRqBh?W#OPaLP`wGvkVH@i@AJawvk7)Amsyi8Vrf2xDwNPz_<)LwAaBz z_-beqh4XSVZ6Z#tG-~ueg(z0xXCuV;O~$3}i#*RFCkV7ex-vSy<5>-U z6cU9-#$jntY%i15!3Ae9YmkI+36z|gKl?}TA*b~+V1{l)Ro;t+6`G48x`eb_wM9n# z$kP>YL~qs$4uUfZJ`}vK=bZAEO6^9VOfM3E{M6|Kj-WbnPN&{KclhI$5n~f5G}P2d zvM^AB2?civ4;YKB;~Il0Dg8y+V%h*Fb!fg7Rctqc#7O^dpte4XLmW~&iL$%QS<}L?C0RjHV6KlFyg5j`9xXsXYJ6o416hzh*0F1~5vzg_( zZ^extE*lFFgj&08#RUYjdFUI8(t7u%|FywrTvLigR+;ofY3#WnUD7?u3&u{Z!3bKxYZ^| zM@qVNS3;~=C6M^M7^FE66(YO0w;kg~DaHk@2tUYO9^7=>zJOvPX( zcuqpjalESSUw@?m{tx%c3cO*#JD-QF6VD)x#5XXf+q~_r zfDHoNI%J!E)^UbP6hNX@NPIjFS%owUB`|O8Qj!@-Kx#16%|?h)Y&(5Jr_tKM+@!bk zhu@0$Abjta+gPZ0&=^KnWH5;|*oLow9IjOnCCF-SWS(V7AC;Rt@3Id?7Z{1drR5mT zmT>Vp)L!spNkzn#E*&Ncrv)6P{^lQ<4`4E8u^L$@7@Y!NpQ1ev(|7Ck8WhFQH zK^&IXx6Hib>#lg1)>Rwg&;x!6&^|cWI&a_LA=Z=fARHVB;9q^dig>hdiMU4wVfCKcP36k>3Ij1 z_j4fcjC&qahZ3_q{tSH;-c)pO?(IigsA@!tjK~63*ZY`3-zG_ z7HJGr(gjl^bCdeg%aBT0MK1sN)pzEkY;h{!<<)%c&4ClX&H57xfzg8VEPb!~Rb~N{ z-~~#=a%8N~NCvv5cP6332nv5~Ev+Rk=deX!0Cu6{sv6QjsFNPi*`ID`_?HR}Ko4|Z z-44ulfDSBF>9}{+nMGO+rS zxrQi|lMfTmiWx#60zeA5&u#U*+T$0w+ZXTsz!UZtWMvf^P7}bbTA@*egOTMT!@uc9 zUU}pgV;5k#OYiP1XX~iVvw*d2sz~q8s}^&OM3Hm}iGZU)l$a+Qiv~>TLikSWNB0s& ze_8R%v;=pS2A+k)xXUD!z7KFXyilN?$N(4|VuY^t;HD|aet+?G*pD6#oFgnpvZ&Zn z9HKwUGbRzp^pKpLr@g=P^mey|`FQT|*zfyAYDZf+davd(6ROUw98`ggyWclJ+`^g- zj}V^E{~J(Zs_qSiIpCvUmJ1AYml3ExVyA;XkLa=B(Uy+BrujCyZ|fcz8E451OFbk`dg|7ugy&M1#>owqhu*{Q^b|NPmalBWR0*kG9%*{}bBm zQo81$n+@8?`0=|mPu5=v{Bm^%QVVRKakEvD4%kz|gv=a&THad-eq*(FDMl$MTi>V! zLB1o1EI00h^zF1KtG#Kpxxxzx%MYA0SQmdch+1SD|A1L!lo6f67hk)Adt-7zHjR9U zUw)kVbO!sG`XHS4$8bK40oecx2K)`%b*ffMMg#s<+VWAeYF0e>uRzO5eIwQ6ccV zb|INj6EG$X>d^2uJWskPe*2#O)v=-^>bbbjTkQ63JSJ~F$XWwNLWj)9%4gqXYQ5Ok zt3G@C{#}f{1JsL8 z2;_t|yg&EEq%pn|J0jaDRLpbZc4`8JdShWxjE%i^(&ISW>4mNyS24e-5e)gkMvvRX3KMh zrvAn`cE1sH9Q+_m-$8HZ@g;6N@NL`fmSINDhd?kWYqZ%prUx_IwO>67S3}`Co)hr) zmebHU^~B~Uio^h^9nUH0$C5dIL`0*EG|RRio2&P`$v)gVAKua5nSw_gcHX6D8789{({xWTqgdLwo$0dfc{53Y^fuS-k&{T+<}x6yh%VNgH-vzBEn5(n-2rA z$mtwtBxQE|lBV5)QkSy^A^pX#Njrt2>fY>El<~i21INi@Syx;fyYB?d=_S??gl^qar;pytVbcLU++KX)3!&W zOaR2SZPdmR^cf-=`x60YM^ar?r@Y{knEqmdSs$UZr||Je`X+A+=W3>t&6!z>X)#ip znNN%-xGi$`Epq2dnD;5A^=}Lg^X!SvHQ5yEf1NyUySQaJDn=j7@I{Xyl+ zl7&Ukhm-xWUq4@hV5(;4S^mKj9m>UDDb&6Y>QEs#;p1voSEVJ~4xLET!g;*5C5K!q z%C)sUIUaHf-*S{VR&!U7o5zyol=tSG8?`749!Sp&+bs9xh*s{B769-UZok)O;8xkXtV-S->Gy)TI5V> zLW44=v`DLTPDJ8e9%?<-gyMiNj#bh_umGH| zI<|(N`Jx*1iXWVMQ1c+h;3?gVXt_^i_>hP;7feg8J>$Nql7EE zd!VUI#RJ5gwZr`b9&4j+M6cJ`S} zm4k3@+!%7HbQMffEqUG^RXWk)tagpI@?N5HH>I;@iY(-UQGR)yMumYXb-4>aT=5kx zlL#wMiaj9{o@S(d4@j_{e!YmaL{4%Yf4SranU_c7RS@U=hJb(AlXxtO{Rvo**Tu3P z{ZG=Q#3iEJE>*l$V^vAR7W)Ey@!_?;l-7wyKVF^ucr@~~9)Ee08K=r}5r6bY$M_PX z<>ABh2c*O2Zl>NieG7wLu0Mq7)$5yB`X^=fL{2P6&~J4Dt!a3|K6r?_0J^&mek~M% zHU;>PYS4&C(+hut2Karb&NBR7W15^1k1-TbY>LUG%cM3X3AhA_P*Txe`?bVJN43{)rh=wy!}B4Mq8eo@g4G8T$wnXw zwX>~uKb+jDXtSv#vEo}wYXoKstz7D@ij(JCXHGMTyoQ#HpH##~ zX$s-icC*aoe>VGGK6vQ-d?sx!&7PR`Z5Df(FoLru1f!%SODZjV_%;dobvlO3fQ#0u zr!>Etq@GT3No5oGnHEkkad}ng<)yo)P$>SZj4MqHA)2N=`L8SAbJDpSg(SS+(I76a zP?XYb@C+_JC88StPSHW3qIW8QvgA7G!UnXq@2Ft-KNGG ze));=#Di661Ay3qVJS;jLYcix?-kg6V%_qQ_TL)S=lXDbbb->ZPN4d<>i=lyUy z{%YMP5i?42?z-|z)uUQQ+80+6t}l1KjZCfyG>G4qn-2dZTu#O$B7*^M8wnM`*E5_|H)DJ1&Un*ODAFOg>wK}0nWLd7ph5a&G@qKZi?VF$^&N+HL-autO z>W5xDic~7nAf<2v*&29og?-xont@&^!a+=GBkS% z<)nXi`5?@)sQIIanBp2EM)SO%V6&jK2%EC^S6|xOQCgCow{rImJ}ub&M%u2y7oZmI z3Zvh3oBql59aJ5N#s)!jrpZd2I?w*yUv2MvMd|f83Fy5dlOYzrfj9GhD8ayvWh<`z zMf>#-8TUsrQOz?>nlFdn(Sj=rTQMJ@)2nqvDGI0oXfEEac|l=u9~x>UD4YzP^Uk-# zK@_LJZ~L9}+V)ivve!Nz<6IZY*(|}a$9#6?SrF$1N?Usmk)e!q>Y(M1g>JD2^wA=hAW0a1Cb# zPf5RTe{XD~{&e|r#HonDAVnL8i!7OK1jOVIz6X$CcW_Mw!XPq3j_3+z6wpB%?fM02 zA}+~yl`{u#tYzNS^3)@BZ1R{790~?cheT*IhFS&+0Sr80zXuzumtw1=``lz#^8UoZXx5wIEy1c;vi;x^!?krgC^C8G`hNw# z3+Kh0Q~AJFBhALd(~7k*8WOrNJT~ZD22{Ryd@{*^olQ=5Hnn4@I3O!a5YPaWq^Pv} zm3pmR%)4%6lA~M~dA#g*bNID?P|#m9{n#s&x?4ZN>E02PRKq`J?cwt{r`z_!Xp31{ zVYh9_Sx-V%JWvh+?|~=m2Flbi5N=DIF*N|Q$#_sE18y&ey+5{FqwaG{SVAoKPPnt2 zP9tA0F$8tI_w5OaR-**VIlu<&HvN4>kh|VjE;Y9C@qU{Tm>1O*l;l>atA6#> z8wua1Eey9Squ{nGHHQK+oDh%30B#3roUZ^TbJCw*fjh}ScQ4vsO^B4w;;<$wnUc(qk_%aWSFUp)ZW`n?QG!H9 zA3SP74Db_CtAUFxBu(H4OW`o62Wrr&*;sR2fx~skF?g~@^W8>u!zu^ph~DcMS6Qf1 zj(nGaZ9{iOL=rFi9g_(C^}Gh{FY8YqlSqn7U`n4=B7M8hIW|#85ZTIIzajXJg#$Sx0I<#-t*6I>An20j08znS_h*F*kYV(y;!5P z==E%Vsl4)51Q1eHwZwVXik^Kb;hGlgkIrNfP$+-WZwPSE0@Wc(u<7P*Nx%aq&4#qw z-$`sAH!Dlwsuc8Uba*Mvo}aL3)z3QhQmwP=p3<1>uD0+u0CQefL-QBFw-1IfmG%pQ zwu%EbZa;xW#06jiq|Y)0smy*e5`W*yr0|f_ma6!}4z3R*vANmVGBtVm`LsTuN1m-5 zBo33$Ja-)qLF>dB2qP#vGGwE_%he}N4|<%?Kn{Uq^L$`Xl23V^?Wd=oRKrVzhRoLl zAA)i9^yjlA?rq}q4Ub>IAI|dyUQbqW%MmtWOIS?~=X&RKMWVHn?J=oslA6Z2i5dIq zxz-u4%e^R(Yi4W4*zUWP;|&{Q2_fLxpv@DHa7yPNG5a7F=|SKdHnNA0L^Tl7uQas; ztLz*U847fkaMcNs_!Vy&Ew|DgTzeCl-1(j7g)$@pD38LZ;s7ZLwrpjb0th6t8mHs+ zTLhtsGq&@2+%}~qJ^0PD^LxOM$`gbP=Rhn($t)1Ob#W>qWWJ_(4$<6cFQK?3B zgt`)xyvVOAQoty5FGxNq!%6okzv6gCBs-c-5f0+i-U-ORl10${nJ5#HMi^zmMZph& zb+`XH3;DRz7XR)lVsfGP?a!qLai<8!P3OT!1pOGIX<#!FJ1SH^+g1{7Y-5KCD{>aMTf|-bnJHf=(Z3A3B{b zM-@T2#HEl;+@TK=kMNo_qbz0vBik~hWKecVO*Z`Vn`B&nvrIMCz;46XsvCHhq!XlV zAOBM^UeSChd`=h?D{u_48c5PbP-ZK}1YXw(zZ_Q-&h%*db2l=uDrE25y6^*)qO=k| z&tubBk~8A<_xES?EP!T#N8PxUw{vfz%d2%pGijph}%HYe=M2P z5ppo9El~x`sgJJJLS-_O6J1*ifUhICx7;#aha$3Se>UzKRxM~316WG|+W{|`6<1b%k~2b9ReTg~76pH=&e2^Ne6xH0(_;9A|0^STh*U*Sl1*(;l90K@I9&bZCQ7Y9& z-W&fca0~p13fKf;UHEq-S{3K*5L^YG1Ek{TuR{uQze5K13056qg10gfr4%cl*`HPp7j8=iMCPI?OC~s! z5(oz(8hA3WhT&y`Dg@P{+0E7)tTOxZXN?*w{p)AHaF}fV76%aCdY|y!vUp_^@cB}_ z7UVH-aA9AEx>z!^=e-KUxDhzq$<}~nkpyopR9&c+@V_M-TO!$1V1<|Sl_IVLGDfH5 zw>1G6B*s_kxF0=-aOq2k9YQypUj<(2&Iy?%HET5o=O68W6A->IjMO_!N%$y_$nM6y zg5iju(mvl3Pm6bFNzxMS;3tZF;bSxR=*NIAyZxJEI zG)Xhz^#R5N%vph&pSuJuTAq8nbDwyqT`wHA%G_$7ybq{Vjz%~Ii~aBf{%5Fw=SW(Qu-?cMpRKS&2H20ao+W*HpqmZO?xY4z9ow` zw-bf=pNjN_N=uIZ3Dr%X9LV!w@Brd<#n2~^ z!=gus0a^)_Ufr>;ZC5_F}-Lq8VD0CJF3gOo5VAB^c?@kbnvf=H?sHhz1X4^uVp zD5&Xhc*3-5z&fa&4K$Iuf2RVhNq zF||_rU|$CTG)cAlC-~WcAy&Z4D|fj;KVk{GIn5;yQot{)z&$oFdkXir z!{?mzh;{6`#H8fS5nTwa>ADYr{2nyUeL`{otuiFF^$CIG3_O`qxi6S6AoEP+-JNkK zd}OI^#a>UlT$gk@P>m<0qB}3oj)6Sw3+`NgoVxb*a9Gn(t#jk?ct^)xt7{q4!BS8X z|6If{v2H_U-7n7CJkIl^nL^T8tzws&mLOa`sg(3aF)2-x*WoC&AbWeEN5Ze)seA*G zj2?ln7btZ>z4Gz8#>~j|Lx^6xBUY7i*aaXqYdo+;jOf6|PZS%x^pSh%NP{S$sY536 zHVKDGCjjQ7&)J`XdIXMu)bL~I)Pt)D>?Vl*EQFBGM$Cd81ERm@c35=KVi8^RaoM;) z<*|3*l=khp8Up63=im0GgW)u8{Zr0UV5W0UC478zhfb&;i%Sp=snQB)?CW^P%|7+G zMvx0sTrg_!AVx*(9~<9;cmj~L-{H#gPS9HR_6C%V%|M@?yN>iyZV%{=?@fZc9Nbe7 zg14D?vY*)eQtuQ~g{dB7;rY3_Q18uMe?|7zh9O=)U!&+H9vhe!zEd!`qg!(bTLB=t zyK^oexJIf`sMKPgDMQ3?c!F~-LSBL`Jcc{u@}%YuqPCKc61~avskM7^y0wKy_TP&F zyE8Lo1eY(;XI!i#>eZvQC zy}x^~tX{Jj0dlS-=$U!7c91ZKFRTMQc3Nd;8~Ox@!3Yo9eagTzt!F}k(ICmW`vVdDItX<4t>mxfE{3}QHl8iLQ!R`wp;cEZz2T+l5 zJx}g+%kknWQpNe3p?As@a`5ftmu;pC3HxzAnH5MlZW_+jSq=np0~E$E@9GF^56 z@yZpTerTN10JE*1h0qdoxEWQ;=P^LZsxLZqj^NB`J&{)(@Xv;c@zAaW&u}aK5fDv~ zV3Ov6`@PopeLS#qcZ0KxAFR6ST45V##jhQ}{)2bi#lDWYhu(d<0yV6Uq9(=RUVGhDi;dkw`>jRhOT<#x6X8yE zo8`AOQ|I_lhICJ;5DA0x{!CPM4(@}YVZB6#_gOc6(B!l6HQYR%YM$mN&D-8*FShKP zHE%<$FkJ2I*ckNV%a7tdXw5Z%XQN2}1+BH9s=V;lTaOsrz5X9@Zvu_w`?U?bc>LLBts&ZBQhm3p}~-h4HQL4C^HqJ5+SoF$rP0#lnmiLF8%()`>pk@ zZ>?vo?|oa(dY<27xLwzIo_n8rAN$zHb_b)3kVtbXpR;b%bw^678igp8H!aU4*}SdL zv#y`h)Iu|g=Sxr0mfO!p?@Hd@&8E-+z-3ia5$<8%ULq%qmXN_1N?dbjft%>BW{`iB z-Fei+U8q{=*`@}9ua4I1Hik{FGcl`MN=P+~~NNa6RTO6iX3*A!9X)OOUS zqI7>ds%Oi374D10>PapAANEH&{p;6}1P7F75kqaHs6}wJZ)n-pbv*7?uAgM&z#v`O z#D@f2v;NaZ49Q1@QO?2aj9N37 zt|c%S$vnp2WgTm2Z+-pOBc4_@1ttvmyv5myyLx7G7=AgVraR1l-PNpPn? z15`kniYOGzW*^?<*@$$}SV&Lq!ht3x3fU^+&bk8G>0RSpoPv+(gEi-c&feI5&cJKifIKPz-N257C9s4toYe-2x6%FH_GFSi)bUhi%11d#1mHgVZ0nrxU7cbOt8!M zJLWdNv7agw^!IkZ+5pr9K`?WR`IQ*si7VBPemyyR$KIBldZ3WjHq`%cL(So@(z|+l zhhlrYtLC`h{dvSm>ZUZWP8pCA3nyuazYh@uWUfP_C4L?n82+Yy%xZdDc$uX?q+e7}Nb0g#}pF+U|M9DSwUth9TWY1aWXopwT&D z!e$*BYL63I(1?5-%Wj})o0cav7L2RcgxcmgsjsiQFgP$&m+9bEUkM(*tM_1b*1003 zOX#w<@3}2?Q0!~DEVVdH67d%l8$Y_W9)>C27PBIhdWjBq(EKHr$6*u^cBg|37oOCe z1ypocjoi&yJyf?pHEz$q>)U}eYIb6(drx~EIR4hxe#*+fw`}J3nfUVJGe?cp7KO_W zkIRoH<3gy62%}k)pp-e8wwxkQF;HUG3FO*Lx0n%mvei7YlhSn zRN}md0=EG}Y;$>dtC+#U`SoeB-QnrMV^fp~sUzRS2UGW{bbCgSbks$aVxHmvqxG(W z_1r3U>&8S4GK%KsxgiPty2gJp%nYN~GW&vphcAHSF3V#HY$1YfUxcXA>tx4yiBnI(0b88gf76``cxh zKMEWA=^^Ybmsw?pmW9=~n)^$82u3B$Zf9_!TZ;zT){f9IKClTN%G%+0J=N~lKe6^` z{_7h@wPlB}WKRcVz&yJn=WdTKZ)6X|m6!c1E#c(+hu)>4$zSL=<3Ip_^o*K;a~7%{ zPEemjZsdc0NHm;Ypu8cdss#0>uOIrZY&?l#BiE0^bT^= z+!qLRb_yGxAKuIm92|uMn*=Bn!9;_MAChB&Vpq>y{eyu0K~Cv{@W*RYg5O7I7e_FD zp$n#VZuN;)mO=JHa0yYCI4d(Q(+E~nbOC(>86O#j27Wl-dOyi`)8ojKf#6F|!_=B+ zG#sOwHwb+n3;y?&Tt_Ky(V<+fR*gwZAvK-aJf_rRIr<5W_a8)1;q-%?^d<_yit%Cn z2~Cv<=}#pHnD2Uh%LHA`xe*BB1r$h5y43Q^9_+v4Tt!0|ITkT&Pk9L}96Al$SYD|A zy3gbo3&m-U-%(V#hp^27LILj}ae|D&3}fsp`~RR*;}bSNRs8Ub)F`3;fktd4SQ$Za zEjf1@4SNV{p+G8w)eFre5X%Tb$JLoZhBn1l`~K#@O+pWLu~|^kTEuAM>Sg%Zrc2^B zO3nDK(ll=NAQNW^f-A^!h7wCi)Z4mv5`n4znVSxK4i#qs6~K=6N(Np34Lt6!$ZnZC zq@sALOJMz40Xo%%>>jkyuBeK4=Aa?YCajRa2W+E7cU*3Vm4G`kGq7m#is|5EZo#ML z(|UUHqt?9*5G&iwP)zMEA2k1S$*!sI-ldptfZg*=Q}+kt>DJp%AYwpY;}isFo&rOv zfO*mewzwj?W8l-1d(*p8P;q6Zi-&GjhAszf6Z>ZIi#_nCFk3Tdlpyj2VR0Uvdc$Y< zz0mAJh{2y7CeYN_hf}CNO{YaQ_o#aCK5@Zo{gfx_J1dZ z5r)EMugb&4EtE7>R>@s~JB539L)&s~=P5SKV%^n?`ATtPg(&L}=jfmIGv6OXew%*7zsc*tqrqfN% zRA<{PTG#d))tou}$Iz;n-YRwn?;1x`gjkV69Wr~pKc}V1GHP4;tOu3bcGd4IO0cNT zi_b(J-}gQ*y;5>{F0JqQU1!??-q?*Rb>yI5-U z?9?rP$6Us=anr9QEGk=S^K_FXVvl|S&t-Mx$uU;)eF3yC+$R%|w?8EIX?Ti1x*QU} z%Y!*uBgc-LwikUz>?|NJ->U1nyEQb`LH|-bja|W>fr9WnO_j{*3!3k77z18+Pe=!K z%p-?g8G6cpa2y#;=8eGdE6 z%dDil&C|U101Qoh>TwgKh>EM-T61g^AqX z$RczzUU#WQXUnzV)yk{Jek+kW-O)U*P44q?(yc=b_+gB=(1$d)Y|`XKE~OZR#JD^2F(mu~1@I z9x$rF7R}qr54Uyb<~%P)ks!asT(-Yb_Wr`1Kh=W2_ZTg=)O?U0opEe@&E4{=>f9wQ z`8>uiT5diXb_CQtv(T|KEd}ZR9o{i2lEkK~Z(+4^IaRVvU+Op1=U<31Rq;CZUg?I| zDD~0M!UnOFUx@P9hlJPv3LZK~cY&M4z`dFWK=Y+mO9nTQFGjM(R4IcYh@}})B`hlr zs>oX9FmV^}3KcRV*-8>pTqLfLw%6B=F$rh77Wk+z>~aF{%<(nqXU&q#q;8U5K7NGR zD3DWK@Cgx{lSAh#^DN0U`lD}U>N)rX{<_riU!*3FZg~PeCz|U-7EOQyV(zBn6DSJ@ zSX_xik=;VX-P+Vv1y2pgUU*clb+k|w{583T)!dw zp3Gw{_7%rZu@fM<35;=(uffU=?JiAC^FQ;sGSKk}akQnZ!mq^Aq|Ka8J8aE#fMJvm z{#|UwDt2;HrGR^B+(yE%EbJ$gJt1HP8LIRoCy;%b?htjQz_$I5@}7oB4Jvn1=ml&R zG*x)xei;Q+s}ePm*=^vSGw|QX+GXE&W*Ee6^pquER=BD^`8nHZN(4dx0rr*Er&isv zNpRCkp{OnswDKpZ_qFJtI!3(Oz)E38hN*khS7xu?YsdS897KyqLzXwZ_=FWZ!WziR2s=&B^vs zPEXb)x#1@7jWePz9&gZJDiGCR2rsOY2_fFd6wVB%RZ}%awyE%juuP4g`A+D|75=p1 zOvVP+ZO{bgfix4{&BsXndd@Z3CS_Mae$>J`8e;qF*!-@8xoU$V-Zle08-oTNO~g-r zDL1$}HEd6>-kk0l2hIsm+F$uwTZq+b(inRiDCcdg98IMd_LQY&%W@;Hz8FYmEjrpa zcft*mhE`mkT!Q-7Z5@I7Lht;xxtQC;R7k|iC8h_jY{Tiv>(elk(LrG7w!!l{@9~J^!3samKuAd zN;XRT8|^sx3)x}GZ8zLNZom4F!1}{QYjlO_Nl7d#KUMSv2hBq2Aj7B|h2M8GwH`+h zmOS7iQHV?CvpY@6Tr^azvs9o_i=vV*PL*gw#dl#n^M0IuWvP|N;$JVjH}+;V6%9|2 zZfAdvIg5+=@acaW@@3-Fd{#bfjesL1lgdbd+KYvi-s!jeeRW~8*N6c$RoK%s7z)@p z@FxdXB(iF5gIifau^CWoCTjvVGE0f|)MS;RYaa(*Ie#76SnUZctrm zxM_2)vtK4Z?PDkx^rlA1JE z7DMrXCiN4BR6V1Gz;M0WJEy5+XT0U|vA)Njw3QxG;d(9TcK{&9W@3{HQuwIn&v_UL zoB~t0G)Ok6&(zN*lvvp9L@hGF05EA9Z5)F|cK$cY7MzTfZ@Kwlg;U4iO9zJ6AlxR6 zts`vN_+T^@Rpv!QD@W>$jTyW*s;^T83f!mSZ#~E7>P~oim;E$Fke}%W#SLn!u{&Io zg-gze-pO?5h3O#3gXhOoSV{*`xmAURm6W4-UE z>dcVxyZ)fQ21RC}^+T~2RugZ*MJAqWFs*(zjF$f#30=3Pku?irL5r1~Zy6@opd4PH!(fAL*m^jP+8C37`#pq8!SK?=TExxEhi{k+K0bVg8fq^D-_gZsfm{bY%inj@>J3cMY& zUj-E@w&)+>nbEkx z4X%rI-5sG(GYykpEz2}B|MtN(x^z&&vP?SF?+b@S1VZp4iOFvQPZki$$yUedG#8NFWQDn0?^+*91 zO$fH9sgF-~?_d9QoA6&>ID7VOW3_TiPTezLnDyzbYD{N(@Ubz2qUtIvBNcJ-M+9!w z2j;vw@j`ZniYI}Odfmd27^T9AQ!E2d8WZ>QzE7a$}Yg_Gz9N*<_sPeTgm_}SfU%BnQq`1)N?_`oJ=cmMvp(+p#MlAK6H z5Xy=BGaee{zY>Czmv zh#lZol+Vm{M$Y#s`Ii2WRMhKO$lu9-jS6-5e{Sul+dMn;TN2KBGRYD-4~dvWXv^i4 z)7vvBDf!iNz~)89zPOyvk;-NV--y%(21We8L|-(M*UViKiXZQwbNUy3FpBK`+F4Jns7pKeW%uelX+uO>9r8Bh?c^*_2sarVu%=RpbO8yw zjTb$VoA`)d7H}uNDkuPWh?1#dlp)Zzf&R$+{+N~Ja{#AES@weoGe=h9hd=?^5Ek9P zbhTIzXo>sLrEl;4$(ySYt1;jn6_D<}p?-6l!Tv`sEFs2;vOyQ{D_;a}P-Qlhf_6=( z`D0)WE*?UsrS3rAJsnL1Ah?}3v$3uEQA)u*beo5GX<3|$fR+wRUE+Sf$;(DNmn?fL zflB1hUhK(*m2aN@8!q%GQt{5Pgp>staWYa<@@-F3M10vVX<8>zh%+NbL}L6Zb}`}W z!(&Bvh?DOLFf%A4Un4(}Jzt8P@VO0+$O-I}@T&r(%&IBQ=Ha3#+Aijaix>IXT#EGvVhdZ^ck4o}~$W z2N4d^KH{&A?YEB!t`s=(ucM z2lq<+zC^XMcugz_2tFr|iqJ+JYaCN%4yoFI6)_#BdZyMF>h*-3kf<4P7>u?4W_p*8 zHQv)9qGd+BQgSL#eIMu;;L9Q2^jhrt8xEX?}f`|>(*@f@GrukxpqU2)bo?fEvI?nu! z*7}?RCz+bO;u%MXr*_r6ZRud18eUsRoO=W4Z^Y8;a|*_tyGnpxLsh3%Z)wEyj}dc( z)E~L!v9o324B~_ttG?h=cWnF%+uaoL)K zPHYV&pfT+~N9dxi0JWZdJ|DI5ED!N6yYYSP{q_SjLT0+)CT`f(#rSfIn+)53ZpFW! zvkgC&XH{Q*WrN<(BU)8mfr5AhcT5(p<1TLpSgOS{@Vs2~X#FT{e$989s``X070z?^ z-;Zqs151x_7i2_c#uu(W~q zbYu*{%+fG>&9m|YrLY$P#gH%x4VKmZ+|SE_7yo_Q{rlIP<}Ow^b?z!7F-%kwgJ_j& zbr6EAJ-3OlpZE6yFWQ9DxJOeBjK1Sqb9#5NUe%Y`Q^XQjVbi#JKHY0F9Qw#`0B@Fq zxc8b#P~R|!b;+D?Q*H;Z2n*#Z;_-!fmy3Dtlw!ASo( zKMP#4JTJTD_uVn#ye-~jzp@d@qSy$Jv;vLS>(uHjkGQDdd9VM=u^aFbj-BLYjW-(O zF_7z`4|hEru8beq0Oazt+3OXvh}wj;G10h6QAxXKIFz_`&-+hL0;R4}QjYy~>|m4V ze*3TU9>9P}HOX<3>2Tlmn>mlAG?o2*6k<@9@j>`n6bGf6UVK!xbzJ!a&XxEEL*jq= znkJ9fX59H#dDFzSbtxx+I?HH%&eX>%3*d|=zXGZJedXTHk1%7(ZK412>G=Q&NQbd< zw!4Yr!;9}fRe}E{1r%X4iH>@VYD%K+ap!}34<^Gp%u-HZ(bI(ah>6U&s+^0X2vS`Z?AN^3?aR}=gReBm2Pzvz7gC2ZG+A``D%3_@G( zg}BSV_;Q4*y4TF;g=D%*RH=lM>VNj{(;XpG5b|FJqH>ogl-Tl1cx!X;d5nMTS`k(J z{_We8X+97iRLZ76GC1qwj9z&{g&k$MSnE%3*rsF9aRT{f-3ZO96P?coBIPlE)ZIMn z5=+;AE>5Z+8m0}0ZtuffOJ0F3&DrzeOT1oknLey5r$PCN`K7(Nphzi34y^X}J;!+$ zedzdms3Vt^5qzaN2xlii+!n$)pa@J8BG0JQ^(1cTflNK2WpkK3so(_lQM5FH$OMtS z?lZYo;SGth`GreYl0_Z0Qni?}wiytvtU!J$*MDG{+azEA=DXiFg@YBnf2J<8{pNqM zZ`m+~hg!|p%3tad;Va?YO+KV;&{Ju#G@Z*vTS0N%Bl7Q5jszpK$*f7ts7A+1O zONE1U!LM(C@`utC1oW;ERH2YrpWI&W+buhORL)cK5|v6^^YAd4x6g z)o-9b`mE3V#9a3#MxQ^{fpmVNlfApS#Xd#V-&Of1y1pkyP~*E9F^_b9W(=Lt9j^~g zttAE;NN184F|YPVd#+#MWF|!7Kp&Ke%!QsdA^WxVYM}ckF7Jd{>V%pqp&mj1o7iJE=6y_2T)Lsx$TpKSjaLIv% zkn1~kCfxm_^n;YPO%wAUl%zYqJpG&!R%7N-ACM{_5oXiDUyZ4I=+9D&5Y{$DLv;Cm&^CQ$@LK}BOj-nIXv!sbS zR68Z-EI@l;PcQQrlLMm(EK{iyF~qb0l$psqW`Fuw^WSOTmKuY=BwDR596o&b8n@!D z6MyisPt9Khp##X0x(W}!vpw4kY*xP*95tc1@Iphy+rUs^KnCu0>{*`G;XVmJ}b5+I!x>3SmD>wH& zf8z%M6dBLE0DoCaz&MQyj@sutuMZupyGb(Vw)3Q(`)U`+$`g!{m~y>gOcX+-@ry{s zEA;F_C!ZBZKMfUoP=1K6cVe?pwohQn1J|4|Xh*l+i@!gdmtrYTetnHK=i{dz2ODkc z`W26Q+|^9CsnhOKzt}V{wGgr|)s{)<*pPv~F+*EzN&NRrCl0F?tj|gT#L)3d+(im5wAFWZEV<>Q#GZj11%5H4UZ}(EaV-ZqkcgOu%>KNP_Dfg zqH(mzVSNq6XOC`Ul2S-A)V+RR*m{6f_C^}ZW4Et*6hdm8qs6@cVOEajoivCHe}JlU z_u%(}9&T&xUr!plw(O{$0T=A>-GXYb!J52~@B_B1W4t*{X1cKS3oS!6xN zkF6kCKGStV+Cu&2w=d=Lz~EA9MW3gf>BxGEsqICM!=nye^{ldN;5h|HLGtw(dIciV zcSLTH9!J}d{r%hA&uGJB6GKaDsQq&4s;@~GT;Zb*HGZWg{b{p8Uf#pvq;8hY^Ncft z<5YSd?H7pN1d;^ZC(*6jI^Ah_beV?~wuGLVQVlGfS-)pv&E$(`Z(fvub4;)#w~-^! z>j)tVf3$(6C%R~s%e`OSJ?|Rku#=%{4kh4_+?yUhiQ;q5owc@^Rjz|Eektc4yy-NX zGc7;Hcc)6jy<&P%MjMcy7Px zDX**woAV!oImJ2e(75jHG-pNZB(0 zQ^AjryFfZ`%tu{Mkmmqd_w%Z%P}bVta@75sYQb;t6@eyQ@A#WyY7R*G<*Da{KHJ$nJA>sp2k@J0e&2Tpmj68VyU*9{G zAe8{&-kT`1-~O~%siWz4{;RIL^Ol&Lj+oB5 z*zc_?7}9RmkezCr$9+e(R(M``)IO7Z=VaO zPAYrj#L-F+NMiQR6;~{ZEI7FQcwEf@#i}FItTVV@thN%mv@`p&e_=nNqTnQ3yZMmjOG_B!vujTB=1?U&xNB-x+_MW_0!TeX&IZ}K*7X`QIQ{=C9{G`XhSudQZz zpH<5#0hW+>UA4})wl;MNYlt!BG&46Bua2f}!_Iovg9r8LRn+8PM)Qw;Fv?BR1bUihf9_P&hV* zS$d+=gkWSz@7oyK=li=S!I%HE!?(7~nyvnSK#sX_4%6&GD~bAJ>M9r6*S>jqGOh23 znO{9!@4lI(u-B$yDHXgwj;?QLPvm@G^S$NXN=TwZ`LXncB>MVnN#8ok8_fBh17%*C zGdDAHuJL@i%8J+p(T*(5*$ajYG0+FZ0ULeu#+%}onDTHimS?Xm+sb4V-jO_G;OqN* zKn9azd=GU>Vcb1vaQtQmbtP~Dd|X!(Rnft%eUM;q@bN(?;}5ZS(2TeG`y85JXqqe( zp#Cz-M1>{N;kNadc2g&4dl(hts;a75Jv&RkpNSxHO+1^9v@)_ua_<D7U>yW1$w5_RZ?6Qn=OV?EyHS~g2HlQv)K`C`JD5?)L4&wb7>Pez$!kcZvC?y!51D!v>X6(Mlba`*7>ny#dz zB#rHZ&`A6JJ$F#{UE*A$%$=J@?zrB$sM)y7WV-%=Pgs|w`?GyI_nSR!`7fr5t9xzS zhJ|EgiM!yu?&7J1nK3Y`yTO;h%!*iXg%Bo86I$vI+cSP)RZ0U$>C!we5g^P=^g2D= zuAAQa96p}$aq?TRo~(?PuojTrG)d#<&~t%x5RsPtjaI0<-Zor8 zSdOT5x@!ewn`}jIW*b~OtjX}R zWK34anhcWkQ{4F%sWA%4^9NiP_^V-&kwu2PYOZZ%rMQiCA4_-rBdn~g-H2Nq?FBwV zb(_JRM%zDDq#R7%-@itct&W~xVCG=FLRf|Jwnvmvs+6oVt4@TjfE+G~VzkLZ0*{TS zM7}7v2EO`w?SzM{P7N0pnKX)C+>$4&vtHSXvNu?Vjmm7zXt!11Pukyd!QP#t;|d@N z0s26ufCXI_^E=q4Ta0`}02GT+oBK-cKKbLj? zv(q~6SP;|#YwdMAt`KM`DFbk-PT_yH^9EHRM?^YdQb#me$kD_DZN>w&sn-Txu#Pzv z&n30Ellq%Nq1^iKA^3HDyEPPL)s=^Rj3KoT%TaB*n0j8r5s&K3vzkXovNkW#Npjd^ zm)ap7S)CSJMgF98zLke-3s)xV3u-b*pwTwJR&*^bk6ppKq{eMu6$_&2uEH}a^8*!l zxEdSGLTn~!9AKaG>6HzLMFGlL$-tBkeN9<~zdU)-(8&r}U5tj_6V%`3J6I-TpGM3Z! zpUvf`_WJsBoyHMb0ujk#A_s~Y{AW7@>Hts0u3uT5j|_oK0&%Oe_EmM~ z5e0iQ^Xm5~wOgG&4BNgY?3?F!dvObC8mIg2_p z5!0O(l_DQSS)V=jubv+qU>GZ0zwfR`#P<&wA=zpF7=0a5BCrLdeo~`8#u?}n&SKSLuFU51&sg5UDlw)so8qFvEe6U!j!6Lv+nK6FBFO9al&hHL+Fz6Q zEU_R2L`WZ*1DVd+Y2`;IZM8qqW)RWj^ZrRiv9?*@X5zc!C;$|vw%Qk~D)naVzcIaI zYf{bdhI2=x&zepiTls;IEv?lNwG?f2rHZAN$xU6yr*}PA_o@A9Cms8ij?A3nlE)L) z;e$$6p-zB*8O-V7Fe@A}Vs}mWD-eeW#BkY zFEOw3|HofX%AyPK1`FL#PcJ$P=vKX}#$$$evE+0C{mOzD0&?TE=tPFBwC^!D^D zDP#Fu5xc6jrlzJngtUB2N5@?3CfnYzxZa=1OcdU?E^}jCB%x2>ii)tjMSIFYjp&t+ zK&K~$Owp0awrv^LaZN9+bnLa;JGMTEFnDWpI%AiZm{?0|D>1k*c|X_fh6!Bt zf4p>QuI{TyI%5g?w}n5{Z$MRMBf%v zR_aRCGLD}-`3apeXz0qkeEG6P85cT+Ad&+;T>Mbv)vGPG5}OTp+U(GBd*#X%=qrjm zq@wz=czsp!!w-dLj-zL%z}QhoCn`5LmudU%-HrBzEbab4MNXbP$r14YJ$#hQ=x=81 z%r(n>6O^)!B`giS#uT!WQblE@a)jDZz$Iu=D9usB& zRy3Y`+CX8WUpK^P1Fh`DE{B}Qv?&w}eS3sgRaRCO^<~>TL6;t@e!Bf%T!8S^8U0h! z(>3Aj0}~VeXb{A#tkKa?0KUFxIs#BCQm{-6<62r=pr)oaL$j%{@EN=x#1pyYJsj31 zL&jheQ$w!Qr~978K3?tMOt=GS?=W$tnx-#5ig*u7bJc^ADM}i-=@5 zE$!cr=7RMPGrlEzeEs?reV$%O9}hec4+ezwV`iq@bvQDcf7h;2tY>xjo%^c6jEGdmqTNH{WB=FXvp=Jy4KiAu(ZCgF9ZZ~V9xmdkDou=>ZEqf@K2w6sxC-fiSDjwntN4UeUf_Mt z(?EZVTZ(r%@J$@-#m=8mQA|7s)YQ~6Pj3F0xa%z>2et-Xycjl7gd7;1fu3Go^9u`G z=tFPZxN&bOb}tYcw7v){ZHah|PT*YQ!iRt=u`e#;iHV60g~l<_(Hziccbm`ucLm%XhZQCj@DAO@8XdgMU=Zmg!wgEY%-5%(Xv3@a{k=($& zFXtB*KS~w_MojH3o56v(#lpcqCMN|Sydx?gvRmUhBGC9H`$~b}S8Kk*8gfLurYrz< zRVDX*|1OWte4suAi~>8yxeyc-O!GSC>~FQt97bZ8+quWA{6zc^^0KS63swL=x2L!F#QP`ro6asR zEkQG_z^S&bZX<;dR!F;G>U;)hi!Ct4$zCUHdm3kOUFy%9;x-03C)in79{9Wxw03_= zX!IIB-nM(Uc2+x~RokRhf_{AhXc82x?U;fd+;Yq05TlOB+)5Dl*qI4C$JOa0c)@m$h>wII5!BT}VHFm}xif#jX z43oh1TH_$~-EEn>7ZTM(jpqG(!-Y6TSdam9C@`aRx5 zxePy|@cHe<4_Cv&j-J)q9xQXNKiDPcL<+7H!C>47YPjaPq%ff6JX&Kl@8V^JBR+ll zL?CIz-HlfGF0YeMJr0wbGjw@}7g5)lZ_7N2e#OTk=Pe73-zCX+B7C6sb9X*EBxkOD zQ_KpjH$`U?pp^^Y5IU&dKSxgaKN7-ijtI+twvXB<9?4h>!O%x9_}aB=6=#Kmy@e`P ziSOFw0Ay{Z2Od1()-9+bMiY}hC+-r?NbdUT0A4FMp`VPOG^I9C_;&1&b23GNGVd3F z&Z5_-lF;#B%BsGOPI3VsAD?YucS(uNP$wG5ebCZTB)m!Q=+Q#s?6DOtxYh^ z3Y&ym`Fgv3+_LNQ23*3ihYhlh-MnN3$9wacTuE*o*Iq6eGnJ9O=0awzj$ECy80)BOO3N zPmr6@Zn^LpQtGn{3*X(!5Q#zhLTuYM<*fGZtuu9V$9KeN#9M{EnnIH{y5do_M@4;z zt`+LC^PcS7C~K_Uu_WJA)o-#0eFY-|XDnXP4a%Hp2?xsuGG$WT@=lAK2x+@6&McJCjjxa1^7Oa};Rw3J|_ zBDNf#M~us;VBWn&&MiZQj>_83*3=X^CX6YBsi>Wfwnr#fXP-mB)l>36t}2Pi?$Uk1 zwpW)%)ZBmo*2Z7f)Ep$AlDaLz5;ooO=a0|AS>;!Vz4SZs#5p2DJai(p7!K+0U8ki_ zp}!Hw1Q1a^Q}=%8)WxxGHgEWS=aF^#^g~g?KOZwM%l_-bW%1!eZ^rlmBVjG_^;@^T zJ(Cm>X-L_kBO0rc(^ReZXZX$F;{$6?R~{I88DP{!poE(~m|7u9Nh}tMxO3-@PgHUc z!WT{EbB14rhLRM$4c>D-SAJ#wU%wCon-kp2U=e?qZYd4%|evJjMmKeLm+mB|pO_ZT$Bqq5T)538=ze5p%V1qHb$F zKvOXK)xVYw-`PZgMuj!vrktD&4+qA^6k(-2FENf2F+=JJDp#Br)Dxi!rA`)wpvS!q zL+Uz4svSZ+>+0)5x3p3@izCoM!5>MHriKQRA>?`u@7^76+?xps1f-qbrjt)t040aC z6ak#$I)gyWYGhu-~b`b*!`LY%$@w-d%qUJMEn%G1v{h=WGl%iFhK{g&Kp3kO+@^a8~W8lKoa z=npLD!h+%+63)@dpkH}@t>5>qTXnTdk}9c$1O!UFem&&VfGHe5>qe))4yIq<*vLR8 z|CpY3br-3u_`5f50Cd|V~<-2%nJ*zlVxrg^*y(+K)q&- zzP@{i%=z&|rh7<%uu!h2*wb*?!F?g~rBEoyG)|Z@kdg~-@T?(~q=C_dw|xed&4vvd z=H}*J{R|HeCpbB9Lqd;=D1z-f`1neS!dqm}e{X1L=P4SxcWBR`MNHB`(Uxl%TFa-t%GAjOz$`X=AIsh01UhXMU zPwG##=;9oHch?_-U&MCNlRj<$&hvR?m^d!MlCrBp<4ARI`B5$-4Uv$P`~_k5^X{r? zVvzqO>TB>=fE-9C!p{Id8gFQA6<1R7$8akgNMjNIkzIRk-n@x(OU>Zs$d76WgzMe~ zGvUq8JMxos*8X@wLvnUH`ao*~g;T+^Ddc!zX5g;3b&PUJVavBTnVC@ozPy1~4Z-b; z!Z^U)mGnHM%I6VVmHe>&h$f(BVDI4IfYUlY7d26_ybqb)u3e9i;4s`q2*bQ}Yi_$e z3WcgB1F#5`)7p^~;cTLSMCjPJq#fes=0@JU2+^vKsT!Mj4!F2XAuz$bIeQ5XTsqJ) z)T!6%hFKC>T5K#ca1Go@M9}}FhFiE`7-p@s{AU{fCp|rVVQvnWtsCTgaX8#Z;-jPU zAoK-PMiK9gg}({J1Lvl@$nhzmehjYGGmF;o$)i%)R^f38-Og%yfhb zN-K{MwIKYAsny3UOX%@ntbH9YuJUWOmh;F|Lzs{w)6vuGa}Zi-xQ~RF)o?Zz@U0_> zGN&XsR8&+5F)f5e5o-5;oZbj~`4F9IBd98~kK26X*@m+5A#c24qpoH%!Bg z5d34Js7G7&zE3;E%JUL+UQxe4o|mpQb4c2AD*5>!U~iW)7ndyK9-!jk78Zpkv7d4F<}Qcp&NukBa{rjmz0!DdB#KaY#H7gPXb#Ge_?KjZNxkX z7Z(?V4+%GKB4TMk*Ec~Jz`otauLEm~-($AVWAr^yclO(fNrfKxaV#5lZ0p92(Xp`w z@HrUE1COpGFYgVyQ_&sVb|df$Cr{oO1e2qe}PEo{8%?K`%FM0i-@&g zyhpuQn3>&1-|HGxN$lA100N0%hbg%XzQJ1fBNs>70l@HOU(&8N2ns&4Z-4ms@ne`& z5k%nm`K=%ggY!3saFNi0xiE#K3>D*BNlDMaHUk)f*!LL}NQ&Mdjc&fI< zAW&R)DCASUr2<9UB{>=}%YIZ^#I#KRW=!JVQ$g8;;GfPs0UDN1193dl{*XV|6T(N1 z5wGf*Xn8;_Jhw38XySeLY>tbu9rCu(-|)kOKe&yvJ79oh9%#v&>J{hbSG~EE1RWzq zGZ~aMS>jfa^w+|dLWZWzRszl$o2_?2K@~>`fvbHlA|U^vOE{=7*v^hm*b{6S9Z&3n z#QPXNJKUAn$l}5^>(&utRPQ$%?qV^C>?Txj6upC)@S*f{bouTbwh}-KL4qh|BJ`~p zr4mX?W~DKfT3Yp(3N(iJ?4yy9ge~v@oUZ4?ts2n<(AzgNGc!4apflG0 z!QkLv|5oq0siDL~&QrhNJtWi8-a>YK^oZgR;N5qtNtI)WSxLtZAeV&?+!;KJAx3o1 zN3&z$z(*ffJ{SwHdGkj7Qe)kYtoCnBpNgH#hR?hwa;WqpTX_y(Ut6ZYOd<0G1qCH0 zJl{Z}-@5O_N}$XsV+K59V|gO7J{lgiYut`o?=s`^I;JgMc-Vd4V<18erIR32GE>+h z)c6NXpLtH=2`J=C5*cjr9*+_dj?;vFZA!T~{agTupTMYrhKMHaZFIaJs| z>uQViSs&oi6GlY2ItPJ@J{Lh~L|oU}+G++m($RG7t|LBicSM$YI(Ja3nvy$_bmB4i zckX~@geFc`sy@`~@ZJv{dI!n`h-M?()` zMs!R}+@kQSkzZaz3Lhw8vfeWe8dskvo%_AY2b3O6uzL@)MODNaA<*g9^cP<+ZP*}+ zxjA4aBRGh&9wzC?5|y@Nnhp-5gseH<4lbS%Lmv1J9qoQPd?h5!QtT$JVP1N2Wjj&VQ-ZR$?4J73dBT|0D4|>CXk;&C<(Z@ z#*rhK{?UY+%3vgMC#hu5ia(LW_V@yG4`G5en&7(B?V(LNC+EN9BWtkZ00N$rF{P#1 z`%K#J(d5yS0`8#hL7RoWd)fR=V}ojze|Hu z9nMK47`XOVK!uvq%#_Q-(%%rRmSR8i#1Ml-N-*JM1rfdX@$3HdRz$Lg$mf2JG(*Cz zYbl*Sw|(;FIo%x@^%SJB0xL@u@5Wf_1F=6q6mrY z_=Slm@=jMHB9f$??!2$v3HJW-zF z_M7cPVQ8y@=i`-nFmXLDF;Ihw2j~k4s{Mfj2N0FOUp+E7V_|X6<>U|{bO#HMeGvWm z^JgLvLVW@`kBD&r@KkyRh9xL@A)c|3;E40mEIDvkH+HQHY8a)kcVqxxhKHANE!6e! z-a=4h*TQG=4jzKwpy4wRY8+Nq$6rPYEblY>*oDRx@OA7v!e z5r2aVgo&eOvH-O+&V4>ILPB-#-c8_srJ!JcD)?||Jimm$pq2Z9HV^Yc7={=C;` z`fyge*E?1Q(%FN&3Cr8j)E8S?Utf>h7l9pW8TAJ`5Gm|F`Ai_#wkbKVS}YEM7=En* z{#$FuQFV14}ImUhA0yZA5k1B8B8fnR>tAEIuE^MG6# zL54l@5?H9?nc(h^KnDOfg&4RTL8%dF&pt$^$iDtb6#?dN-Fml0;T42(rP16G6%~b0 znuweccfow?8yd0^8X}6qLMC3k+Yi71Im#hzZK<1DfLyL!y@~-b=_)pWa#3NR<1sEi z>*(DZE3E*NpKH)KbO;9^`i1!j3Ru1ih_B)fNh2W~%Z>j7pGL?j$H&K`2m~vK6(F4K zL^IB80zK*M3QeT$hVM2vcM(!R|6|NgUqNsFUsxpl`@lL$4kre_qligBC+<9?0B>_J z4e?J$P@5eh#s724#Q!0(%D*70|NSKg!YII8Njr%d0so)0nPtYyj}tfTG- Mr>mdKI;Vst06)ZVa{vGU literal 0 HcmV?d00001 diff --git a/dev/assets/fxutssm.CG4dr3Lx.png b/dev/assets/bawalzh.CG4dr3Lx.png similarity index 100% rename from dev/assets/fxutssm.CG4dr3Lx.png rename to dev/assets/bawalzh.CG4dr3Lx.png diff --git a/dev/assets/zjkexok.CZy9YIUA.png b/dev/assets/bdqumbk.CZy9YIUA.png similarity index 100% rename from dev/assets/zjkexok.CZy9YIUA.png rename to dev/assets/bdqumbk.CZy9YIUA.png diff --git a/dev/assets/bjjpnwy.CGuOBdTF.png b/dev/assets/bjjpnwy.CGuOBdTF.png deleted file mode 100644 index 850f26df6bd089d75094ad8bd1132553b8b257a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62608 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 diff --git a/dev/assets/wpfwfat.B9NpLJr_.png b/dev/assets/bvuwypa.B9NpLJr_.png similarity index 100% rename from dev/assets/wpfwfat.B9NpLJr_.png rename to dev/assets/bvuwypa.B9NpLJr_.png diff --git a/dev/assets/call_notes.md.C_fGYeG6.js b/dev/assets/call_notes.md.Sm3Jf0W7.js similarity index 96% rename from dev/assets/call_notes.md.C_fGYeG6.js rename to dev/assets/call_notes.md.Sm3Jf0W7.js index 31dde17b0..ac7cf8fb8 100644 --- a/dev/assets/call_notes.md.C_fGYeG6.js +++ b/dev/assets/call_notes.md.Sm3Jf0W7.js @@ -1 +1 @@ -import{_ as e,c as i,o as l,a7 as t}from"./chunks/framework.B24clL9_.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"call_notes.md","filePath":"call_notes.md","lastUpdated":null}'),o={name:"call_notes.md"},a=t('

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
',8),n=[a];function r(s,p,c,d,h,u){return l(),i("div",null,n)}const g=e(o,[["render",r]]);export{m as __pageData,g as default}; +import{_ as e,c as i,o as l,a7 as t}from"./chunks/framework.CpnCegiD.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"call_notes.md","filePath":"call_notes.md","lastUpdated":null}'),o={name:"call_notes.md"},a=t('

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
',8),n=[a];function r(s,p,c,d,h,u){return l(),i("div",null,n)}const g=e(o,[["render",r]]);export{m as __pageData,g as default}; diff --git a/dev/assets/call_notes.md.C_fGYeG6.lean.js b/dev/assets/call_notes.md.Sm3Jf0W7.lean.js similarity index 67% rename from dev/assets/call_notes.md.C_fGYeG6.lean.js rename to dev/assets/call_notes.md.Sm3Jf0W7.lean.js index b147fe948..bfcc93d01 100644 --- a/dev/assets/call_notes.md.C_fGYeG6.lean.js +++ b/dev/assets/call_notes.md.Sm3Jf0W7.lean.js @@ -1 +1 @@ -import{_ as e,c as i,o as l,a7 as t}from"./chunks/framework.B24clL9_.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"call_notes.md","filePath":"call_notes.md","lastUpdated":null}'),o={name:"call_notes.md"},a=t("",8),n=[a];function r(s,p,c,d,h,u){return l(),i("div",null,n)}const g=e(o,[["render",r]]);export{m as __pageData,g as default}; +import{_ as e,c as i,o as l,a7 as t}from"./chunks/framework.CpnCegiD.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"call_notes.md","filePath":"call_notes.md","lastUpdated":null}'),o={name:"call_notes.md"},a=t("",8),n=[a];function r(s,p,c,d,h,u){return l(),i("div",null,n)}const g=e(o,[["render",r]]);export{m as __pageData,g as default}; diff --git a/dev/assets/lqjajgs.CULn5saZ.png b/dev/assets/cdpcpju.CULn5saZ.png similarity index 100% rename from dev/assets/lqjajgs.CULn5saZ.png rename to dev/assets/cdpcpju.CULn5saZ.png diff --git a/dev/assets/chunks/@localSearchIndexroot.Bw2U9g4S.js b/dev/assets/chunks/@localSearchIndexroot.Bw2U9g4S.js deleted file mode 100644 index dac96d197..000000000 --- a/dev/assets/chunks/@localSearchIndexroot.Bw2U9g4S.js +++ /dev/null @@ -1 +0,0 @@ -const e='{"documentCount":172,"nextId":172,"documentIds":{"0":"/GeometryOps.jl/dev/api#Full-GeometryOps-API-documentation","1":"/GeometryOps.jl/dev/api#apply-and-associated-functions","2":"/GeometryOps.jl/dev/api#General-geometry-methods","3":"/GeometryOps.jl/dev/api#OGC-methods","4":"/GeometryOps.jl/dev/api#Other-general-methods","5":"/GeometryOps.jl/dev/api#Barycentric-coordinates","6":"/GeometryOps.jl/dev/api#Other-methods","7":"/GeometryOps.jl/dev/call_notes#20th-April,-2024","8":"/GeometryOps.jl/dev/call_notes#29th-Feb,-2024","9":"/GeometryOps.jl/dev/call_notes#To-do","10":"/GeometryOps.jl/dev/call_notes#done","11":"/GeometryOps.jl/dev/experiments/accurate_accumulators#Accurate-accumulation","12":"/GeometryOps.jl/dev/experiments/predicates#predicates","13":"/GeometryOps.jl/dev/experiments/predicates#orient","14":"/GeometryOps.jl/dev/experiments/predicates#dashboard","15":"/GeometryOps.jl/dev/experiments/predicates#Testing-robust-vs-regular-predicates","16":"/GeometryOps.jl/dev/experiments/predicates#incircle","17":"/GeometryOps.jl/dev/explanations/peculiarities#peculiarities","18":"/GeometryOps.jl/dev/explanations/peculiarities#What-does-apply-return-and-why?","19":"/GeometryOps.jl/dev/explanations/peculiarities#Why-do-you-want-me-to-provide-a-target-in-set-operations?","20":"/GeometryOps.jl/dev/explanations/peculiarities#_True-and-_False-(or-BoolsAsTypes)","21":"/GeometryOps.jl/dev/explanations/paradigms#paradigms","22":"/GeometryOps.jl/dev/explanations/paradigms#apply","23":"/GeometryOps.jl/dev/explanations/paradigms#applyreduce","24":"/GeometryOps.jl/dev/explanations/paradigms#fix-and-prepare","25":"/GeometryOps.jl/dev/introduction#introduction","26":"/GeometryOps.jl/dev/introduction#Main-concepts","27":"/GeometryOps.jl/dev/introduction#The-apply-paradigm","28":"/GeometryOps.jl/dev/introduction#What\'s-this-GeoInterface.Wrapper-thing?","29":"/GeometryOps.jl/dev/#what-is-geometryops-jl","30":"/GeometryOps.jl/dev/#how-to-navigate-the-docs","31":"/GeometryOps.jl/dev/source/GeometryOps#geometryops-jl","32":"/GeometryOps.jl/dev/source/methods/angles#angles","33":"/GeometryOps.jl/dev/source/methods/angles#What-is-angles?","34":"/GeometryOps.jl/dev/source/methods/angles#implementation","35":"/GeometryOps.jl/dev/source/methods/area#Area-and-signed-area","36":"/GeometryOps.jl/dev/source/methods/area#What-is-area?-What-is-signed-area?","37":"/GeometryOps.jl/dev/source/methods/area#implementation","38":"/GeometryOps.jl/dev/source/methods/barycentric#Barycentric-coordinates","39":"/GeometryOps.jl/dev/source/methods/barycentric#example","40":"/GeometryOps.jl/dev/source/methods/barycentric#Barycentric-coordinate-API","41":"/GeometryOps.jl/dev/source/methods/buffer#buffer","42":"/GeometryOps.jl/dev/source/methods/centroid#centroid","43":"/GeometryOps.jl/dev/source/methods/centroid#What-is-the-centroid?","44":"/GeometryOps.jl/dev/source/methods/centroid#implementation","45":"/GeometryOps.jl/dev/source/methods/clipping/clipping_processor#Polygon-clipping-helpers","46":"/GeometryOps.jl/dev/source/methods/clipping/coverage#What-is-coverage?","47":"/GeometryOps.jl/dev/source/methods/clipping/coverage#implementation","48":"/GeometryOps.jl/dev/source/methods/clipping/cut#Polygon-cutting","49":"/GeometryOps.jl/dev/source/methods/clipping/cut#What-is-cut?","50":"/GeometryOps.jl/dev/source/methods/clipping/cut#implementation","51":"/GeometryOps.jl/dev/source/methods/clipping/difference#Difference-Polygon-Clipping","52":"/GeometryOps.jl/dev/source/methods/clipping/difference#Helper-functions-for-Differences-with-Greiner-and-Hormann-Polygon-Clipping","53":"/GeometryOps.jl/dev/source/methods/clipping/predicates#If-we-want-to-inject-adaptivity,-we-would-do-something-like:","54":"/GeometryOps.jl/dev/source/methods/clipping/intersection#Geometry-Intersection","55":"/GeometryOps.jl/dev/source/methods/clipping/intersection#Helper-functions-for-Intersections-with-Greiner-and-Hormann-Polygon-Clipping","56":"/GeometryOps.jl/dev/source/methods/clipping/union#Union-Polygon-Clipping","57":"/GeometryOps.jl/dev/source/methods/clipping/union#Helper-functions-for-Unions-with-Greiner-and-Hormann-Polygon-Clipping","58":"/GeometryOps.jl/dev/source/methods/distance#Distance-and-signed-distance","59":"/GeometryOps.jl/dev/source/methods/distance#What-is-distance?-What-is-signed-distance?","60":"/GeometryOps.jl/dev/source/methods/distance#implementation","61":"/GeometryOps.jl/dev/source/methods/equals#equals","62":"/GeometryOps.jl/dev/source/methods/equals#What-is-equals?","63":"/GeometryOps.jl/dev/source/methods/equals#implementation","64":"/GeometryOps.jl/dev/source/methods/geom_relations/contains#contains","65":"/GeometryOps.jl/dev/source/methods/geom_relations/contains#What-is-contains?","66":"/GeometryOps.jl/dev/source/methods/geom_relations/contains#implementation","67":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#coveredby","68":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#What-is-coveredby?","69":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#implementation","70":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Convert-features-to-geometries","71":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Points-coveredby-geometries","72":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Lines-coveredby-geometries","73":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Rings-covered-by-geometries","74":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Polygons-covered-by-geometries","75":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Geometries-coveredby-multi-geometry/geometry-collections","76":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Multi-geometry/geometry-collections-coveredby-geometries","77":"/GeometryOps.jl/dev/source/methods/geom_relations/covers#covers","78":"/GeometryOps.jl/dev/source/methods/geom_relations/covers#What-is-covers?","79":"/GeometryOps.jl/dev/source/methods/geom_relations/covers#implementation","80":"/GeometryOps.jl/dev/source/methods/geom_relations/crosses#Crossing-checks","81":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#disjoint","82":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#What-is-disjoint?","83":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#implementation","84":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Convert-features-to-geometries","85":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Point-disjoint-geometries","86":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Lines-disjoint-geometries","87":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Rings-disjoint-geometries","88":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Polygon-disjoint-geometries","89":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Geometries-disjoint-multi-geometry/geometry-collections","90":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Multi-geometry/geometry-collections-coveredby-geometries","91":"/GeometryOps.jl/dev/source/methods/geom_relations/geom_geom_processors#Line-curve-interaction","92":"/GeometryOps.jl/dev/source/methods/geom_relations/intersects#Intersection-checks","93":"/GeometryOps.jl/dev/source/methods/geom_relations/intersects#What-is-intersects?","94":"/GeometryOps.jl/dev/source/methods/geom_relations/intersects#implementation","95":"/GeometryOps.jl/dev/source/methods/geom_relations/overlaps#overlaps","96":"/GeometryOps.jl/dev/source/methods/geom_relations/overlaps#What-is-overlaps?","97":"/GeometryOps.jl/dev/source/methods/geom_relations/overlaps#implementation","98":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#touches","99":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#What-is-touches?","100":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#implementation","101":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Convert-features-to-geometries","102":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Point-touches-geometries","103":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Lines-touching-geometries","104":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Rings-touch-geometries","105":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Polygons-touch-geometries","106":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Geometries-touch-multi-geometry/geometry-collections","107":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Multi-geometry/geometry-collections-cross-geometries","108":"/GeometryOps.jl/dev/source/methods/geom_relations/within#within","109":"/GeometryOps.jl/dev/source/methods/geom_relations/within#What-is-within?","110":"/GeometryOps.jl/dev/source/methods/geom_relations/within#implementation","111":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Convert-features-to-geometries","112":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Points-within-geometries","113":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Lines-within-geometries","114":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Rings-covered-by-geometries","115":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Polygons-within-geometries","116":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Geometries-within-multi-geometry/geometry-collections","117":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Multi-geometry/geometry-collections-within-geometries","118":"/GeometryOps.jl/dev/source/methods/orientation#orientation","119":"/GeometryOps.jl/dev/source/methods/orientation#isclockwise","120":"/GeometryOps.jl/dev/source/methods/orientation#isconcave","121":"/GeometryOps.jl/dev/source/methods/polygonize#Polygonizing-raster-data","122":"/GeometryOps.jl/dev/source/not_implemented_yet#Not-implemented-yet","123":"/GeometryOps.jl/dev/source/transformations/correction/closed_ring#Closed-Rings","124":"/GeometryOps.jl/dev/source/transformations/correction/closed_ring#example","125":"/GeometryOps.jl/dev/source/transformations/correction/closed_ring#implementation","126":"/GeometryOps.jl/dev/source/primitives#Primitive-functions","127":"/GeometryOps.jl/dev/source/primitives#docstrings","128":"/GeometryOps.jl/dev/source/primitives#functions","129":"/GeometryOps.jl/dev/source/primitives#types","130":"/GeometryOps.jl/dev/source/primitives#implementation","131":"/GeometryOps.jl/dev/source/primitives#What-is-apply?","132":"/GeometryOps.jl/dev/source/primitives#embedding","133":"/GeometryOps.jl/dev/source/primitives#threading","134":"/GeometryOps.jl/dev/source/transformations/correction/geometry_correction#Geometry-Corrections","135":"/GeometryOps.jl/dev/source/transformations/correction/geometry_correction#interface","136":"/GeometryOps.jl/dev/source/transformations/correction/geometry_correction#Available-corrections","137":"/GeometryOps.jl/dev/source/transformations/correction/intersecting_polygons#Intersecting-Polygons","138":"/GeometryOps.jl/dev/source/transformations/correction/intersecting_polygons#example","139":"/GeometryOps.jl/dev/source/transformations/correction/intersecting_polygons#implementation","140":"/GeometryOps.jl/dev/source/transformations/extent#Extent-embedding","141":"/GeometryOps.jl/dev/source/transformations/flip#Coordinate-flipping","142":"/GeometryOps.jl/dev/source/transformations/reproject#Geometry-reprojection","143":"/GeometryOps.jl/dev/source/transformations/reproject#Method-error-handling","144":"/GeometryOps.jl/dev/source/transformations/segmentize#segmentize","145":"/GeometryOps.jl/dev/source/transformations/segmentize#examples","146":"/GeometryOps.jl/dev/source/transformations/segmentize#benchmark","147":"/GeometryOps.jl/dev/source/transformations/segmentize#implementation","148":"/GeometryOps.jl/dev/source/transformations/simplify#Geometry-simplification","149":"/GeometryOps.jl/dev/source/transformations/simplify#examples","150":"/GeometryOps.jl/dev/source/transformations/simplify#benchmark","151":"/GeometryOps.jl/dev/source/transformations/simplify#Simplify-with-RadialDistance-Algorithm","152":"/GeometryOps.jl/dev/source/transformations/simplify#Simplify-with-DouglasPeucker-Algorithm","153":"/GeometryOps.jl/dev/source/transformations/simplify#Simplify-with-VisvalingamWhyatt-Algorithm","154":"/GeometryOps.jl/dev/source/transformations/simplify#Shared-utils","155":"/GeometryOps.jl/dev/source/transformations/transform#Pointwise-transformation","156":"/GeometryOps.jl/dev/source/transformations/tuples#Tuple-conversion","157":"/GeometryOps.jl/dev/source/types#types","158":"/GeometryOps.jl/dev/source/types#TraitTarget","159":"/GeometryOps.jl/dev/source/types#BoolsAsTypes","160":"/GeometryOps.jl/dev/source/types#GEOS","161":"/GeometryOps.jl/dev/source/utils#Utility-functions","162":"/GeometryOps.jl/dev/tutorials/creating_geometry#Creating-Geometry","163":"/GeometryOps.jl/dev/tutorials/creating_geometry#creating-geometry","164":"/GeometryOps.jl/dev/tutorials/creating_geometry#plot-geometry","165":"/GeometryOps.jl/dev/tutorials/creating_geometry#geom-crs","166":"/GeometryOps.jl/dev/tutorials/creating_geometry#attributes","167":"/GeometryOps.jl/dev/tutorials/creating_geometry#save-geometry","168":"/GeometryOps.jl/dev/tutorials/spatial_joins#Spatial-joins","169":"/GeometryOps.jl/dev/tutorials/spatial_joins#Simple-example","170":"/GeometryOps.jl/dev/tutorials/spatial_joins#Real-world-example","171":"/GeometryOps.jl/dev/tutorials/spatial_joins#Enabling-custom-predicates"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[4,1,88],"1":[4,4,248],"2":[3,4,1],"3":[2,7,207],"4":[3,7,261],"5":[2,4,84],"6":[2,4,1065],"7":[4,1,55],"8":[4,1,1],"9":[2,4,107],"10":[1,4,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,1],"18":[7,1,71],"19":[13,1,101],"20":[6,1,66],"21":[1,1,53],"22":[1,1,109],"23":[1,2,35],"24":[3,1,79],"25":[1,1,72],"26":[2,1,1],"27":[3,3,50],"28":[8,3,18],"29":[5,1,72],"30":[5,1,61],"31":[2,1,116],"32":[1,1,3],"33":[4,1,57],"34":[1,1,270],"35":[4,1,4],"36":[5,4,101],"37":[1,4,247],"38":[2,1,65],"39":[1,2,211],"40":[3,2,414],"41":[1,1,110],"42":[1,1,6],"43":[5,1,91],"44":[1,1,199],"45":[3,1,613],"46":[4,1,70],"47":[1,1,327],"48":[2,1,3],"49":[4,2,57],"50":[1,2,200],"51":[3,1,215],"52":[10,1,191],"53":[11,1,25],"54":[2,1,252],"55":[10,1,482],"56":[3,1,236],"57":[10,1,284],"58":[4,1,4],"59":[5,4,129],"60":[1,4,260],"61":[1,1,3],"62":[4,1,68],"63":[1,1,266],"64":[1,1,3],"65":[4,1,79],"66":[1,1,79],"67":[1,1,3],"68":[4,1,81],"69":[1,1,128],"70":[4,1,11],"71":[3,1,56],"72":[3,1,46],"73":[4,1,48],"74":[4,1,40],"75":[5,1,40],"76":[5,1,44],"77":[1,1,3],"78":[4,1,67],"79":[1,1,78],"80":[2,1,149],"81":[1,1,3],"82":[4,1,68],"83":[1,1,110],"84":[4,1,10],"85":[3,1,57],"86":[3,1,58],"87":[3,1,47],"88":[3,1,33],"89":[5,1,39],"90":[5,1,44],"91":[3,1,434],"92":[2,1,3],"93":[4,2,80],"94":[1,2,76],"95":[1,1,3],"96":[4,1,82],"97":[1,1,244],"98":[1,1,3],"99":[4,1,70],"100":[1,1,125],"101":[4,1,11],"102":[3,1,69],"103":[3,1,53],"104":[3,1,62],"105":[3,1,41],"106":[5,1,39],"107":[5,1,42],"108":[1,1,3],"109":[4,1,72],"110":[1,1,129],"111":[4,1,11],"112":[3,1,63],"113":[3,1,53],"114":[4,1,53],"115":[3,1,38],"116":[5,1,39],"117":[5,1,42],"118":[1,1,4],"119":[1,1,21],"120":[1,1,206],"121":[3,1,513],"122":[3,1,47],"123":[2,1,54],"124":[1,2,87],"125":[1,2,83],"126":[2,1,113],"127":[1,2,1],"128":[1,3,106],"129":[1,2,12],"130":[1,2,33],"131":[4,2,114],"132":[2,2,36],"133":[1,2,542],"134":[2,1,41],"135":[1,2,112],"136":[2,2,109],"137":[2,1,77],"138":[1,2,70],"139":[1,2,135],"140":[2,1,71],"141":[2,1,56],"142":[2,1,132],"143":[3,2,77],"144":[1,1,76],"145":[1,1,147],"146":[1,1,268],"147":[1,1,188],"148":[2,1,44],"149":[1,2,67],"150":[1,2,404],"151":[4,1,75],"152":[4,1,187],"153":[4,1,85],"154":[2,1,149],"155":[2,1,111],"156":[2,1,58],"157":[1,1,38],"158":[1,1,74],"159":[1,1,82],"160":[1,1,147],"161":[2,1,136],"162":[2,1,60],"163":[4,2,287],"164":[13,2,281],"165":[9,2,200],"166":[7,2,63],"167":[4,2,140],"168":[2,1,138],"169":[2,2,137],"170":[3,2,117],"171":[3,2,68]},"averageFieldLength":[2.88953488372093,1.4651162790697667,110.12209302325581],"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":"Peculiarities","titles":[]},"18":{"title":"What does apply return and why?","titles":["Peculiarities"]},"19":{"title":"Why do you want me to provide a target in set operations?","titles":["Peculiarities"]},"20":{"title":"_True and _False (or BoolsAsTypes)","titles":["Peculiarities"]},"21":{"title":"Paradigms","titles":[]},"22":{"title":"apply","titles":["Paradigms"]},"23":{"title":"applyreduce","titles":["Paradigms","apply"]},"24":{"title":"fix and prepare","titles":["Paradigms"]},"25":{"title":"Introduction","titles":[]},"26":{"title":"Main concepts","titles":["Introduction"]},"27":{"title":"The apply paradigm","titles":["Introduction","Main concepts"]},"28":{"title":"What's this GeoInterface.Wrapper thing?","titles":["Introduction","Main concepts"]},"29":{"title":"What is GeometryOps.jl?","titles":[]},"30":{"title":"How to navigate the docs","titles":[]},"31":{"title":"GeometryOps.jl","titles":[]},"32":{"title":"Angles","titles":[]},"33":{"title":"What is angles?","titles":["Angles"]},"34":{"title":"Implementation","titles":["Angles"]},"35":{"title":"Area and signed area","titles":[]},"36":{"title":"What is area? What is signed area?","titles":["Area and signed area"]},"37":{"title":"Implementation","titles":["Area and signed area"]},"38":{"title":"Barycentric coordinates","titles":[]},"39":{"title":"Example","titles":["Barycentric coordinates"]},"40":{"title":"Barycentric-coordinate API","titles":["Barycentric coordinates"]},"41":{"title":"Buffer","titles":[]},"42":{"title":"Centroid","titles":[]},"43":{"title":"What is the centroid?","titles":["Centroid"]},"44":{"title":"Implementation","titles":["Centroid"]},"45":{"title":"Polygon clipping helpers","titles":[]},"46":{"title":"What is coverage?","titles":[]},"47":{"title":"Implementation","titles":[]},"48":{"title":"Polygon cutting","titles":[]},"49":{"title":"What is cut?","titles":["Polygon cutting"]},"50":{"title":"Implementation","titles":["Polygon cutting"]},"51":{"title":"Difference Polygon Clipping","titles":[]},"52":{"title":"Helper functions for Differences with Greiner and Hormann Polygon Clipping","titles":[]},"53":{"title":"If we want to inject adaptivity, we would do something like:","titles":[]},"54":{"title":"Geometry Intersection","titles":[]},"55":{"title":"Helper functions for Intersections with Greiner and Hormann Polygon Clipping","titles":[]},"56":{"title":"Union Polygon Clipping","titles":[]},"57":{"title":"Helper functions for Unions with Greiner and Hormann Polygon Clipping","titles":[]},"58":{"title":"Distance and signed distance","titles":[]},"59":{"title":"What is distance? What is signed distance?","titles":["Distance and signed distance"]},"60":{"title":"Implementation","titles":["Distance and signed distance"]},"61":{"title":"Equals","titles":[]},"62":{"title":"What is equals?","titles":["Equals"]},"63":{"title":"Implementation","titles":["Equals"]},"64":{"title":"Contains","titles":[]},"65":{"title":"What is contains?","titles":["Contains"]},"66":{"title":"Implementation","titles":["Contains"]},"67":{"title":"CoveredBy","titles":[]},"68":{"title":"What is coveredby?","titles":["CoveredBy"]},"69":{"title":"Implementation","titles":["CoveredBy"]},"70":{"title":"Convert features to geometries","titles":[]},"71":{"title":"Points coveredby geometries","titles":[]},"72":{"title":"Lines coveredby geometries","titles":[]},"73":{"title":"Rings covered by geometries","titles":[]},"74":{"title":"Polygons covered by geometries","titles":[]},"75":{"title":"Geometries coveredby multi-geometry/geometry collections","titles":[]},"76":{"title":"Multi-geometry/geometry collections coveredby geometries","titles":[]},"77":{"title":"Covers","titles":[]},"78":{"title":"What is covers?","titles":["Covers"]},"79":{"title":"Implementation","titles":["Covers"]},"80":{"title":"Crossing checks","titles":[]},"81":{"title":"Disjoint","titles":[]},"82":{"title":"What is disjoint?","titles":["Disjoint"]},"83":{"title":"Implementation","titles":["Disjoint"]},"84":{"title":"Convert features to geometries","titles":[]},"85":{"title":"Point disjoint geometries","titles":[]},"86":{"title":"Lines disjoint geometries","titles":[]},"87":{"title":"Rings disjoint geometries","titles":[]},"88":{"title":"Polygon disjoint geometries","titles":[]},"89":{"title":"Geometries disjoint multi-geometry/geometry collections","titles":[]},"90":{"title":"Multi-geometry/geometry collections coveredby geometries","titles":[]},"91":{"title":"Line-curve interaction","titles":[]},"92":{"title":"Intersection checks","titles":[]},"93":{"title":"What is intersects?","titles":["Intersection checks"]},"94":{"title":"Implementation","titles":["Intersection checks"]},"95":{"title":"Overlaps","titles":[]},"96":{"title":"What is overlaps?","titles":["Overlaps"]},"97":{"title":"Implementation","titles":["Overlaps"]},"98":{"title":"Touches","titles":[]},"99":{"title":"What is touches?","titles":["Touches"]},"100":{"title":"Implementation","titles":["Touches"]},"101":{"title":"Convert features to geometries","titles":[]},"102":{"title":"Point touches geometries","titles":[]},"103":{"title":"Lines touching geometries","titles":[]},"104":{"title":"Rings touch geometries","titles":[]},"105":{"title":"Polygons touch geometries","titles":[]},"106":{"title":"Geometries touch multi-geometry/geometry collections","titles":[]},"107":{"title":"Multi-geometry/geometry collections cross geometries","titles":[]},"108":{"title":"Within","titles":[]},"109":{"title":"What is within?","titles":["Within"]},"110":{"title":"Implementation","titles":["Within"]},"111":{"title":"Convert features to geometries","titles":[]},"112":{"title":"Points within geometries","titles":[]},"113":{"title":"Lines within geometries","titles":[]},"114":{"title":"Rings covered by geometries","titles":[]},"115":{"title":"Polygons within geometries","titles":[]},"116":{"title":"Geometries within multi-geometry/geometry collections","titles":[]},"117":{"title":"Multi-geometry/geometry collections within geometries","titles":[]},"118":{"title":"Orientation","titles":[]},"119":{"title":"isclockwise","titles":["Orientation"]},"120":{"title":"isconcave","titles":["Orientation"]},"121":{"title":"Polygonizing raster data","titles":[]},"122":{"title":"Not implemented yet","titles":[]},"123":{"title":"Closed Rings","titles":[]},"124":{"title":"Example","titles":["Closed Rings"]},"125":{"title":"Implementation","titles":["Closed Rings"]},"126":{"title":"Primitive functions","titles":[]},"127":{"title":"Docstrings","titles":["Primitive functions"]},"128":{"title":"Functions","titles":["Primitive functions","Docstrings"]},"129":{"title":"Types","titles":["Primitive functions"]},"130":{"title":"Implementation","titles":["Primitive functions"]},"131":{"title":"What is apply?","titles":["Primitive functions"]},"132":{"title":"Embedding:","titles":["Primitive functions"]},"133":{"title":"Threading","titles":["Primitive functions"]},"134":{"title":"Geometry Corrections","titles":[]},"135":{"title":"Interface","titles":["Geometry Corrections"]},"136":{"title":"Available corrections","titles":["Geometry Corrections"]},"137":{"title":"Intersecting Polygons","titles":[]},"138":{"title":"Example","titles":["Intersecting Polygons"]},"139":{"title":"Implementation","titles":["Intersecting Polygons"]},"140":{"title":"Extent embedding","titles":[]},"141":{"title":"Coordinate flipping","titles":[]},"142":{"title":"Geometry reprojection","titles":[]},"143":{"title":"Method error handling","titles":["Geometry reprojection"]},"144":{"title":"Segmentize","titles":[]},"145":{"title":"Examples","titles":["Segmentize"]},"146":{"title":"Benchmark","titles":["Segmentize"]},"147":{"title":"Implementation","titles":["Segmentize"]},"148":{"title":"Geometry simplification","titles":[]},"149":{"title":"Examples","titles":["Geometry simplification"]},"150":{"title":"Benchmark","titles":["Geometry simplification"]},"151":{"title":"Simplify with RadialDistance Algorithm","titles":[]},"152":{"title":"Simplify with DouglasPeucker Algorithm","titles":[]},"153":{"title":"Simplify with VisvalingamWhyatt Algorithm","titles":[]},"154":{"title":"Shared utils","titles":[]},"155":{"title":"Pointwise transformation","titles":[]},"156":{"title":"Tuple conversion","titles":[]},"157":{"title":"Types","titles":[]},"158":{"title":"TraitTarget","titles":["Types"]},"159":{"title":"BoolsAsTypes","titles":["Types"]},"160":{"title":"GEOS","titles":["Types"]},"161":{"title":"Utility functions","titles":[]},"162":{"title":"Creating Geometry","titles":[]},"163":{"title":"Creating and plotting geometries","titles":["Creating Geometry"]},"164":{"title":"Plot geometries on a map using GeoMakie and coordinate reference system (CRS)","titles":["Creating Geometry"]},"165":{"title":"Create geospatial geometries with embedded coordinate reference system information","titles":["Creating Geometry"]},"166":{"title":"Creating a table with attributes and geometry","titles":["Creating Geometry"]},"167":{"title":"Saving your geospatial data","titles":["Creating Geometry"]},"168":{"title":"Spatial joins","titles":[]},"169":{"title":"Simple example","titles":["Spatial joins"]},"170":{"title":"Real-world example","titles":["Spatial joins"]},"171":{"title":"Enabling custom predicates","titles":["Spatial joins"]}},"dirtCount":0,"index":[["⋮",{"2":{"164":1}}],["θ",{"2":{"163":7,"164":3,"165":5}}],["☁",{"2":{"163":1}}],["✈",{"2":{"163":1}}],["÷",{"2":{"133":2}}],["ϵ",{"2":{"55":5}}],["∘",{"2":{"55":1,"97":2,"121":2,"135":1,"150":2,"171":2}}],["⊻",{"2":{"45":1,"52":2}}],["≥",{"2":{"45":1,"91":2,"139":1,"152":1}}],["α≈1",{"2":{"55":1}}],["α≈0",{"2":{"55":1}}],["α2",{"2":{"45":4,"55":2}}],["α",{"2":{"45":3,"55":28,"91":7}}],["α1",{"2":{"45":4,"55":2}}],["β2",{"2":{"45":4,"55":2}}],["β",{"2":{"45":4,"55":28,"91":7}}],["β1",{"2":{"45":4,"55":2}}],["≤",{"2":{"45":5,"47":14,"91":6,"152":1,"154":1,"161":4}}],["^",{"2":{"164":1}}],["^3",{"2":{"164":1}}],["^n",{"2":{"120":1}}],["^2",{"2":{"44":2,"60":2}}],["^hormannpresentation",{"2":{"40":2}}],["∑λ",{"2":{"40":2}}],["∑i=2n",{"2":{"6":1}}],["`$",{"2":{"160":1}}],["`libgeos",{"2":{"160":1}}],["`linearring`",{"2":{"147":1}}],["`linearsegments`",{"2":{"147":1}}],["`linestring`",{"2":{"147":1}}],["`linestringtrait`",{"2":{"135":1}}],["`line2`",{"2":{"120":1}}],["`line1`",{"2":{"120":1}}],["`line",{"2":{"54":4}}],["`equatorial",{"2":{"146":2}}],["`extents",{"2":{"140":1}}],["`inf`",{"2":{"142":1}}],["`intersects`",{"2":{"94":1}}],["`intersectingpolygons`",{"2":{"51":1,"54":1,"56":1}}],["`prefilter",{"2":{"150":1}}],["`proj",{"2":{"142":1,"146":2}}],["`polgontrait`",{"2":{"133":1}}],["`polygontrait`",{"2":{"133":1,"135":1}}],["`polygonize`",{"2":{"121":2}}],["`polygon`",{"2":{"40":3}}],["`polys`",{"2":{"52":1}}],["`poly",{"2":{"52":3,"55":1,"57":1}}],["`pointrait`",{"2":{"150":1}}],["`pointtrait`",{"2":{"133":3,"135":1}}],["`point",{"2":{"91":3}}],["`point`",{"2":{"40":4,"60":1}}],["`point2f`",{"2":{"39":1}}],["`douglaspeucker`",{"2":{"150":1}}],["`d`",{"2":{"142":1}}],["`difference`",{"2":{"139":1}}],["`disjoint`",{"2":{"94":1}}],["`obj`",{"2":{"133":1,"155":1,"156":1}}],["`op`",{"2":{"133":2}}],["`+`",{"2":{"133":1}}],["`alg",{"2":{"160":1}}],["`alg`",{"2":{"154":1}}],["`always",{"2":{"142":1}}],["`application",{"2":{"135":1}}],["`apply`",{"2":{"133":1,"158":1}}],["`abstractgeometrytrait`",{"2":{"133":1}}],["`abstractarray`",{"2":{"133":1}}],["`abstractmatrix`",{"2":{"121":1}}],["`calc",{"2":{"130":1}}],["`crs`",{"2":{"130":1}}],["`components`",{"2":{"133":1}}],["`collect`",{"2":{"133":1}}],["`covers`",{"2":{"69":1,"79":1}}],["`coveredby`",{"2":{"69":1,"79":1}}],["`contains`",{"2":{"66":1,"110":1}}],["`union",{"2":{"121":2}}],["`unionintersectingpolygons`",{"2":{"139":1}}],["`unionintersectingpolygons",{"2":{"51":1,"52":2,"54":1,"55":2,"56":1,"57":2}}],["`ys`",{"2":{"121":1}}],["`flattening`",{"2":{"146":1}}],["`flattening",{"2":{"146":1}}],["`flatten`",{"2":{"133":1}}],["`f",{"2":{"133":1}}],["`featurecollectiontrait`",{"2":{"133":2}}],["`featurecollection`",{"2":{"121":2}}],["`featuretrait`",{"2":{"133":3}}],["`feature`s",{"2":{"121":1}}],["`f`",{"2":{"121":5,"133":6,"155":2,"160":1}}],["`false`",{"2":{"120":1,"121":1,"130":4,"142":1}}],["`fix",{"2":{"51":2,"52":2,"54":2,"55":2,"56":2,"57":2}}],["`within`",{"2":{"66":1,"110":1}}],["`weight`",{"2":{"40":1}}],["`geos`",{"2":{"160":3}}],["`geodesic`",{"2":{"146":1}}],["`geodesicsegments`",{"2":{"145":1,"146":1,"147":1}}],["`geointerface`",{"2":{"135":1}}],["`geointerface",{"2":{"133":2,"142":2}}],["`geometry`",{"2":{"133":1,"142":2}}],["`geometrycorrection`",{"2":{"125":1,"135":1,"139":2}}],["`geometrybasics",{"2":{"40":3}}],["`geom`",{"2":{"60":3,"133":1,"147":1}}],["`gi",{"2":{"121":1}}],["`g1`",{"2":{"60":1}}],["`tuple",{"2":{"161":1}}],["`tuple`s",{"2":{"156":1}}],["`tuple`",{"2":{"121":1,"156":1}}],["`time`",{"2":{"142":1}}],["`transform`",{"2":{"142":1}}],["`true`",{"2":{"69":1,"80":1,"83":2,"100":1,"110":1,"120":2,"121":1,"130":2,"142":1}}],["`threaded==true`",{"2":{"133":1}}],["`threaded`",{"2":{"130":1}}],["`tol`",{"2":{"150":2,"151":3,"152":2,"153":3,"154":4}}],["`to",{"2":{"55":1}}],["`target",{"2":{"142":3}}],["`target`",{"2":{"54":1,"133":4,"158":1}}],["`tables",{"2":{"133":1}}],["`taget`",{"2":{"51":1,"56":1}}],["`method",{"2":{"147":1}}],["`method`",{"2":{"40":3,"147":1}}],["`max",{"2":{"146":4,"147":2,"160":1}}],["`makie",{"2":{"121":1}}],["`multipointtrait`",{"2":{"133":1,"150":1}}],["`multipolygontrait`",{"2":{"133":1}}],["`multipolygon`",{"2":{"121":3}}],["`multipolygon",{"2":{"52":3,"55":3,"57":2}}],["`multipoly",{"2":{"52":7,"55":3,"57":3}}],["`minpoints`",{"2":{"121":2}}],["`number`",{"2":{"150":2,"154":3}}],["`namedtuple`",{"2":{"133":1}}],["`nothing`",{"2":{"45":1,"130":1}}],["`next",{"2":{"45":1}}],["`bool`",{"2":{"121":2}}],["`buffer`",{"2":{"41":1}}],["`barycentric",{"2":{"40":3}}],["`radialdistance`",{"2":{"150":1}}],["`ratio`",{"2":{"150":2,"154":3}}],["`reproject`",{"2":{"143":1}}],["`rebuild`",{"2":{"133":1}}],["`r`",{"2":{"40":1}}],["`rᵢ`",{"2":{"40":1}}],["`segmentize`",{"2":{"160":1}}],["`svector`",{"2":{"155":3}}],["`simplifyalg`",{"2":{"150":2}}],["`simplify",{"2":{"150":1}}],["`simplify`",{"2":{"150":2}}],["`source",{"2":{"142":3}}],["`s`",{"2":{"40":1}}],["`sᵢ`",{"2":{"40":2}}],["`s2`",{"2":{"40":1}}],["`s1`",{"2":{"40":1}}],["`hcat`",{"2":{"40":1}}],["`x`",{"2":{"133":1}}],["`xs`",{"2":{"121":1}}],["`x1",{"2":{"40":1}}],["`x1`",{"2":{"40":2}}],["`x2`",{"2":{"40":1}}],["`visvalingamwhyatt`",{"2":{"150":1}}],["`vector",{"2":{"142":1}}],["`vector`",{"2":{"121":1,"133":1}}],["`vᵢ`",{"2":{"40":1}}],["`v`",{"2":{"40":1}}],["`values`",{"2":{"40":1,"121":1}}],["`λs`",{"2":{"40":2}}],["`",{"2":{"40":2,"51":1,"52":2,"54":1,"55":3,"56":1,"57":2,"121":3,"133":1,"135":2,"142":2,"147":1,"150":3,"160":2,"161":1}}],["```jldoctest",{"2":{"50":1,"51":1,"54":1,"55":1,"56":1,"63":1,"66":1,"69":1,"79":1,"83":1,"94":1,"97":1,"100":1,"110":1,"120":1,"150":1}}],["```julia",{"2":{"6":2,"40":1,"80":1,"120":1,"133":1,"155":2,"158":1}}],["```math",{"2":{"40":1,"120":1}}],["```",{"2":{"11":1,"40":3,"50":1,"51":1,"54":1,"56":1,"63":1,"66":1,"69":1,"79":1,"83":1,"94":1,"97":1,"100":1,"110":1,"120":3,"121":11,"133":1,"150":1,"155":2,"161":1}}],["λ₁",{"2":{"40":2}}],["λn",{"2":{"38":1}}],["λ3",{"2":{"38":1}}],["λ2",{"2":{"38":2}}],["λ1",{"2":{"38":2}}],["λs",{"2":{"5":3,"6":4,"40":27}}],["π",{"2":{"34":1,"150":1}}],["δbay",{"2":{"55":3}}],["δbax",{"2":{"55":3}}],["δby",{"2":{"55":5}}],["δbx",{"2":{"55":5}}],["δb",{"2":{"55":2}}],["δay",{"2":{"55":5}}],["δax",{"2":{"55":5}}],["δa",{"2":{"55":2}}],["δintrs",{"2":{"45":2}}],["δy2",{"2":{"120":2}}],["δy1",{"2":{"120":2}}],["δyl",{"2":{"97":4}}],["δy",{"2":{"34":8,"47":3,"91":7}}],["δys",{"2":{"34":1}}],["δx2",{"2":{"120":2}}],["δx1",{"2":{"120":2}}],["δxl",{"2":{"97":4}}],["δx",{"2":{"34":9,"47":3,"91":7}}],["∈",{"2":{"14":1}}],["~",{"2":{"14":3}}],["$ratio",{"2":{"154":1}}],["$rectangle",{"2":{"146":2}}],["$number",{"2":{"154":1}}],["$name",{"2":{"31":2}}],["$min",{"2":{"154":1}}],["$douglas",{"2":{"150":1,"152":1}}],["$simplify",{"2":{"150":1,"151":1,"153":1}}],["$lg",{"2":{"146":1}}],["$lin",{"2":{"146":2}}],["$geom",{"2":{"150":8}}],["$geo",{"2":{"146":1}}],["$apply",{"2":{"133":1,"141":1,"142":1,"150":1}}],["$calc",{"2":{"130":1}}],["$crs",{"2":{"130":1,"140":1}}],["$tol",{"2":{"154":1}}],["$threaded",{"2":{"130":1}}],["$t",{"2":{"63":1,"133":4}}],["$target",{"2":{"52":1,"55":1,"57":1,"133":3}}],["$trait",{"2":{"50":1,"52":2,"55":2,"57":2}}],["$",{"2":{"13":4,"14":1,"40":4,"45":2,"121":3,"135":4,"147":1,"150":12,"160":1}}],["qy",{"2":{"13":2,"14":2}}],["qx",{"2":{"13":2,"14":2}}],["q",{"2":{"13":13,"14":12,"45":4}}],["queue",{"2":{"152":41}}],["questions",{"2":{"55":1}}],["quite",{"2":{"124":1,"170":1}}],["quick",{"2":{"4":1,"6":1,"40":1,"140":1,"149":1}}],["quality",{"2":{"6":1,"150":1}}],["quantity",{"2":{"6":1,"146":1}}],["quot",{"2":{"1":4,"6":10,"24":2,"45":8,"59":2,"60":2,"63":2,"78":4,"91":10,"131":2,"133":8,"144":6,"163":2,"169":2}}],["|=",{"2":{"91":4,"97":1}}],["||",{"2":{"34":2,"45":13,"47":8,"50":1,"54":1,"55":5,"56":1,"63":18,"80":2,"91":8,"97":1,"102":1,"121":7,"152":1,"154":3}}],["|",{"2":{"11":4,"91":1}}],["|>",{"2":{"11":8,"13":2,"133":1,"145":1,"146":1,"150":3,"170":2}}],["↩︎",{"2":{"6":1}}],["ᵢᵢᵢ₊₁ᵢᵢ₊₁ᵢᵢ₊₁tᵢ=det",{"2":{"6":1}}],["⋅",{"2":{"6":1,"40":1}}],["zone",{"2":{"164":1}}],["zoom",{"2":{"14":1}}],["zs",{"2":{"121":5}}],["zip",{"2":{"13":1,"14":1,"163":4,"164":1,"165":1}}],["zeros",{"2":{"40":1,"47":1}}],["zero",{"2":{"4":6,"6":8,"37":11,"44":3,"45":4,"47":11,"55":22,"59":1,"60":3,"120":1,"133":1,"152":4}}],["z",{"2":{"4":1,"5":1,"6":2,"40":3,"63":3,"121":3,"141":1,"155":1,"156":1}}],["0e6",{"2":{"164":6}}],["0example",{"2":{"6":1}}],["097075198097933",{"2":{"165":1}}],["09707519809793252",{"2":{"165":2}}],["091887951911644",{"2":{"165":3}}],["0999933334666654",{"2":{"163":1}}],["09801605542096",{"2":{"163":1}}],["098016055420953",{"2":{"163":3}}],["09297443860091348",{"2":{"163":4}}],["09",{"2":{"39":1}}],["08506974233813636",{"2":{"165":2}}],["08",{"2":{"39":1}}],["062749678615475",{"2":{"165":1}}],["06274967861547665",{"2":{"165":2}}],["06592462566760626",{"2":{"163":1}}],["0650624499034016",{"2":{"163":4}}],["06",{"2":{"39":1}}],["02017324484778",{"2":{"165":1}}],["020173244847778715",{"2":{"165":2}}],["027886421973952302",{"2":{"163":4}}],["02",{"2":{"39":3}}],["04500741774392",{"2":{"165":1}}],["045007417743918",{"2":{"165":2}}],["049999166670833324",{"2":{"163":1}}],["0438052480035",{"2":{"163":1}}],["043805248003498",{"2":{"163":3}}],["04",{"2":{"39":6}}],["07518688541961",{"2":{"165":1}}],["075186885419612",{"2":{"165":2}}],["071",{"2":{"145":2,"146":2}}],["07",{"2":{"39":6,"145":6,"146":6}}],["009176636029576",{"2":{"165":1}}],["0091766360295773",{"2":{"165":2}}],["003135308800957",{"2":{"165":1}}],["0031353088009582475",{"2":{"165":2}}],["0035114210915891397",{"2":{"163":4}}],["006784125578492062",{"2":{"165":2}}],["0020133807972559925",{"2":{"165":2}}],["00839489109211",{"2":{"165":3}}],["008696",{"2":{"3":1,"6":3,"54":1,"55":1,"93":1,"94":1}}],["005465967083412071",{"2":{"163":4}}],["00111595449914",{"2":{"163":1}}],["001115954499138",{"2":{"163":3}}],["0010075412835199304",{"2":{"163":4}}],["001",{"2":{"150":1}}],["00085222666982",{"2":{"165":3}}],["000577332369005",{"2":{"165":1}}],["0005773323690041465",{"2":{"165":2}}],["000510363870095e6",{"2":{"164":2}}],["00025191811248184703",{"2":{"165":2}}],["000215611503127e6",{"2":{"164":2}}],["0007260527263e6",{"2":{"164":2}}],["000342160541625e6",{"2":{"164":2}}],["000124843834609e6",{"2":{"164":2}}],["000063948817746e6",{"2":{"164":2}}],["000026987852369e6",{"2":{"164":2}}],["000008144045314",{"2":{"165":1}}],["000007998400139e6",{"2":{"164":2}}],["000000999950001e6",{"2":{"164":2}}],["00001e6",{"2":{"164":1}}],["0004397316773170068",{"2":{"163":4}}],["000",{"2":{"150":1}}],["00",{"2":{"39":2}}],["053798628882221644",{"2":{"165":2}}],["05877989361332",{"2":{"163":1}}],["058779893613323",{"2":{"163":3}}],["05416726609360478",{"2":{"163":4}}],["05",{"2":{"39":1}}],["052704767595",{"2":{"15":1}}],["037564867762832",{"2":{"165":1}}],["03756486776283019",{"2":{"165":2}}],["031245035570328428",{"2":{"165":2}}],["033518309870985",{"2":{"165":3}}],["03503632062070827",{"2":{"163":4}}],["03",{"2":{"39":4}}],["01458815628695",{"2":{"165":3}}],["016044338630866517",{"2":{"165":2}}],["01592650896568995",{"2":{"163":1}}],["01597247419241532",{"2":{"163":4}}],["01908693278165",{"2":{"163":1}}],["019086932781654",{"2":{"163":3}}],["01098781325325",{"2":{"163":1}}],["010987813253244",{"2":{"163":3}}],["011814947665167774",{"2":{"163":4}}],["01362848005",{"2":{"15":1}}],["01",{"2":{"14":1,"39":1,"145":1,"146":1,"163":1,"164":1,"165":1}}],["0^",{"2":{"13":2,"14":2}}],["0+2",{"2":{"13":2,"14":2}}],["0",{"2":{"3":35,"4":12,"6":190,"11":1,"13":5,"14":8,"15":32,"33":20,"34":3,"36":9,"37":4,"39":155,"40":2,"43":6,"44":6,"45":49,"46":13,"47":5,"49":22,"50":49,"51":42,"54":2,"55":21,"56":46,"57":2,"59":20,"60":2,"62":13,"63":18,"65":16,"68":6,"69":6,"78":6,"79":12,"80":9,"82":15,"91":37,"96":13,"97":9,"99":12,"100":11,"109":16,"120":21,"121":7,"124":24,"138":64,"139":4,"145":16,"146":13,"147":1,"150":11,"152":7,"154":4,"161":2,"163":129,"164":2,"165":46,"169":13}}],[">=",{"2":{"40":6,"80":4,"97":1,"154":1}}],[">",{"2":{"1":1,"6":6,"11":2,"13":1,"15":2,"34":1,"40":1,"45":17,"47":3,"50":5,"51":1,"52":1,"55":2,"56":1,"57":3,"59":1,"63":1,"80":8,"91":10,"97":2,"120":4,"121":12,"133":5,"135":1,"139":3,"147":2,"150":1,"152":12,"154":3,"155":1,"161":1,"170":1}}],["914930257661865",{"2":{"165":1}}],["96875496442967",{"2":{"165":1}}],["961329",{"2":{"3":1,"6":3,"54":1,"55":1,"93":1,"94":1}}],["983955661369134",{"2":{"165":1}}],["9833",{"2":{"15":1}}],["9877550012664",{"2":{"163":1}}],["9840085315131",{"2":{"163":1}}],["98271048511609",{"2":{"163":1}}],["98661575256801",{"2":{"163":1}}],["99321587442151",{"2":{"165":1}}],["99375130197483",{"2":{"163":1}}],["997986619202745",{"2":{"165":1}}],["997750168744936",{"2":{"163":1}}],["997247091122496",{"2":{"163":1}}],["99600053330489",{"2":{"163":1}}],["991002699676024",{"2":{"163":1}}],["990022362600165",{"2":{"163":1}}],["99292997455441",{"2":{"163":1}}],["99533829767195",{"2":{"163":1}}],["99865616402829",{"2":{"163":1}}],["999999967681458e6",{"2":{"164":2}}],["999997707902938e6",{"2":{"164":2}}],["999987539891298e6",{"2":{"164":2}}],["999963474314044e6",{"2":{"164":2}}],["999919535736425e6",{"2":{"164":2}}],["999974634566875",{"2":{"163":1}}],["999849768598615e6",{"2":{"164":2}}],["999748081887518",{"2":{"165":1}}],["999748243174828e6",{"2":{"164":2}}],["999750002083324",{"2":{"163":1}}],["999609061508909e6",{"2":{"164":2}}],["999426363321033e6",{"2":{"164":2}}],["999194331880103e6",{"2":{"164":2}}],["99900003333289",{"2":{"163":1}}],["999565375483215",{"2":{"163":1}}],["9im",{"2":{"91":2,"168":1}}],["97976366505997",{"2":{"163":1}}],["9783069507679",{"2":{"163":1}}],["97",{"2":{"39":1}}],["946201371117777",{"2":{"165":1}}],["94",{"2":{"39":1}}],["92",{"2":{"39":1}}],["95770326033",{"2":{"15":1}}],["95",{"2":{"13":1,"14":1}}],["900",{"2":{"146":1}}],["90063612163",{"2":{"11":2}}],["90",{"2":{"33":9,"39":1}}],["909318372607",{"2":{"11":3}}],["9",{"2":{"1":1,"6":1,"91":2,"120":12,"145":1,"155":1}}],["873633668827033",{"2":{"165":1}}],["8135804051007",{"2":{"163":1}}],["813580405100698",{"2":{"163":3}}],["88",{"2":{"39":1}}],["86641841658641",{"2":{"163":1}}],["866418416586406",{"2":{"163":3}}],["86",{"2":{"39":1}}],["868447876892",{"2":{"15":2}}],["84",{"2":{"39":1}}],["821068835162155",{"2":{"165":1}}],["82",{"2":{"39":1}}],["800",{"2":{"39":1}}],["80000",{"2":{"15":5}}],["80",{"2":{"39":1}}],["80869813739",{"2":{"15":2}}],["856614689791036e",{"2":{"15":2}}],["83572303404496",{"2":{"6":2,"54":1,"55":1}}],["8",{"2":{"1":3,"6":9,"13":1,"14":1,"51":2,"56":4,"91":1,"121":3,"145":1,"155":3,"165":2}}],["karnataka",{"2":{"170":1}}],["kbn",{"2":{"11":2}}],["kinds",{"2":{"19":1}}],["kind",{"2":{"9":1,"121":1}}],["k",{"2":{"6":1,"14":6,"40":1,"45":5,"91":5,"163":5,"165":5}}],["kernel",{"2":{"147":4}}],["keepat",{"2":{"56":1,"139":2}}],["keep",{"2":{"45":3,"121":1,"139":14,"145":1,"169":1}}],["keeping",{"2":{"6":1,"133":1,"141":1}}],["keys",{"2":{"121":4}}],["key",{"2":{"6":1,"121":4,"160":5}}],["keyword",{"2":{"6":8,"19":1,"51":1,"54":1,"56":1,"130":6,"133":1,"140":2,"146":2,"160":4,"164":1,"165":1}}],["keywords",{"2":{"1":2,"4":1,"6":10,"91":2,"121":1,"130":1,"133":1,"140":1,"141":2,"142":3,"150":8,"151":1,"152":1,"153":1,"154":1,"156":2}}],["known",{"2":{"47":2}}],["know",{"2":{"6":3,"34":2,"45":1,"47":1,"51":1,"54":1,"55":2,"56":1,"57":1,"133":1,"169":1}}],["kwargs",{"2":{"41":3,"47":1,"50":1,"51":3,"52":3,"54":4,"55":5,"56":3,"57":5,"135":2,"143":1,"146":1}}],["kwdef",{"2":{"31":1,"45":1,"146":1,"151":1,"152":1,"153":1}}],["kw",{"2":{"1":1,"6":11,"91":10,"121":20,"133":21,"141":3,"150":15,"153":1,"155":3,"156":3,"160":6}}],["json",{"2":{"167":3}}],["jstep",{"2":{"63":3}}],["jstart",{"2":{"63":7}}],["joined",{"2":{"169":4}}],["joins",{"0":{"168":1},"1":{"169":1,"170":1,"171":1},"2":{"168":3}}],["joinpath",{"2":{"150":2}}],["join",{"2":{"133":2,"168":4,"169":5,"171":1}}],["joining",{"2":{"6":2,"150":1,"168":1}}],["jpn",{"2":{"170":2}}],["jp",{"2":{"63":2}}],["jhole",{"2":{"63":2}}],["jh",{"2":{"57":5}}],["j+1",{"2":{"45":1,"121":1,"154":1}}],["j",{"2":{"45":24,"63":8,"80":9,"91":12,"120":2,"121":8,"154":2}}],["jet",{"2":{"39":1}}],["just",{"2":{"4":1,"6":1,"44":1,"45":2,"55":4,"57":1,"60":2,"121":1,"131":1,"133":3,"146":1,"168":1}}],["julialand",{"2":{"164":2}}],["julialines",{"2":{"36":1}}],["julialinearsegments",{"2":{"6":1}}],["juliahole",{"2":{"163":1}}],["juliaplot",{"2":{"164":2}}],["juliap1",{"2":{"163":1}}],["juliapoly",{"2":{"164":1}}],["juliapolygon3",{"2":{"164":1}}],["juliapolygon1",{"2":{"163":1}}],["juliapolygonize",{"2":{"6":1}}],["juliapolygon",{"2":{"6":1}}],["juliapoints",{"2":{"169":1}}],["juliapoint",{"2":{"163":1}}],["juliaxoffset",{"2":{"163":3,"165":1}}],["juliax",{"2":{"163":2}}],["juliaxrange",{"2":{"59":1}}],["julia$apply",{"2":{"156":1}}],["julia$threaded",{"2":{"140":1}}],["julia6",{"2":{"150":1}}],["julia```jldoctest",{"2":{"161":1}}],["julia```julia",{"2":{"121":1}}],["julia```",{"2":{"80":1,"158":1}}],["julia1",{"2":{"51":1,"54":1,"55":1,"56":1}}],["julia2",{"2":{"50":1}}],["juliabase",{"2":{"40":1,"60":4,"133":1,"160":1}}],["juliabarycentric",{"2":{"5":3,"6":3}}],["juliafig",{"2":{"163":1,"164":1}}],["juliafalse",{"2":{"120":1}}],["juliafunction",{"2":{"34":2,"40":3,"41":2,"44":1,"45":11,"47":2,"50":1,"52":1,"55":2,"57":1,"60":8,"91":6,"97":2,"102":1,"122":1,"133":5,"143":1,"146":1,"154":2}}],["juliafor",{"2":{"31":1,"133":2}}],["juliaflexijoins",{"2":{"171":1}}],["juliaflipped",{"2":{"126":1}}],["juliaflip",{"2":{"6":1}}],["juliaflatten",{"2":{"6":1,"128":1}}],["juliamy",{"2":{"171":1}}],["juliamultipoly",{"2":{"150":1}}],["juliamodule",{"2":{"31":1}}],["juliameanvalue",{"2":{"6":1}}],["juliagi",{"2":{"11":2}}],["juliago",{"2":{"11":1,"33":1,"36":1,"46":1,"62":1,"65":1,"68":1,"78":1,"82":1,"93":1,"96":1,"99":1,"109":1,"168":1}}],["juliageopoly1",{"2":{"165":1}}],["juliageointerface",{"2":{"161":1}}],["juliageo",{"2":{"6":2}}],["juliageodesicsegments",{"2":{"6":1}}],["juliageos",{"2":{"6":1}}],["juliaweighted",{"2":{"6":1}}],["juliawithin",{"2":{"3":1,"6":1}}],["juliaunwrap",{"2":{"6":1,"133":6}}],["juliaunion",{"2":{"6":1}}],["juliaunionintersectingpolygons",{"2":{"6":1,"136":1}}],["juliausing",{"2":{"6":1,"13":1,"14":1,"39":1,"145":2,"146":1,"149":1,"150":1,"166":1}}],["juliascatter",{"2":{"169":1}}],["juliasource",{"2":{"164":2}}],["juliasimplify",{"2":{"6":1,"150":3}}],["juliasigned",{"2":{"4":2,"6":2}}],["juliasegmentize",{"2":{"6":1}}],["julias1",{"2":{"6":1}}],["juliavisvalingamwhyatt",{"2":{"6":1}}],["juliaring3",{"2":{"164":1}}],["juliaring1",{"2":{"163":1}}],["juliar",{"2":{"163":2,"164":1,"165":1}}],["juliareconstruct",{"2":{"6":1,"128":1}}],["juliarebuild",{"2":{"6":1,"128":1}}],["juliareproject",{"2":{"1":1}}],["juliaradialdistance",{"2":{"6":1}}],["juliadf",{"2":{"166":1}}],["juliadestination",{"2":{"164":1}}],["juliadouglaspeucker",{"2":{"6":1}}],["juliadifference",{"2":{"6":1}}],["juliadiffintersectingpolygons",{"2":{"6":1,"136":1}}],["juliadistance",{"2":{"4":1,"6":1}}],["juliadisjoint",{"2":{"3":1,"6":1}}],["juliaexport",{"2":{"32":1,"35":1,"38":1,"42":1,"48":1,"51":1,"54":1,"56":1,"58":1,"61":1,"64":1,"67":1,"77":1,"81":1,"92":1,"95":1,"98":1,"108":1,"118":1,"121":1,"123":1,"126":1,"134":1,"137":1,"142":1,"144":1,"150":1,"157":1}}],["juliaend",{"2":{"60":1}}],["juliaenforce",{"2":{"6":1}}],["juliaenum",{"2":{"6":2}}],["juliaembed",{"2":{"4":1,"6":1}}],["juliaequals",{"2":{"4":15,"6":15,"45":1}}],["juliaaccuratearithmetic",{"2":{"11":2}}],["juliaabstract",{"2":{"6":3,"135":1,"136":1,"146":1,"159":1}}],["juliaangles",{"2":{"4":1,"6":1}}],["juliaarea",{"2":{"4":1,"6":1}}],["juliaapplyreduce",{"2":{"1":1,"6":1}}],["juliaapply",{"2":{"1":1,"6":1,"22":1}}],["juliacent",{"2":{"43":1}}],["juliacentroid",{"2":{"4":1,"6":3}}],["juliacut",{"2":{"6":1}}],["juliaclosedring",{"2":{"6":1,"136":1}}],["juliaconst",{"2":{"34":1,"37":1,"40":1,"45":1,"47":2,"60":1,"69":1,"83":1,"100":1,"110":1,"130":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":{"63":1,"66":1,"69":1,"79":1,"83":1,"94":1,"97":1,"100":1,"110":1,"120":1}}],["juliatraittarget",{"2":{"6":2,"158":1}}],["juliatransform",{"2":{"1":1,"6":1}}],["juliatuples",{"2":{"6":1}}],["juliat",{"2":{"6":1}}],["juliatouches",{"2":{"3":1,"6":1}}],["juliaoverlaps",{"2":{"3":9,"6":9}}],["juliainnerjoin",{"2":{"170":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":18,"11":1,"33":1,"36":1,"43":1,"46":1,"49":1,"59":1,"62":1,"65":1,"68":1,"78":1,"82":1,"93":1,"96":1,"99":1,"109":1,"124":2,"138":2,"145":1,"167":4,"169":1,"170":1}}],["julia",{"2":{"3":1,"6":4,"9":1,"15":1,"25":1,"29":1,"31":1,"34":4,"37":10,"40":8,"44":19,"45":60,"47":18,"50":10,"51":6,"52":1,"54":5,"55":29,"56":6,"57":4,"59":1,"60":4,"63":15,"66":1,"70":1,"71":5,"72":1,"73":1,"74":2,"75":1,"76":1,"79":1,"80":3,"84":1,"85":3,"86":1,"87":1,"88":1,"89":1,"90":1,"91":50,"94":1,"97":7,"101":1,"102":3,"103":1,"104":1,"105":1,"106":1,"107":1,"111":1,"112":3,"113":1,"114":1,"115":2,"116":1,"117":1,"120":9,"121":40,"122":2,"125":5,"133":63,"135":1,"139":3,"140":1,"141":1,"142":1,"146":1,"147":2,"150":1,"151":2,"152":15,"153":3,"155":1,"156":1,"157":1,"158":1,"160":4,"161":1,"162":2,"164":2,"167":2,"168":1,"169":1}}],["julia>",{"2":{"1":5,"6":7,"120":3,"155":7}}],["juliajulia>",{"2":{"1":2,"6":3}}],["jl`",{"2":{"142":1,"160":1}}],["jldoctest",{"2":{"6":1}}],["jl",{"0":{"29":1,"31":1},"2":{"1":10,"4":1,"6":13,"10":2,"11":1,"18":2,"25":2,"29":2,"31":41,"34":1,"37":1,"40":1,"41":3,"44":1,"45":1,"47":1,"50":1,"52":1,"53":1,"55":1,"57":1,"60":1,"63":1,"66":1,"76":1,"79":1,"80":1,"90":1,"91":1,"94":1,"97":1,"107":1,"117":1,"120":2,"121":1,"122":1,"125":1,"128":1,"133":3,"136":1,"139":1,"140":2,"141":1,"142":4,"143":3,"144":1,"146":3,"147":2,"150":2,"154":1,"155":6,"156":2,"159":1,"160":2,"161":1,"164":1,"168":1}}],["+5000000",{"2":{"164":1}}],["+proj=natearth2",{"2":{"164":2}}],["+=",{"2":{"37":2,"40":11,"44":6,"45":17,"47":10,"50":1,"63":1,"80":1,"91":5,"120":1,"139":2,"152":4,"161":3}}],["+",{"2":{"1":1,"6":2,"13":1,"14":1,"34":4,"37":1,"40":20,"44":10,"45":15,"47":7,"50":1,"55":10,"60":3,"63":2,"80":2,"91":6,"120":6,"121":2,"139":3,"147":2,"152":3,"153":2,"154":2,"163":6,"164":1,"165":4}}],["yticklabelsvisible",{"2":{"164":1}}],["york",{"2":{"170":1}}],["yoffset",{"2":{"163":7,"165":2}}],["your",{"0":{"167":1},"2":{"22":1,"41":1,"121":1,"126":1,"143":1,"146":1,"166":1,"167":1,"171":2}}],["you",{"0":{"19":1},"2":{"1":1,"4":1,"5":2,"6":10,"9":1,"11":1,"19":1,"21":1,"22":5,"27":2,"34":1,"37":1,"40":8,"41":1,"44":1,"51":1,"54":1,"56":1,"124":1,"126":1,"138":1,"143":1,"145":1,"146":1,"147":1,"155":1,"158":1,"164":1,"166":2,"167":3,"169":2,"170":3,"171":4}}],["y=y",{"2":{"161":1}}],["yvec",{"2":{"121":4}}],["ybounds",{"2":{"121":4}}],["yhalf",{"2":{"121":3}}],["ylast",{"2":{"60":3}}],["yfirst",{"2":{"60":5}}],["y0",{"2":{"60":5}}],["yw",{"2":{"47":4}}],["yeild",{"2":{"55":1}}],["ye",{"2":{"47":4}}],["yet",{"0":{"122":1},"2":{"31":1,"40":1,"50":1,"52":1,"55":1,"57":1,"63":1,"121":1,"122":1,"135":2,"170":1}}],["y2",{"2":{"44":2,"47":18,"60":7,"80":10,"91":5,"97":4,"121":5,"147":6,"161":2}}],["y1",{"2":{"44":2,"47":22,"60":7,"80":11,"91":6,"97":5,"121":5,"147":7,"161":2}}],["yield",{"2":{"146":1}}],["yind+1",{"2":{"121":1}}],["yind",{"2":{"121":2}}],["yinterior",{"2":{"44":2}}],["yi+yi−1",{"2":{"6":1}}],["ycentroid",{"2":{"44":13}}],["yrange",{"2":{"39":3,"59":3}}],["yautolimits",{"2":{"39":2}}],["yp2",{"2":{"34":4}}],["ys",{"2":{"6":3,"121":30}}],["ymax",{"2":{"6":1,"46":2,"47":48}}],["ymin",{"2":{"6":1,"46":2,"47":49}}],["y",{"2":{"1":2,"4":1,"6":4,"13":9,"14":10,"34":8,"37":2,"39":8,"43":1,"44":10,"45":6,"46":1,"47":8,"52":6,"55":8,"59":2,"60":7,"63":3,"80":21,"91":16,"97":7,"120":10,"126":2,"133":1,"141":4,"142":1,"147":2,"154":1,"155":2,"156":2,"161":7,"163":8,"164":2,"165":2,"168":1}}],["75",{"2":{"59":2,"65":1,"82":1,"109":1}}],["78",{"2":{"39":1}}],["74",{"2":{"39":1}}],["72",{"2":{"39":1}}],["726711609794",{"2":{"15":1}}],["76",{"2":{"39":1}}],["76085",{"2":{"15":1}}],["768946",{"2":{"3":1,"6":3,"54":1,"55":1,"93":1,"94":1}}],["70440582002419",{"2":{"163":1}}],["704405820024185",{"2":{"163":3}}],["704377648755",{"2":{"15":2}}],["700",{"2":{"14":1}}],["700454",{"2":{"6":1,"149":1,"150":1}}],["701141",{"2":{"6":1,"149":1,"150":1}}],["70",{"2":{"6":20,"39":1,"149":20,"150":20,"163":20}}],["738281",{"2":{"3":1,"6":3,"54":1,"55":1,"93":1,"94":1}}],["7",{"2":{"1":5,"6":5,"91":1,"133":1,"145":4,"146":4,"155":4,"165":1}}],["65533525026046",{"2":{"163":1}}],["655335250260467",{"2":{"163":3}}],["659942",{"2":{"6":1,"149":1,"150":1}}],["6area",{"2":{"44":2}}],["66",{"2":{"39":1}}],["668869",{"2":{"6":1,"149":1,"150":1}}],["64744840486518",{"2":{"165":3}}],["64",{"2":{"39":1,"145":2,"146":2}}],["646209",{"2":{"6":1,"149":1,"150":1}}],["629",{"2":{"164":1}}],["62",{"2":{"39":1}}],["624923",{"2":{"6":1,"149":1,"150":1}}],["61366192682",{"2":{"15":1}}],["614624",{"2":{"6":1,"149":1,"150":1}}],["605000000000004",{"2":{"145":2}}],["60",{"2":{"39":1,"145":2}}],["60000",{"2":{"15":3}}],["609817",{"2":{"6":1,"149":1,"150":1}}],["603637",{"2":{"6":2,"149":2,"150":2}}],["68",{"2":{"39":1}}],["682601",{"2":{"6":1,"149":1,"150":1}}],["683975",{"2":{"6":1,"149":1,"150":1}}],["69159119078359",{"2":{"165":3}}],["694274",{"2":{"6":1,"149":1,"150":1}}],["697021",{"2":{"6":1,"149":1,"150":1}}],["639343",{"2":{"6":1,"149":1,"150":1}}],["6",{"2":{"1":12,"3":4,"6":23,"51":3,"56":3,"91":1,"97":4,"133":3,"150":1,"155":9,"165":2}}],["51695367760999",{"2":{"165":1}}],["516953677609987",{"2":{"165":2}}],["51030066635026",{"2":{"163":4}}],["5e6",{"2":{"164":2}}],["55715336218991",{"2":{"165":1}}],["557153362189904",{"2":{"165":2}}],["55",{"2":{"163":3}}],["55494217175954",{"2":{"163":4}}],["57",{"2":{"145":4,"146":4}}],["57725",{"2":{"15":2}}],["5x",{"2":{"133":1}}],["563198",{"2":{"55":1}}],["56",{"2":{"39":1}}],["54",{"2":{"39":1,"163":19}}],["50",{"2":{"39":1,"145":4,"146":4,"163":3}}],["500000",{"2":{"164":1}}],["50000",{"2":{"15":1}}],["500",{"2":{"14":1,"164":1}}],["5d",{"2":{"25":1,"29":1}}],["52",{"2":{"39":1}}],["52521",{"2":{"15":1}}],["52709",{"2":{"15":2}}],["594711",{"2":{"6":1,"149":1,"150":1}}],["590591",{"2":{"6":1,"149":1,"150":1}}],["595397",{"2":{"6":1,"149":1,"150":1}}],["535",{"2":{"145":4}}],["5355",{"2":{"145":2}}],["53333",{"2":{"15":4}}],["53",{"2":{"6":10,"145":2,"161":10}}],["58",{"2":{"39":1}}],["58059",{"2":{"15":2}}],["587158",{"2":{"6":2,"149":2,"150":2}}],["58375366067548",{"2":{"6":2,"54":1,"55":1}}],["584961",{"2":{"3":1,"6":3,"54":1,"55":1,"93":1,"94":1}}],["5",{"2":{"1":29,"3":4,"4":8,"6":84,"13":1,"39":1,"49":5,"50":8,"51":16,"56":18,"59":8,"63":8,"91":1,"97":4,"121":1,"133":2,"145":1,"146":1,"155":27,"163":32,"164":25,"171":1}}],["4983491639274692e6",{"2":{"164":2}}],["4986507085647392e6",{"2":{"164":2}}],["497205585568957e6",{"2":{"164":2}}],["4976022389592e6",{"2":{"164":2}}],["4957639801366436e6",{"2":{"164":2}}],["4940253560034204e6",{"2":{"164":2}}],["4946113281484335e6",{"2":{"164":2}}],["491990928929295e6",{"2":{"164":2}}],["4904357734399722e6",{"2":{"164":2}}],["4926709788709967e6",{"2":{"164":2}}],["4962554647802354e6",{"2":{"164":2}}],["499984780817334e6",{"2":{"164":2}}],["4997392479570867e6",{"2":{"164":2}}],["4991939151049731e6",{"2":{"164":2}}],["4994001399837343e6",{"2":{"164":2}}],["4998500087497458e6",{"2":{"164":2}}],["49",{"2":{"121":1}}],["43541888381864",{"2":{"165":3}}],["4326",{"2":{"164":2,"165":3}}],["43787",{"2":{"15":1}}],["439295815226",{"2":{"15":1}}],["434306",{"2":{"6":1,"149":1,"150":1}}],["4896621210021754e6",{"2":{"164":2}}],["489271",{"2":{"6":4,"161":4}}],["4870405593989636e6",{"2":{"164":2}}],["4879072738504685e6",{"2":{"164":2}}],["484003",{"2":{"120":4}}],["482551",{"2":{"120":4}}],["48268",{"2":{"15":1}}],["48",{"2":{"39":1}}],["48001",{"2":{"15":1}}],["45",{"2":{"39":2,"120":12,"163":2}}],["450",{"2":{"13":1}}],["458369",{"2":{"6":2,"149":2,"150":2}}],["42004014766201",{"2":{"163":1}}],["420040147662014",{"2":{"163":3}}],["4219350464667047e",{"2":{"163":4}}],["42",{"2":{"13":1,"14":1,"39":3}}],["426283",{"2":{"6":1,"149":1,"150":1}}],["400",{"2":{"39":3}}],["40000",{"2":{"15":1}}],["40",{"2":{"14":1,"39":3}}],["406224",{"2":{"6":1,"149":1,"150":1}}],["404504",{"2":{"6":1,"149":1,"150":1}}],["41544701408748197",{"2":{"163":1}}],["41",{"2":{"39":1,"165":20}}],["41878",{"2":{"15":1}}],["414248",{"2":{"6":1,"149":1,"150":1}}],["419406",{"2":{"6":1,"149":1,"150":1}}],["4493927459900552",{"2":{"163":1}}],["44121252392",{"2":{"15":1}}],["44",{"2":{"14":1,"39":2}}],["442901",{"2":{"6":1,"149":1,"150":1}}],["446339",{"2":{"6":1,"149":1,"150":1}}],["477985",{"2":{"120":4}}],["47",{"2":{"39":3}}],["473835",{"2":{"6":1,"149":1,"150":1}}],["472117",{"2":{"6":2,"149":2,"150":2}}],["46525251631344455",{"2":{"163":1}}],["465816",{"2":{"6":1,"149":1,"150":1}}],["46",{"2":{"39":3}}],["468107",{"2":{"6":1,"149":1,"150":1}}],["464547",{"2":{"6":6,"161":6}}],["4",{"2":{"1":11,"3":4,"6":15,"9":2,"13":2,"14":1,"33":1,"47":1,"66":1,"79":1,"83":1,"91":2,"110":1,"120":1,"133":3,"145":1,"152":1,"155":8,"164":20,"167":2}}],["3585",{"2":{"145":1}}],["35",{"2":{"39":3}}],["354492",{"2":{"3":1,"6":3,"54":1,"55":1,"93":1,"94":1}}],["38042741557976",{"2":{"163":1}}],["380427415579764",{"2":{"163":3}}],["38",{"2":{"39":3}}],["3655999675063154",{"2":{"163":1}}],["36",{"2":{"39":2}}],["360",{"2":{"34":1}}],["36022",{"2":{"15":1}}],["327284472232776",{"2":{"165":3}}],["32610",{"2":{"164":3}}],["32",{"2":{"39":3}}],["37",{"2":{"39":5}}],["3497142366876638",{"2":{"163":1}}],["34",{"2":{"39":3}}],["31571636123306385",{"2":{"163":1}}],["31",{"2":{"39":2}}],["30151010318639",{"2":{"163":4}}],["30527612515520186",{"2":{"163":4}}],["300",{"2":{"59":1}}],["30",{"2":{"14":2,"39":3,"163":2}}],["3376428491230612",{"2":{"163":4}}],["3390",{"2":{"91":1}}],["33333333333",{"2":{"15":1}}],["333333333336",{"2":{"15":3}}],["33",{"2":{"6":20,"149":20,"150":20}}],["3d",{"2":{"4":1,"6":1,"40":2,"63":1,"133":1,"144":1}}],["3",{"2":{"1":13,"3":4,"5":1,"6":29,"14":2,"40":13,"43":6,"45":1,"51":6,"56":5,"62":1,"66":1,"79":1,"83":1,"91":2,"96":1,"110":1,"121":7,"133":3,"138":16,"145":4,"150":3,"152":2,"154":1,"155":11,"164":1,"165":1,"169":1}}],["39945867303846",{"2":{"165":3}}],["3995734698458635",{"2":{"163":1}}],["399918",{"2":{"6":2,"149":2,"150":2}}],["394759",{"2":{"6":1,"149":1,"150":1}}],["392466",{"2":{"6":1,"149":1,"150":1}}],["395332",{"2":{"6":1,"149":1,"150":1}}],["39",{"0":{"28":1},"2":{"0":1,"4":5,"6":20,"7":1,"9":2,"19":1,"21":2,"22":1,"23":1,"27":1,"34":1,"36":1,"37":1,"38":1,"39":3,"40":2,"43":6,"44":3,"45":28,"47":1,"49":1,"50":1,"52":1,"54":4,"55":1,"57":2,"60":4,"63":7,"68":1,"78":2,"85":2,"91":19,"97":1,"99":1,"102":2,"121":3,"126":2,"128":3,"129":1,"133":5,"136":6,"137":1,"145":6,"146":1,"148":1,"150":2,"158":2,"159":3,"160":6,"162":1,"163":6,"164":6,"165":4,"166":4,"167":5,"168":1,"170":1,"171":2}}],["2pi",{"2":{"163":1,"164":1,"165":1}}],["2nd",{"2":{"55":6}}],["2335447787454",{"2":{"165":1}}],["233544778745394",{"2":{"165":2}}],["23",{"2":{"39":3,"91":1}}],["23699059147",{"2":{"15":1}}],["28",{"2":{"39":2}}],["28083",{"2":{"15":2}}],["2658011835867806",{"2":{"163":1}}],["26745668457025",{"2":{"163":1}}],["267456684570245",{"2":{"163":3}}],["26",{"2":{"39":5,"91":2}}],["24989584635339165",{"2":{"163":1}}],["24279488312757858",{"2":{"163":4}}],["24",{"2":{"39":7,"91":1,"165":9}}],["274364",{"2":{"51":1,"54":1,"56":1}}],["274363",{"2":{"51":1,"54":1,"56":1}}],["27",{"2":{"39":2}}],["275543",{"2":{"6":6,"161":6}}],["2d",{"2":{"25":1,"29":1,"144":1}}],["2^",{"2":{"14":1}}],["2158594260436434",{"2":{"163":1}}],["215118",{"2":{"6":4,"161":4}}],["21664550952386064",{"2":{"163":4}}],["21",{"2":{"39":4,"91":2,"165":40}}],["21427",{"2":{"11":5}}],["295828190107045",{"2":{"165":1}}],["29582819010705",{"2":{"165":2}}],["299820032397223",{"2":{"163":1}}],["29",{"2":{"39":3}}],["29th",{"0":{"8":1},"1":{"9":1,"10":1}}],["298",{"2":{"6":2,"146":2}}],["20340",{"2":{"167":1}}],["20682326747054",{"2":{"165":1}}],["206823267470536",{"2":{"165":2}}],["20093817218219",{"2":{"163":1}}],["200938172182195",{"2":{"163":3}}],["2018",{"2":{"91":1}}],["2017",{"2":{"6":1,"40":1}}],["20",{"2":{"39":3,"91":2,"163":60,"165":1}}],["2024",{"0":{"7":1,"8":1},"1":{"9":1,"10":1}}],["20th",{"0":{"7":1}}],["25",{"2":{"39":3,"65":1,"91":1,"109":1,"165":12}}],["258",{"2":{"11":1}}],["25px",{"2":{"6":2}}],["257223563`",{"2":{"146":1}}],["257223563",{"2":{"6":2,"146":1}}],["22",{"2":{"39":3,"91":1}}],["22168",{"2":{"3":1,"6":3,"54":1,"55":1,"93":1,"94":1}}],["224758",{"2":{"3":1,"6":3,"54":1,"55":1,"93":1,"94":1}}],["2",{"2":{"1":19,"3":9,"5":1,"6":49,"13":1,"14":1,"15":3,"25":2,"29":2,"34":3,"37":1,"39":6,"40":32,"43":2,"44":4,"45":10,"46":6,"47":7,"49":1,"50":2,"55":2,"56":1,"59":1,"60":3,"63":4,"66":2,"79":2,"80":2,"82":2,"83":3,"91":11,"110":2,"120":2,"121":23,"133":5,"139":1,"147":1,"150":5,"152":7,"153":7,"154":5,"155":18,"161":11,"163":7,"164":6,"165":10,"166":1}}],["1st",{"2":{"55":6}}],["198232937815632",{"2":{"165":1}}],["19823293781563178",{"2":{"165":2}}],["1999466709331708",{"2":{"163":1}}],["1998",{"2":{"51":1,"54":1,"56":1}}],["19",{"2":{"39":2,"91":2}}],["110m",{"2":{"164":2}}],["110",{"2":{"164":1}}],["11591614996189725",{"2":{"163":1}}],["11966707868197",{"2":{"163":1}}],["119667078681967",{"2":{"163":3}}],["11",{"2":{"15":2,"39":2,"91":1}}],["1145",{"2":{"51":1,"54":1,"56":1}}],["114",{"2":{"7":1}}],["16589608273778408",{"2":{"163":1}}],["165644",{"2":{"120":2}}],["16692537029320365",{"2":{"163":4}}],["166644",{"2":{"120":2}}],["163434",{"2":{"120":2}}],["169356",{"2":{"120":2}}],["164434",{"2":{"120":2}}],["16111",{"2":{"15":1}}],["16",{"2":{"13":1,"14":1,"39":2,"91":2}}],["180",{"2":{"34":1,"120":1}}],["18593721105",{"2":{"15":1}}],["18",{"2":{"13":1,"14":1,"39":3,"91":2}}],["1em",{"2":{"6":2}}],["1px",{"2":{"6":2}}],["13309630561615",{"2":{"165":3}}],["13401805979",{"2":{"15":2}}],["13",{"2":{"6":3,"39":1,"51":1,"56":2,"91":1}}],["10n",{"2":{"164":1}}],["10832215707812454",{"2":{"163":4}}],["10m",{"2":{"150":1}}],["10^9",{"2":{"13":1}}],["1000000",{"2":{"164":1}}],["1000",{"2":{"13":2,"145":2,"164":1,"169":2}}],["100",{"2":{"6":2,"14":3,"121":2}}],["10",{"2":{"6":14,"11":1,"36":1,"39":5,"49":4,"50":10,"51":2,"54":1,"56":2,"62":2,"91":3,"96":2,"146":1,"150":3,"163":1}}],["14182952335953",{"2":{"165":1}}],["14182952335952814",{"2":{"165":2}}],["14404531208901e",{"2":{"165":2}}],["1499775010124783",{"2":{"163":1}}],["1464721641710074",{"2":{"163":4}}],["14",{"2":{"3":1,"6":5,"39":2,"54":2,"55":2,"91":1,"93":1,"94":1,"145":2,"146":2}}],["15488729606723",{"2":{"165":3}}],["15",{"2":{"3":1,"6":4,"39":1,"49":1,"50":1,"54":1,"55":1,"91":1,"93":1,"94":1}}],["17893116483784577",{"2":{"165":2}}],["17289902010158",{"2":{"163":1}}],["172899020101585",{"2":{"163":3}}],["170356",{"2":{"120":2}}],["17",{"2":{"3":1,"6":3,"39":3,"54":1,"55":1,"91":2,"93":1,"94":1}}],["125",{"2":{"6":2,"54":1,"55":1}}],["127",{"2":{"3":1,"6":3,"54":1,"55":1,"93":1,"94":1,"164":1}}],["123",{"2":{"3":1,"6":3,"54":1,"55":1,"93":1,"94":1}}],["12636633117296836",{"2":{"165":2}}],["126",{"2":{"3":1,"6":3,"54":1,"55":1,"93":1,"94":1}}],["12",{"2":{"3":1,"6":3,"39":2,"54":1,"55":1,"91":1,"93":1,"94":1,"170":1}}],["124",{"2":{"3":1,"6":3,"54":1,"55":1,"93":1,"94":1}}],["1",{"2":{"1":8,"3":38,"6":63,"13":1,"14":4,"15":1,"33":4,"34":15,"36":7,"38":2,"39":11,"40":16,"43":4,"44":7,"45":72,"46":9,"47":15,"49":1,"50":10,"52":3,"55":9,"56":4,"57":11,"59":7,"60":6,"63":16,"65":2,"66":6,"68":2,"69":2,"78":2,"79":8,"80":12,"82":2,"83":5,"91":38,"97":6,"99":4,"100":5,"102":1,"109":2,"110":6,"120":16,"121":25,"124":12,"125":2,"133":9,"139":9,"146":1,"147":4,"150":8,"152":15,"153":3,"154":15,"155":6,"161":9,"163":8,"164":44,"165":12,"166":1,"169":8,"170":3}}],["human",{"2":{"167":1}}],["hypot",{"2":{"147":1}}],["h2",{"2":{"91":6}}],["h1",{"2":{"91":11}}],["hm",{"2":{"39":2}}],["h",{"2":{"34":2,"45":2,"57":8}}],["high",{"2":{"167":1}}],["highest",{"2":{"165":1}}],["hit",{"2":{"45":1,"133":5}}],["hits",{"2":{"22":1}}],["hidedecorations",{"2":{"39":2}}],["hinter",{"2":{"31":3,"41":1,"143":1,"146":1}}],["hint",{"2":{"31":3,"41":1,"146":1}}],["hinge=2",{"2":{"54":1}}],["hinge`",{"2":{"54":1}}],["hinge",{"2":{"6":1,"45":1,"55":13,"91":15}}],["hist",{"2":{"13":1}}],["histogram",{"2":{"13":1}}],["href=",{"2":{"6":2}}],["https",{"2":{"6":2,"51":1,"54":1,"55":1,"56":1,"91":2,"150":1,"152":1}}],["hcat",{"2":{"6":1}}],["heavily",{"2":{"133":1}}],["heatmap",{"2":{"13":5,"14":6,"39":2,"59":2,"121":1}}],["help",{"2":{"159":1}}],["helpers",{"0":{"45":1},"2":{"80":1,"97":1}}],["helper",{"0":{"52":1,"55":1,"57":1},"2":{"44":1,"45":1,"50":1}}],["helps",{"2":{"28":1}}],["held",{"2":{"1":1,"6":1,"133":1}}],["here",{"2":{"6":2,"9":1,"13":1,"14":1,"24":1,"40":1,"55":1,"80":1,"121":2,"124":1,"133":5,"146":1,"164":2,"168":2,"169":3}}],["hours",{"2":{"170":1}}],["hood",{"2":{"167":1}}],["hook",{"2":{"6":1,"150":1}}],["home",{"2":{"164":1}}],["horizontal",{"2":{"47":1,"55":1,"121":1,"150":1}}],["hormann",{"0":{"52":1,"55":1,"57":1},"2":{"6":2,"40":2,"45":3,"50":2,"51":1,"54":1,"56":1}}],["how",{"0":{"30":1},"2":{"6":2,"30":2,"36":1,"40":1,"45":1,"55":1,"63":1,"121":2,"128":1,"133":1,"141":1,"150":1,"164":1,"167":1,"168":2,"169":2,"170":1,"171":1}}],["however",{"2":{"3":1,"6":2,"34":1,"40":1,"44":1,"45":1,"55":1,"59":1,"63":1,"65":1,"79":1,"137":1}}],["hole",{"2":{"34":1,"37":3,"39":2,"40":9,"44":4,"45":58,"47":3,"51":6,"54":2,"57":15,"60":3,"72":1,"73":1,"74":1,"91":33,"121":5,"125":2,"163":1}}],["holes=",{"2":{"45":1}}],["holes",{"2":{"4":3,"5":1,"6":4,"9":2,"34":2,"36":1,"40":2,"44":1,"45":19,"50":4,"51":2,"54":2,"56":6,"57":29,"60":3,"63":3,"88":1,"91":11,"112":1,"121":17,"125":2,"163":4}}],["holding",{"2":{"6":1,"121":1,"133":2}}],["holds",{"2":{"6":1,"45":1,"148":1,"158":2}}],["hold",{"2":{"6":1,"121":1,"150":1,"159":1,"167":1}}],["halign",{"2":{"150":1}}],["half",{"2":{"46":2}}],["handling",{"0":{"143":1},"2":{"126":1}}],["handler",{"2":{"41":1,"143":1}}],["handle",{"2":{"31":1,"120":1,"131":2,"133":1,"164":1}}],["handled",{"2":{"22":1}}],["hail",{"2":{"125":1}}],["hao",{"2":{"91":1}}],["had",{"2":{"51":1,"54":1,"63":1,"145":1,"159":1}}],["happens",{"2":{"45":1}}],["happen",{"2":{"20":1}}],["have",{"2":{"3":3,"4":9,"6":17,"19":1,"23":1,"34":2,"37":3,"40":6,"41":1,"45":4,"55":1,"59":1,"60":2,"63":10,"91":5,"96":1,"97":3,"99":1,"100":1,"121":1,"122":1,"126":2,"128":2,"132":1,"133":4,"150":1,"152":1,"159":1,"160":1,"163":1,"164":1,"168":1,"169":1,"170":3}}],["haskey",{"2":{"160":1}}],["hash",{"2":{"121":1}}],["hasn",{"2":{"121":1}}],["hassle",{"2":{"1":1,"6":1,"155":1}}],["has",{"2":{"1":4,"6":4,"33":1,"36":2,"40":2,"45":2,"52":2,"55":1,"57":1,"59":1,"60":1,"63":11,"102":1,"120":1,"123":1,"133":4,"145":2,"154":1,"164":1}}],["bx",{"2":{"120":2}}],["b2y",{"2":{"55":4}}],["b2x",{"2":{"55":4}}],["b2",{"2":{"55":47,"60":3,"97":6}}],["b``",{"2":{"52":1}}],["b`",{"2":{"52":3,"55":4,"57":4}}],["bigger",{"2":{"45":1}}],["bit",{"2":{"25":1,"29":1,"154":8,"163":2}}],["b1y",{"2":{"55":7}}],["b1x",{"2":{"55":7}}],["b1",{"2":{"45":8,"55":63,"97":6}}],["building",{"2":{"163":1}}],["build",{"2":{"45":13,"50":1,"51":1,"54":1,"56":1,"128":3,"129":1,"145":2,"153":1,"154":1}}],["built",{"2":{"21":1,"24":1}}],["buffers",{"2":{"121":1}}],["buffered",{"2":{"41":2}}],["buffering",{"2":{"40":1,"41":1}}],["buffer",{"0":{"41":1},"2":{"31":2,"41":5,"44":2,"45":1,"122":1}}],["but",{"2":{"1":2,"3":5,"4":3,"6":15,"18":1,"22":1,"25":1,"29":1,"34":1,"36":1,"37":1,"47":1,"55":2,"57":2,"63":4,"68":2,"91":1,"96":1,"97":5,"99":1,"100":1,"103":2,"104":1,"109":1,"120":1,"121":1,"122":1,"128":1,"131":1,"133":16,"141":1,"142":1,"147":1,"150":1,"158":1,"160":2,"164":2,"165":2,"167":1,"168":1,"169":1,"170":2}}],["b>",{"2":{"6":4}}],["bloat",{"2":{"165":1}}],["block",{"2":{"163":1}}],["blob",{"2":{"6":2,"150":1}}],["blue",{"2":{"14":1,"49":1,"62":2,"65":2,"82":2,"96":2,"109":2,"169":2}}],["black",{"2":{"6":2,"49":1,"164":1}}],["breaks",{"2":{"139":1}}],["break",{"2":{"45":3,"47":1,"52":2,"63":4,"91":11,"97":1,"121":6,"139":2}}],["brevity",{"2":{"40":1}}],["br>",{"2":{"6":2}}],["broadcasting",{"2":{"6":1,"40":1}}],["broken",{"2":{"3":1,"6":1,"80":1}}],["balancing",{"2":{"133":2}}],["barrier",{"2":{"133":1}}],["barycentric",{"0":{"5":1,"38":1,"40":1},"1":{"39":1,"40":1},"2":{"0":6,"5":10,"6":17,"9":1,"31":1,"38":9,"39":4,"40":52}}],["basicsgeoms",{"2":{"133":1}}],["basic",{"2":{"121":1}}],["base",{"2":{"31":4,"40":15,"41":1,"45":2,"121":6,"133":5,"143":1,"146":2,"147":1,"158":1,"160":3}}],["based",{"2":{"4":2,"6":3,"23":1,"34":2,"37":2,"39":2,"44":1,"47":1,"60":2,"63":1,"69":1,"83":1,"91":2,"97":1,"100":1,"110":1,"158":1,"167":1,"168":1,"169":1}}],["backs",{"2":{"50":4}}],["backwards",{"2":{"45":1,"52":1,"55":1,"57":1}}],["backing",{"2":{"45":1}}],["backend",{"2":{"41":2,"160":1}}],["back",{"2":{"6":1,"18":1,"19":1,"22":1,"50":4,"160":1}}],["b",{"2":{"3":2,"4":7,"6":13,"45":206,"47":9,"51":26,"52":18,"53":3,"54":26,"55":77,"56":27,"57":39,"63":29,"91":2,"97":22,"166":1}}],["box",{"2":{"46":2,"47":3,"169":1}}],["bounaries",{"2":{"91":1}}],["bounce",{"2":{"45":8,"51":1,"52":1,"54":1,"55":1,"56":1,"57":1}}],["bouncings",{"2":{"45":1}}],["bouncing",{"2":{"45":13,"52":3,"55":4,"57":4}}],["bounday",{"2":{"91":2,"103":2,"104":2,"105":2}}],["boundaries",{"2":{"3":2,"6":2,"78":2,"82":1,"83":1,"91":1,"93":1,"94":1,"121":1}}],["boundary",{"2":{"3":7,"6":7,"59":1,"65":1,"66":1,"68":1,"69":3,"72":4,"79":2,"80":9,"83":2,"85":1,"86":6,"87":3,"91":16,"99":2,"100":4,"102":3,"103":3,"104":1,"105":1,"109":1,"110":3}}],["bound",{"2":{"53":1}}],["bounding",{"2":{"45":1,"46":2,"47":3}}],["boundscheck",{"2":{"40":14}}],["bounds",{"2":{"6":1,"121":4}}],["bold",{"2":{"41":1,"143":1,"146":1}}],["border",{"2":{"6":8}}],["both",{"2":{"3":5,"6":6,"45":2,"55":4,"56":1,"57":1,"59":1,"63":3,"66":1,"80":4,"83":1,"91":2,"97":1,"104":1,"110":1,"145":1,"147":1}}],["booltype",{"2":{"133":3,"147":1,"159":3}}],["booleans",{"2":{"45":1,"91":2}}],["boolean",{"2":{"20":2,"45":1,"52":1,"55":1,"57":1,"133":1,"159":1,"168":1}}],["boolsastypes",{"0":{"20":1,"159":1},"2":{"147":2,"159":6}}],["bools",{"2":{"10":1}}],["bool",{"2":{"3":17,"4":14,"6":40,"45":3,"63":17,"66":1,"69":1,"79":2,"80":13,"83":1,"91":2,"94":1,"97":10,"100":2,"110":1,"120":7,"121":6,"147":2,"159":2,"161":5}}],["bypred",{"2":{"171":1}}],["by",{"0":{"73":1,"74":1,"114":1},"2":{"1":3,"3":2,"4":8,"6":30,"7":1,"18":1,"20":1,"21":1,"22":2,"23":1,"25":1,"29":1,"30":1,"33":1,"34":6,"36":1,"37":1,"40":4,"41":1,"43":5,"44":4,"45":14,"46":1,"47":6,"49":1,"50":6,"51":1,"54":1,"55":5,"56":4,"57":3,"60":5,"63":8,"66":1,"68":1,"69":1,"73":2,"74":2,"75":1,"76":2,"78":1,"90":2,"91":10,"120":2,"121":4,"128":2,"133":7,"136":2,"137":1,"139":3,"141":1,"142":2,"143":1,"144":1,"146":3,"147":1,"148":1,"150":1,"151":1,"152":3,"153":1,"155":1,"163":1,"164":1,"165":1,"167":1,"168":2,"169":1,"170":2,"171":1}}],["berlin",{"2":{"170":1}}],["beed",{"2":{"165":1}}],["been",{"2":{"52":1,"121":1,"126":2,"159":1}}],["bearing",{"2":{"120":4}}],["beauty",{"2":{"9":1}}],["better",{"2":{"80":1,"133":2,"150":1}}],["between",{"2":{"4":4,"6":18,"19":1,"34":2,"40":13,"45":1,"47":18,"51":1,"52":4,"54":1,"55":11,"56":2,"57":4,"60":8,"63":1,"91":4,"97":4,"121":1,"146":3,"147":1,"151":2,"152":2,"153":1,"164":1,"168":2,"169":1}}],["because",{"2":{"45":1,"126":1,"157":1}}],["become",{"2":{"18":1}}],["being",{"2":{"34":1,"55":1,"91":1,"97":1,"137":1}}],["behind",{"2":{"25":1,"29":1,"30":1,"39":1,"126":1}}],["behaviour",{"2":{"6":1,"19":1,"22":1,"150":1}}],["best",{"2":{"23":1,"133":2,"150":1}}],["beware",{"2":{"22":1}}],["benchmarking",{"2":{"146":1,"150":1}}],["benchmarkgroup",{"2":{"146":2,"150":3}}],["benchmark",{"0":{"146":1,"150":1},"2":{"146":1,"150":1}}],["benchmarktools",{"2":{"13":1,"146":1,"150":1}}],["benchmarks",{"2":{"9":2}}],["beginning",{"2":{"47":1,"163":1}}],["begin+1",{"2":{"40":5}}],["begin",{"2":{"9":1,"40":7,"133":2,"151":1,"167":1}}],["before",{"2":{"6":4,"40":1,"51":1,"54":1,"55":1,"56":1,"150":1,"164":1}}],["below",{"2":{"6":2,"21":1,"41":1,"135":1,"152":1,"153":1,"154":1,"167":1}}],["be",{"2":{"1":7,"3":3,"4":11,"5":4,"6":65,"7":1,"9":1,"13":2,"19":2,"20":1,"24":3,"25":3,"29":3,"30":1,"34":8,"37":7,"38":2,"39":1,"40":10,"41":2,"43":1,"44":3,"45":14,"46":1,"47":2,"50":1,"51":7,"52":4,"54":7,"55":12,"56":6,"57":5,"59":2,"60":4,"63":15,"69":6,"78":2,"79":1,"83":6,"91":21,"97":2,"100":6,"110":6,"112":1,"113":1,"114":1,"115":1,"120":2,"121":1,"124":1,"125":1,"128":2,"131":2,"132":2,"133":12,"134":1,"135":3,"136":4,"137":2,"139":2,"140":1,"142":3,"143":1,"144":1,"146":8,"147":2,"150":10,"152":1,"154":3,"155":1,"159":1,"160":2,"163":2,"165":1,"168":4}}],["xticklabelsvisible",{"2":{"164":1}}],["xticklabelrotation",{"2":{"13":2}}],["xoffset",{"2":{"163":4,"165":1}}],["x=x",{"2":{"161":1}}],["x`",{"2":{"133":1}}],["xvec",{"2":{"121":4}}],["xbounds",{"2":{"121":4}}],["xhalf",{"2":{"121":3}}],["xlast",{"2":{"60":3}}],["xfirst",{"2":{"60":5}}],["x0",{"2":{"60":5}}],["xn",{"2":{"47":4}}],["xind+1",{"2":{"121":1}}],["xind",{"2":{"121":2}}],["xinterior",{"2":{"44":2}}],["xi−xi−1",{"2":{"6":1}}],["xcentroid",{"2":{"44":13}}],["xrange",{"2":{"39":3,"59":2}}],["xautolimits",{"2":{"39":2}}],["xp2",{"2":{"34":5}}],["x2",{"2":{"6":3,"40":4,"44":2,"47":18,"60":8,"80":10,"91":5,"97":4,"121":5,"147":6,"161":2}}],["x26",{"2":{"6":4,"34":2,"37":6,"40":1,"41":4,"45":58,"47":36,"51":4,"52":4,"55":24,"57":2,"60":3,"63":14,"75":2,"76":2,"80":48,"89":2,"90":2,"91":170,"97":22,"102":2,"106":2,"107":2,"116":2,"117":2,"120":4,"121":12,"135":2,"139":6,"143":2,"146":2,"152":10,"153":2,"161":4,"168":1}}],["x1",{"2":{"6":4,"40":3,"44":2,"47":22,"60":8,"80":11,"91":6,"97":5,"121":5,"147":7,"161":2}}],["xs",{"2":{"6":3,"47":4,"121":30,"161":4}}],["xmax",{"2":{"6":1,"46":2,"47":48}}],["xmin",{"2":{"6":1,"46":2,"47":49}}],["x3c",{"2":{"5":1,"6":36,"31":1,"34":4,"37":2,"40":66,"45":17,"47":11,"50":3,"51":1,"54":1,"55":6,"56":1,"59":1,"60":13,"63":2,"80":33,"91":13,"97":10,"120":1,"121":4,"125":2,"128":2,"133":19,"136":3,"139":5,"146":2,"151":2,"152":6,"153":3,"154":9,"158":4,"159":2,"171":1}}],["xy`",{"2":{"142":1}}],["xy",{"2":{"1":4,"40":1,"142":3}}],["x",{"2":{"1":4,"4":1,"6":6,"7":1,"9":5,"11":6,"13":11,"14":10,"15":4,"34":9,"37":2,"39":8,"43":1,"44":10,"45":21,"46":1,"47":8,"50":6,"52":9,"55":18,"57":9,"59":2,"60":7,"63":3,"80":21,"91":16,"97":7,"120":11,"121":2,"126":2,"133":17,"135":2,"140":2,"141":4,"142":1,"147":2,"150":2,"152":2,"154":1,"155":2,"156":2,"159":4,"161":33,"163":6,"164":2,"165":2,"168":1,"170":2}}],["=>",{"2":{"133":2}}],["=float64",{"2":{"44":3,"54":1,"56":1}}],["=false",{"2":{"34":1}}],["===",{"2":{"80":8,"120":4}}],["==",{"2":{"9":1,"23":1,"34":4,"37":2,"40":9,"41":2,"44":1,"45":34,"47":30,"52":1,"55":20,"56":2,"57":1,"59":1,"63":16,"91":44,"97":2,"120":3,"121":18,"125":1,"133":1,"135":1,"139":1,"143":1,"146":2,"150":1,"154":3}}],["=",{"2":{"1":5,"3":17,"4":7,"5":2,"6":62,"11":1,"13":19,"14":33,"15":18,"31":4,"33":4,"34":56,"36":6,"37":25,"39":35,"40":110,"41":3,"43":6,"44":36,"45":323,"46":6,"47":96,"49":7,"50":29,"51":21,"52":30,"54":18,"55":143,"56":21,"57":77,"59":15,"60":52,"62":7,"63":40,"65":7,"66":3,"68":4,"69":23,"70":3,"71":7,"72":14,"73":14,"74":4,"75":2,"76":2,"78":5,"79":3,"80":57,"82":7,"83":18,"84":3,"85":11,"86":17,"87":9,"88":3,"89":2,"90":2,"91":189,"93":3,"94":3,"96":7,"97":40,"99":3,"100":22,"101":3,"102":9,"103":14,"104":10,"105":6,"106":2,"107":2,"109":7,"110":22,"111":3,"112":11,"113":14,"114":14,"115":4,"116":2,"117":2,"120":32,"121":106,"124":2,"125":4,"126":1,"130":4,"133":90,"135":9,"138":3,"139":30,"140":1,"143":2,"145":16,"146":21,"147":18,"148":2,"149":5,"150":60,"151":11,"152":49,"153":7,"154":43,"155":2,"156":1,"158":6,"159":2,"160":3,"161":42,"163":45,"164":19,"165":13,"166":3,"167":4,"169":12,"170":6,"171":2}}],["utm",{"2":{"164":1}}],["utility",{"0":{"161":1},"2":{"40":1,"133":2}}],["utils",{"0":{"154":1},"2":{"31":1}}],["u2",{"2":{"91":4}}],["u1",{"2":{"91":4}}],["update",{"2":{"45":6,"121":10}}],["updated",{"2":{"45":6,"133":3}}],["updates",{"2":{"40":1}}],["up",{"2":{"45":2,"55":1,"91":1,"104":1,"131":1,"138":1,"152":2,"163":2}}],["upper",{"2":{"6":1,"121":1,"169":1}}],["uv",{"2":{"40":1}}],["u>",{"2":{"6":2}}],["u>geometryops",{"2":{"6":2}}],["usage",{"2":{"170":1}}],["usa",{"2":{"150":15,"170":3}}],["us",{"2":{"37":1,"164":1,"170":1}}],["ususally",{"2":{"6":1,"128":1,"133":1}}],["usually",{"2":{"30":2,"167":1}}],["usual",{"2":{"6":1,"125":1,"136":1}}],["usecases",{"2":{"25":1,"29":1}}],["uses",{"2":{"6":1,"91":1,"142":1,"146":1,"150":1,"167":1}}],["users",{"2":{"31":1,"126":1,"137":1}}],["user",{"2":{"6":12,"19":1,"44":1,"51":3,"54":3,"56":3,"151":1,"152":1,"153":1,"168":1}}],["useful",{"2":{"6":10,"40":1,"121":1,"144":1,"147":1,"150":2,"160":1}}],["used",{"2":{"1":1,"5":1,"6":8,"34":1,"37":1,"38":1,"40":1,"44":2,"45":7,"47":1,"50":1,"55":1,"59":1,"60":1,"63":1,"97":1,"121":2,"123":1,"128":1,"133":3,"147":1,"150":1,"152":2,"157":2,"158":1,"164":1,"167":1,"168":2,"169":1}}],["use",{"2":{"1":2,"4":1,"5":1,"6":9,"11":1,"19":1,"24":1,"30":1,"40":1,"45":1,"57":1,"80":2,"97":1,"121":1,"122":1,"125":1,"130":1,"133":7,"141":1,"145":1,"147":1,"150":1,"152":2,"160":3,"163":1,"167":1,"168":2,"171":2}}],["using",{"0":{"164":1},"2":{"1":4,"4":1,"5":3,"6":12,"11":4,"13":4,"14":1,"15":1,"31":7,"33":1,"34":1,"36":2,"37":2,"39":4,"40":7,"41":3,"43":2,"44":1,"45":5,"46":2,"47":1,"49":2,"50":1,"52":3,"53":1,"55":4,"57":3,"59":2,"60":2,"62":2,"63":1,"65":2,"66":1,"68":2,"69":1,"76":1,"78":2,"79":1,"80":1,"82":2,"83":1,"90":1,"91":1,"93":2,"94":1,"96":2,"97":1,"99":2,"100":1,"107":1,"109":2,"110":1,"117":1,"120":1,"121":5,"122":1,"125":1,"126":2,"131":1,"133":4,"136":1,"139":1,"140":2,"141":1,"142":1,"143":3,"145":1,"146":5,"147":1,"150":2,"152":1,"154":1,"155":4,"156":2,"160":2,"161":1,"162":4,"163":1,"165":1,"166":2,"168":1,"169":4,"170":2}}],["unnecessary",{"2":{"121":1}}],["unneeded",{"2":{"6":3,"45":1,"51":1,"54":1,"56":1}}],["until",{"2":{"121":3,"131":1,"152":1,"160":1}}],["uneeded",{"2":{"51":1,"54":1,"56":1}}],["uneccesary",{"2":{"6":3,"151":1,"152":1,"153":1}}],["unprocessed",{"2":{"45":1}}],["unknown",{"2":{"45":4,"47":15}}],["unknown=3",{"2":{"45":1}}],["unmatched",{"2":{"45":9,"47":26}}],["understand",{"2":{"157":1}}],["under",{"2":{"37":2,"167":1}}],["undergrad",{"2":{"9":1}}],["undef",{"2":{"34":2,"45":1,"151":1,"152":1,"154":2,"161":2}}],["unlike",{"2":{"22":1,"157":1}}],["unless",{"2":{"18":1,"45":1,"52":2,"55":2,"57":2}}],["unstable",{"2":{"13":1,"133":1,"159":1}}],["universal",{"2":{"164":1}}],["united",{"2":{"150":1}}],["unify",{"2":{"25":1,"29":1}}],["unique",{"2":{"6":2,"55":3,"136":2,"139":2}}],["unioning",{"2":{"57":1}}],["unionintersectingpolygons",{"2":{"0":1,"6":8,"51":1,"52":2,"54":1,"55":2,"56":1,"57":2,"136":2,"137":2,"138":1,"139":4}}],["unions",{"0":{"57":1},"2":{"22":1,"158":1}}],["union",{"0":{"56":1},"2":{"0":1,"1":2,"3":2,"4":4,"6":22,"11":3,"19":2,"31":1,"34":2,"37":1,"40":1,"44":4,"45":7,"47":1,"54":2,"56":18,"57":30,"60":1,"63":8,"71":2,"72":4,"73":1,"75":2,"76":1,"85":2,"86":6,"89":2,"90":1,"97":4,"102":2,"103":4,"104":1,"106":2,"107":1,"112":2,"113":4,"114":1,"116":2,"117":1,"120":1,"121":5,"126":1,"131":3,"133":6,"136":1,"137":1,"139":9,"147":4,"150":2,"151":3,"152":3,"153":3,"158":4,"161":1}}],["unchanged",{"2":{"1":1,"6":2,"133":1,"150":1}}],["unwrap",{"2":{"0":1,"6":3,"128":1,"133":16}}],["nselected",{"2":{"154":3}}],["nmax",{"2":{"154":2}}],["nice",{"2":{"152":1}}],["nvkelso",{"2":{"150":1}}],["null",{"2":{"146":1}}],["numeric",{"2":{"11":1}}],["numbers",{"2":{"6":1,"7":1,"38":2,"40":1,"146":1}}],["number=6",{"2":{"6":1,"149":1,"150":1}}],["number",{"2":{"6":11,"40":1,"45":2,"50":1,"59":1,"63":2,"91":2,"144":1,"145":1,"147":1,"150":2,"151":4,"152":7,"153":4,"154":12}}],["nfeature",{"2":{"133":2}}],["n+1",{"2":{"124":1}}],["nkeys",{"2":{"121":8}}],["nc",{"2":{"91":13}}],["ncoord",{"2":{"63":2}}],["nl",{"2":{"91":11}}],["nhole",{"2":{"45":2,"51":2,"54":2,"56":2,"57":1,"63":2}}],["nbpts",{"2":{"45":2}}],["nbsp",{"2":{"1":4,"3":9,"4":8,"5":3,"6":87,"128":3,"135":1,"136":4}}],["ngeom",{"2":{"44":1,"133":2,"161":1}}],["nt",{"2":{"160":2}}],["ntasks",{"2":{"133":6}}],["nthreads",{"2":{"133":3}}],["nthe",{"2":{"41":1,"143":1,"146":1}}],["ntuple",{"2":{"40":3,"147":1}}],["n2",{"2":{"40":8,"63":10}}],["n1",{"2":{"40":8,"63":9}}],["np2",{"2":{"80":4}}],["npolygon",{"2":{"52":1,"63":3,"139":2}}],["npoints",{"2":{"34":6,"45":5,"91":3,"146":6,"152":7}}],["npoint",{"2":{"6":1,"34":2,"36":1,"37":1,"47":2,"60":1,"63":6,"80":6,"91":6,"102":1,"120":2,"125":1,"146":3,"147":1,"150":14,"154":1,"161":13}}],["npts",{"2":{"45":6,"152":3}}],["np",{"2":{"37":2,"60":5}}],["n",{"2":{"6":1,"9":1,"38":2,"40":36,"41":2,"45":51,"50":10,"56":4,"57":4,"91":11,"102":2,"120":6,"121":5,"124":1,"139":25,"143":2,"146":2,"147":3,"150":2,"154":7,"161":32}}],["naive",{"2":{"53":1}}],["napts",{"2":{"45":3}}],["navigate",{"0":{"30":1}}],["natearth2",{"2":{"164":1}}],["natural",{"2":{"150":2,"164":2,"168":1}}],["naturalearth",{"2":{"11":2,"164":1}}],["nature",{"2":{"121":1}}],["native",{"2":{"6":1,"122":1,"160":4,"167":1}}],["nan",{"2":{"9":1}}],["named",{"2":{"133":1}}],["namedtuple",{"2":{"18":2,"133":2,"160":2}}],["name",{"2":{"6":1,"31":2,"150":1,"160":1,"166":1,"167":2,"170":1}}],["names",{"2":{"6":1,"31":3,"133":6,"160":1}}],["noel0",{"2":{"164":1}}],["nodestatus",{"2":{"121":6}}],["nodes",{"2":{"45":1,"121":4}}],["node",{"2":{"45":26,"121":17}}],["north",{"2":{"47":12}}],["nor",{"2":{"41":1,"143":1,"146":1}}],["normalized",{"2":{"40":1}}],["normalize",{"2":{"40":1}}],["norm",{"2":{"6":1,"40":22}}],["now",{"2":{"6":1,"13":1,"25":1,"29":1,"36":1,"39":2,"40":4,"41":1,"45":1,"50":1,"57":1,"60":1,"120":1,"121":2,"138":1,"144":1,"145":3,"146":1,"150":1,"163":5,"164":6,"165":2,"166":1,"167":3,"169":2}}],["no",{"2":{"6":6,"34":1,"40":2,"45":4,"51":1,"52":1,"54":1,"55":14,"56":1,"63":2,"69":3,"83":3,"91":2,"100":2,"102":1,"104":1,"105":2,"110":2,"112":1,"113":3,"114":3,"115":1,"121":2,"122":1,"126":1,"133":3,"144":1,"146":2,"147":1,"150":1,"160":1,"167":1}}],["nonzero",{"2":{"147":1}}],["none",{"2":{"6":4,"45":1,"50":1,"51":1,"54":1,"56":1,"57":1,"80":4,"82":1}}],["nondimensional",{"2":{"6":1,"146":1}}],["nonintersecting",{"2":{"6":1,"19":1,"136":1,"139":1}}],["non",{"2":{"3":2,"6":2,"18":1,"38":2,"45":15,"51":2,"52":1,"54":1,"55":4,"56":1,"57":2,"59":1,"97":2,"104":1,"131":1,"159":1}}],["note",{"2":{"4":4,"6":10,"23":1,"27":1,"34":1,"37":2,"40":1,"43":2,"44":2,"45":3,"47":1,"50":2,"52":3,"55":5,"57":3,"60":1,"63":5,"91":1,"96":1,"97":1,"142":1,"147":1,"151":1,"152":2,"153":1,"159":1,"164":2,"165":1}}],["not",{"0":{"122":1},"2":{"1":2,"3":8,"4":1,"6":18,"18":1,"20":1,"22":1,"23":1,"31":1,"34":4,"37":1,"40":4,"41":1,"43":1,"45":18,"50":1,"54":1,"55":7,"57":3,"62":2,"63":4,"65":2,"66":1,"68":2,"69":2,"78":1,"79":2,"83":3,"85":5,"86":3,"87":2,"88":2,"91":5,"96":1,"97":2,"100":1,"109":2,"110":2,"112":1,"120":4,"121":2,"122":1,"124":2,"131":1,"132":1,"133":10,"135":2,"138":3,"141":1,"142":1,"143":1,"144":1,"146":2,"147":1,"157":1,"158":1,"159":1,"160":2,"164":1,"165":1,"168":1}}],["nothing`",{"2":{"52":2,"55":2,"57":2}}],["nothing",{"2":{"1":34,"4":1,"6":42,"15":3,"45":4,"50":1,"52":2,"54":1,"55":2,"57":2,"63":1,"91":1,"120":9,"121":3,"124":24,"133":8,"135":1,"138":60,"143":1,"147":1,"150":2,"151":6,"152":6,"153":6,"154":1,"155":32,"161":7,"163":252,"164":16,"165":20}}],["ne",{"2":{"150":1,"164":2}}],["net",{"2":{"135":2}}],["ness",{"2":{"133":1}}],["nesting",{"2":{"131":2}}],["nestedloopfast",{"2":{"171":1}}],["nested",{"2":{"1":2,"4":1,"6":5,"22":1,"34":1,"131":2,"133":4,"150":1,"156":1}}],["never",{"2":{"131":1,"151":1}}],["neumann",{"2":{"121":1}}],["neither",{"2":{"57":1}}],["neightbor",{"2":{"45":1}}],["neighborhood",{"2":{"121":2}}],["neighbor",{"2":{"45":26}}],["neighboring",{"2":{"6":6,"45":1,"150":1,"151":1,"152":1,"153":2}}],["nearly",{"2":{"167":1}}],["nearest",{"2":{"45":1,"55":2}}],["neatly",{"2":{"21":1}}],["nedge",{"2":{"45":2,"161":13}}],["nextnode",{"2":{"121":27}}],["nextnodes",{"2":{"121":6}}],["next",{"2":{"44":1,"45":81,"47":3,"50":4,"91":14,"121":3,"139":13,"152":5}}],["necessarily",{"2":{"6":1,"120":1,"141":1}}],["necessary",{"2":{"6":1,"131":1,"150":1}}],["newfeature",{"2":{"133":2}}],["newnodes",{"2":{"121":2}}],["new",{"2":{"6":1,"41":1,"45":58,"47":9,"51":3,"52":1,"57":16,"91":2,"121":4,"132":1,"133":18,"135":2,"136":1,"137":1,"139":19,"147":8,"151":1,"152":2,"153":1,"165":1,"166":1,"170":1}}],["negative",{"2":{"4":3,"6":3,"36":2,"37":1,"38":2,"59":2,"60":3}}],["needs",{"2":{"44":1}}],["needing",{"2":{"4":1,"6":1,"21":1,"140":1}}],["need",{"2":{"1":1,"3":1,"4":2,"5":1,"6":5,"40":2,"43":1,"45":2,"52":1,"63":4,"78":1,"79":1,"91":1,"121":2,"126":1,"140":1,"154":1,"155":1,"164":1,"165":1,"171":2}}],["needed",{"2":{"1":2,"6":4,"34":1,"40":1,"45":4,"47":1,"51":1,"54":1,"56":1,"60":2,"91":5,"121":1,"133":2,"135":1,"142":3,"165":1}}],["gdal",{"2":{"167":1}}],["gml",{"2":{"167":1}}],["gpkg",{"2":{"167":3}}],["gadm",{"2":{"170":4}}],["ga",{"2":{"164":3}}],["gaps",{"2":{"121":1}}],["global",{"2":{"164":1}}],["gft",{"2":{"162":1,"164":2}}],["gc",{"2":{"135":6}}],["g",{"2":{"34":3,"37":3,"41":1,"44":3,"47":3,"60":6,"131":1,"133":6,"150":2,"161":2,"167":1}}],["gb",{"2":{"31":1,"133":10}}],["guarantee",{"2":{"23":1,"28":1}}],["guaranteed",{"2":{"1":1,"6":1,"34":1,"133":1}}],["grand",{"2":{"170":1}}],["grained",{"2":{"145":1}}],["graphics",{"2":{"6":1,"40":1}}],["great",{"2":{"163":1,"165":1,"167":1}}],["greater",{"2":{"6":1,"120":1,"147":1}}],["greiner",{"0":{"52":1,"55":1,"57":1},"2":{"45":3,"50":2,"51":1,"54":1,"56":1}}],["green",{"2":{"14":1,"164":1}}],["grouped",{"2":{"163":1}}],["groups",{"2":{"6":1,"121":1}}],["grouping",{"2":{"1":1,"6":1,"133":2}}],["grid",{"2":{"6":1,"39":1,"47":4}}],["g2",{"2":{"3":5,"6":5,"66":4,"69":12,"70":6,"71":9,"72":6,"73":6,"74":3,"75":4,"76":2,"79":3,"80":21,"83":10,"84":6,"85":10,"86":8,"87":4,"88":2,"89":4,"90":2,"100":10,"101":6,"102":10,"103":6,"104":5,"105":4,"106":4,"107":2,"110":10,"111":6,"112":9,"113":6,"114":6,"115":3,"116":4,"117":2}}],["g1",{"2":{"3":5,"4":1,"6":6,"66":4,"69":12,"70":6,"71":9,"72":6,"73":6,"74":3,"75":2,"76":4,"79":3,"80":21,"83":9,"84":6,"85":10,"86":8,"87":4,"88":2,"89":2,"90":4,"100":10,"101":6,"102":9,"103":6,"104":5,"105":4,"106":2,"107":4,"110":10,"111":6,"112":9,"113":6,"114":6,"115":3,"116":2,"117":4}}],["generic",{"2":{"18":1}}],["generation",{"2":{"150":2}}],["generated",{"2":{"31":1,"34":1,"37":1,"40":1,"41":1,"44":1,"45":1,"47":1,"50":1,"52":1,"53":1,"55":1,"57":1,"60":1,"63":1,"66":1,"76":1,"79":1,"80":1,"90":1,"91":1,"94":1,"97":1,"107":1,"117":1,"120":1,"121":1,"122":1,"125":1,"133":1,"136":1,"139":1,"140":1,"141":1,"143":1,"147":1,"150":1,"154":1,"155":1,"156":1,"160":1,"161":1,"169":1}}],["generate",{"2":{"7":1,"13":2,"150":1,"169":2}}],["generalization",{"2":{"38":1}}],["generalized",{"2":{"6":1,"38":3,"40":1}}],["generalise",{"2":{"6":4,"150":1}}],["generally",{"2":{"6":2,"160":3}}],["general",{"0":{"2":1,"4":1},"1":{"3":1,"4":1},"2":{"22":1,"24":1,"25":1,"29":1,"126":1,"143":1}}],["getfeature",{"2":{"133":5,"161":5}}],["getcolumn",{"2":{"133":4}}],["getgeom",{"2":{"75":1,"76":1,"89":1,"90":1,"97":2,"106":1,"107":1,"116":1,"117":1,"133":6,"150":3,"161":6}}],["getring",{"2":{"45":1}}],["getindex",{"2":{"40":2}}],["gethole",{"2":{"34":1,"37":1,"44":1,"45":4,"47":1,"50":1,"51":2,"54":2,"57":6,"60":1,"63":2,"91":5,"125":1,"163":1}}],["getexterior",{"2":{"34":1,"37":1,"40":1,"44":1,"45":3,"47":1,"50":1,"51":2,"54":2,"56":3,"57":6,"60":1,"63":2,"91":5,"120":1,"121":1,"125":1,"163":1}}],["getpolygon",{"2":{"52":3,"55":2,"57":2,"63":3}}],["getpoint",{"2":{"33":1,"34":5,"36":2,"37":1,"40":1,"43":1,"44":6,"45":3,"46":2,"47":3,"49":3,"59":1,"60":6,"62":4,"63":13,"65":4,"68":1,"78":1,"80":7,"82":4,"91":28,"93":2,"96":4,"97":2,"99":2,"102":2,"109":4,"120":5,"125":3,"145":4,"147":2,"154":1,"161":3,"163":2}}],["getproperty",{"2":{"13":2,"14":1}}],["get",{"2":{"6":1,"13":1,"36":1,"41":1,"45":9,"51":1,"52":1,"54":1,"55":2,"56":2,"121":4,"133":4,"143":1,"146":3,"150":1,"151":1,"153":1,"154":2,"160":5,"161":1,"163":2,"170":2}}],["geoparquet",{"2":{"167":4}}],["geopoly1",{"2":{"165":1,"166":1}}],["geopoly2",{"2":{"165":1,"166":1}}],["geoaxis",{"2":{"164":4}}],["geographic",{"2":{"164":1,"167":1}}],["geographiclib",{"2":{"6":1,"146":1}}],["geointeface",{"2":{"131":1}}],["geointerace",{"2":{"18":1}}],["geointerfacemakie",{"2":{"149":1,"169":1,"170":1}}],["geointerface",{"0":{"28":1},"2":{"1":20,"3":9,"4":2,"6":41,"11":1,"13":1,"14":1,"15":1,"18":3,"25":1,"28":1,"29":1,"31":7,"33":1,"34":1,"36":1,"37":1,"40":23,"43":1,"44":1,"45":1,"46":1,"47":1,"49":1,"50":1,"51":1,"54":1,"55":1,"56":1,"59":1,"60":11,"62":1,"63":2,"65":1,"66":2,"68":1,"69":2,"78":1,"79":2,"80":1,"82":1,"83":3,"93":1,"94":2,"96":1,"97":2,"99":1,"100":2,"109":1,"110":2,"120":5,"121":1,"124":9,"128":3,"131":3,"133":6,"135":1,"136":1,"138":23,"140":1,"142":2,"145":1,"146":1,"149":1,"150":2,"155":13,"156":1,"161":1,"162":1,"163":122,"164":5,"165":9,"169":1,"170":1}}],["geo",{"2":{"121":1,"146":4,"164":2}}],["geotable",{"2":{"27":1}}],["geojson",{"2":{"11":1,"150":5,"162":1,"164":4,"167":3}}],["geodataframes",{"2":{"167":3}}],["geod",{"2":{"6":2,"146":3}}],["geodesic`",{"2":{"146":2}}],["geodesic",{"2":{"6":5,"31":1,"145":6,"146":8,"147":1}}],["geodesicsegments",{"2":{"0":1,"6":2,"144":1,"145":3,"146":6,"147":2}}],["geoformattypes",{"2":{"1":2,"142":2,"162":1,"164":2,"165":8}}],["geomakie",{"0":{"164":1},"2":{"162":2,"164":5}}],["geomfromgeos",{"2":{"146":1}}],["geomtype",{"2":{"133":2}}],["geoms",{"2":{"6":1,"91":1,"128":1,"133":18}}],["geometies",{"2":{"3":1,"6":1,"99":1,"100":1}}],["geometrie",{"2":{"86":1}}],["geometries",{"0":{"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"107":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"163":1,"164":1,"165":1},"2":{"1":6,"3":8,"4":14,"6":61,"18":3,"22":3,"24":1,"25":2,"27":4,"29":2,"33":1,"34":3,"37":4,"44":1,"47":2,"50":1,"51":5,"54":5,"55":4,"56":5,"59":1,"60":4,"62":1,"63":7,"66":1,"68":1,"69":1,"80":2,"83":2,"91":1,"93":1,"94":1,"96":2,"97":3,"99":2,"100":2,"110":2,"112":1,"126":1,"128":4,"130":1,"132":2,"133":13,"140":1,"142":2,"144":3,"145":1,"146":4,"147":1,"148":1,"151":1,"152":1,"153":1,"156":1,"161":1,"162":5,"164":1,"165":2,"166":2,"167":1,"168":5,"169":1,"171":1}}],["geometrical",{"2":{"168":1}}],["geometric",{"2":{"25":2,"29":2,"43":1}}],["geometry=",{"2":{"166":1}}],["geometryof",{"2":{"133":1}}],["geometryopsprojext",{"2":{"142":1,"143":1,"146":1,"147":1}}],["geometryopslibgeosext",{"2":{"41":1}}],["geometryops",{"0":{"0":1,"29":1,"31":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":115,"1":6,"3":18,"4":9,"5":3,"6":112,"7":2,"11":1,"13":1,"14":1,"15":1,"21":2,"25":1,"29":1,"30":4,"31":1,"33":1,"36":1,"39":5,"41":1,"43":1,"46":1,"49":1,"50":1,"51":1,"54":1,"55":1,"56":1,"59":1,"62":1,"63":1,"65":1,"66":2,"68":1,"69":2,"78":1,"79":2,"80":2,"82":1,"83":2,"93":1,"94":1,"96":1,"97":1,"99":1,"100":2,"109":1,"110":2,"120":3,"121":2,"124":1,"128":4,"133":1,"135":1,"136":4,"138":1,"143":1,"145":1,"146":2,"149":1,"150":2,"155":1,"157":1,"160":2,"161":1,"162":1,"163":3,"168":1,"169":2,"170":2}}],["geometrybasics",{"2":{"31":3,"39":2,"40":10,"59":1,"69":1,"100":1,"110":1}}],["geometrycolumns",{"2":{"133":3}}],["geometrycollections",{"2":{"168":1}}],["geometrycollection",{"2":{"19":1,"170":1}}],["geometrycollectiontrait",{"2":{"19":1,"75":1,"76":1,"89":1,"90":1,"106":1,"107":1,"116":1,"117":1}}],["geometrycorrections",{"2":{"135":1}}],["geometrycorrection",{"2":{"0":1,"6":11,"125":2,"134":2,"135":13,"136":11,"139":4}}],["geometry",{"0":{"2":1,"54":1,"75":2,"76":2,"89":2,"90":2,"106":2,"107":2,"116":2,"117":2,"134":1,"142":1,"148":1,"162":1,"166":1},"1":{"3":1,"4":1,"135":1,"136":1,"143":1,"149":1,"150":1,"163":1,"164":1,"165":1,"166":1,"167":1},"2":{"1":10,"3":23,"4":12,"6":69,"9":1,"11":2,"19":3,"22":4,"24":1,"27":1,"31":1,"34":7,"37":4,"41":4,"44":3,"46":1,"47":4,"50":4,"59":4,"60":6,"63":8,"65":5,"66":2,"68":4,"69":5,"70":4,"71":1,"75":3,"76":4,"78":4,"79":4,"80":3,"82":2,"83":5,"84":4,"85":2,"86":1,"89":3,"90":4,"91":2,"93":2,"97":3,"99":2,"100":3,"101":4,"102":2,"106":3,"107":4,"109":4,"110":5,"111":4,"116":3,"117":4,"119":1,"124":1,"125":1,"126":3,"128":2,"131":2,"133":42,"134":2,"135":23,"136":6,"140":1,"141":1,"142":6,"144":3,"145":1,"146":5,"147":8,"150":6,"161":6,"163":1,"164":1,"165":4,"166":2,"167":2,"168":1,"169":7,"170":4,"171":2}}],["geom2",{"2":{"3":8,"4":1,"6":9,"60":6,"63":1,"80":6,"83":1,"94":3,"97":6,"100":1,"110":2}}],["geom1",{"2":{"3":8,"4":1,"6":9,"60":6,"63":1,"80":4,"83":1,"94":3,"97":6,"100":1,"110":2}}],["geom",{"2":{"1":7,"4":21,"6":48,"22":3,"31":12,"34":25,"37":17,"44":28,"45":16,"47":6,"50":15,"51":8,"52":2,"54":12,"55":10,"56":9,"57":9,"60":28,"63":45,"69":4,"80":1,"83":4,"91":3,"97":1,"100":4,"110":4,"120":3,"121":1,"126":2,"128":3,"133":91,"139":11,"141":4,"147":13,"150":36,"154":3,"155":7,"156":4,"161":13,"170":6}}],["geospatial",{"0":{"165":1,"167":1},"2":{"162":5,"164":1,"165":3,"167":5}}],["geoscontext",{"2":{"146":1}}],["geosdensify",{"2":{"146":3}}],["geos",{"0":{"160":1},"2":{"0":1,"6":5,"41":4,"148":5,"150":2,"157":1,"160":12}}],["got",{"2":{"154":3}}],["goes",{"2":{"6":2,"120":2}}],["good",{"2":{"6":1,"40":1,"160":2,"165":1}}],["going",{"2":{"4":4,"6":5,"47":2,"63":5,"120":1,"121":1,"162":1}}],["go",{"2":{"1":5,"3":17,"4":2,"6":43,"11":9,"13":1,"14":1,"15":6,"22":1,"31":2,"33":1,"36":1,"40":1,"43":2,"46":1,"49":2,"50":2,"51":2,"54":2,"55":2,"56":2,"59":6,"62":1,"63":2,"65":2,"66":2,"68":1,"69":2,"78":2,"79":2,"80":1,"82":1,"83":2,"93":1,"94":2,"96":1,"97":2,"99":1,"100":2,"109":2,"110":2,"120":6,"121":2,"124":3,"126":1,"128":1,"133":3,"138":3,"145":7,"146":8,"149":2,"150":49,"155":3,"160":1,"161":2,"162":1,"163":3,"165":1,"167":1,"168":9,"169":2,"170":5,"171":1}}],["gtrait",{"2":{"60":2}}],["gt",{"2":{"1":1,"6":2,"9":2,"10":1,"11":5,"45":3,"120":3}}],["gif",{"2":{"152":1}}],["githack",{"2":{"150":1}}],["github",{"2":{"6":2}}],["gives",{"2":{"170":1}}],["give",{"2":{"91":1,"167":1}}],["given",{"2":{"4":7,"6":21,"22":2,"27":1,"33":1,"34":1,"37":2,"44":3,"45":8,"47":3,"50":5,"51":1,"52":2,"54":1,"55":2,"56":1,"57":2,"60":8,"63":4,"65":1,"66":1,"69":1,"78":1,"79":1,"83":1,"91":7,"93":1,"94":1,"100":1,"102":1,"110":1,"126":1,"135":4,"136":1,"138":1,"144":2,"146":2,"147":2,"153":1}}],["gis",{"2":{"5":1,"6":1,"25":1,"29":1,"40":1}}],["gi",{"2":{"1":13,"3":42,"4":31,"6":124,"11":8,"13":15,"14":15,"15":8,"22":2,"31":1,"33":3,"34":30,"36":5,"37":21,"39":1,"43":5,"44":38,"45":34,"46":5,"47":17,"49":6,"50":13,"51":19,"52":16,"54":25,"55":24,"56":17,"57":36,"59":8,"60":42,"62":7,"63":99,"65":7,"66":3,"68":3,"69":4,"70":6,"71":12,"72":10,"73":7,"74":4,"75":8,"76":6,"78":3,"79":3,"80":21,"82":7,"83":2,"84":3,"85":12,"86":14,"87":4,"88":2,"89":8,"90":6,"91":59,"93":5,"94":3,"96":7,"97":51,"99":5,"100":3,"101":6,"102":15,"103":10,"104":7,"105":4,"106":8,"107":6,"109":7,"110":2,"111":6,"112":12,"113":10,"114":7,"115":4,"116":8,"117":6,"120":32,"121":15,"124":2,"125":10,"126":4,"128":2,"133":111,"135":9,"138":3,"139":8,"140":1,"141":5,"145":6,"146":6,"147":12,"149":2,"150":34,"154":4,"155":9,"156":5,"158":9,"161":55,"162":1,"163":21,"164":2,"165":2,"169":5,"170":2}}],["o",{"2":{"133":24}}],["odd",{"2":{"91":1}}],["own",{"2":{"57":1,"126":2}}],["occur",{"2":{"55":1}}],["occurs",{"2":{"55":1}}],["occupied",{"2":{"36":1}}],["old",{"2":{"45":8,"133":3}}],["ourselves",{"2":{"146":1}}],["our",{"2":{"20":1,"146":1,"163":4,"164":3,"169":1}}],["out=3",{"2":{"91":1}}],["out=4",{"2":{"54":1}}],["out`",{"2":{"54":1,"91":1}}],["out",{"2":{"6":3,"45":12,"47":23,"55":6,"57":4,"59":5,"69":4,"80":1,"83":3,"91":102,"97":2,"100":4,"110":4,"120":1,"133":1,"147":1,"160":2}}],["outside",{"2":{"3":2,"4":1,"6":3,"45":3,"47":1,"52":2,"55":4,"57":3,"59":2,"60":1,"68":1,"79":1,"82":1,"91":12,"97":3,"115":1}}],["outputs",{"2":{"45":1}}],["output",{"2":{"3":8,"4":1,"6":18,"19":1,"22":1,"50":2,"51":1,"54":1,"55":1,"56":1,"57":2,"63":1,"66":1,"69":1,"79":1,"83":1,"94":1,"97":1,"100":1,"110":1,"120":2,"150":1,"154":1,"161":1}}],["outermost",{"2":{"133":1}}],["outer",{"2":{"1":1,"6":1,"131":1,"133":2,"168":1,"169":1}}],["omit",{"2":{"6":1,"146":1}}],["obtain",{"2":{"133":1}}],["obtained",{"2":{"19":1}}],["observable",{"2":{"14":2}}],["obs",{"2":{"14":10}}],["obviously",{"2":{"4":1,"6":1,"140":1}}],["objects",{"2":{"1":4,"4":1,"6":17,"128":3,"131":5,"133":8,"140":1,"144":1,"150":2,"156":1}}],["object",{"2":{"1":4,"4":1,"5":1,"6":8,"24":1,"40":1,"59":1,"91":4,"128":1,"131":5,"133":3,"140":1,"142":3,"146":1,"150":1,"156":1}}],["obj",{"2":{"1":4,"4":1,"6":17,"128":3,"133":10,"140":1,"141":2,"146":3,"150":3,"155":1,"156":1}}],["others",{"2":{"41":1,"139":1}}],["otherwise",{"2":{"4":2,"6":3,"41":1,"45":1,"52":1,"55":1,"60":2,"121":1,"141":1,"143":1,"146":1,"161":1}}],["other",{"0":{"4":1,"6":1},"2":{"3":4,"6":12,"34":1,"45":5,"51":1,"54":1,"55":1,"56":2,"57":3,"60":2,"63":2,"65":1,"71":1,"91":8,"93":1,"96":1,"97":4,"99":2,"100":2,"103":1,"112":1,"121":1,"128":1,"131":1,"133":1,"136":2,"137":1,"139":2,"150":2,"152":2,"157":1,"158":1,"160":1,"164":1,"168":1,"171":1}}],["ogc",{"0":{"3":1}}],["over=3",{"2":{"54":1}}],["over`",{"2":{"54":1}}],["overflow",{"2":{"50":1}}],["overhead",{"2":{"18":1,"133":2}}],["override",{"2":{"6":1,"40":1}}],["overlapping",{"2":{"45":11,"55":4,"57":6}}],["overlap",{"2":{"3":4,"6":4,"9":1,"45":2,"55":8,"57":2,"69":1,"78":1,"91":2,"96":5,"97":6,"110":1,"137":1}}],["overlaps",{"0":{"95":1,"96":1},"1":{"96":1,"97":1},"2":{"0":10,"3":5,"6":13,"31":1,"55":1,"95":1,"96":3,"97":30,"121":1,"168":1}}],["over",{"2":{"1":1,"6":3,"36":2,"37":1,"44":3,"45":5,"47":1,"54":1,"55":11,"57":1,"69":1,"80":1,"83":1,"91":15,"97":2,"100":1,"110":1,"133":22,"163":3}}],["ops",{"2":{"133":1}}],["optimisation",{"2":{"91":1}}],["optimise",{"2":{"80":1}}],["options",{"2":{"14":1,"45":1}}],["optional",{"2":{"4":5,"6":6,"34":1,"37":2,"47":1,"60":2}}],["open",{"2":{"45":1,"124":1,"164":1}}],["operates",{"2":{"123":1,"133":1,"137":1}}],["operate",{"2":{"22":1,"27":1,"133":1}}],["operations",{"0":{"19":1},"2":{"19":1,"30":1,"55":1,"57":1,"126":1}}],["operation",{"2":{"6":3,"45":1,"126":1,"136":2,"139":2,"160":2}}],["opposite",{"2":{"3":5,"6":5,"45":2,"52":1,"55":2,"57":1,"66":2,"69":1,"79":2,"94":2,"110":1}}],["op",{"2":{"1":3,"6":3,"23":2,"44":1,"133":35}}],["on=2",{"2":{"91":1}}],["on`",{"2":{"91":1}}],["once",{"2":{"80":1,"97":1,"121":1}}],["onto",{"2":{"60":1}}],["ones",{"2":{"138":1}}],["oneunit",{"2":{"40":1}}],["one",{"2":{"1":1,"3":9,"6":14,"19":1,"34":4,"37":2,"39":1,"40":1,"44":1,"45":5,"47":3,"51":1,"52":1,"54":1,"55":32,"56":2,"57":2,"59":2,"68":1,"75":1,"80":1,"82":1,"91":18,"96":1,"97":18,"99":2,"100":2,"103":3,"104":2,"105":2,"106":1,"107":1,"109":1,"110":1,"116":1,"120":1,"121":5,"133":1,"138":1,"142":1,"146":1,"154":1,"155":1,"164":1,"168":1}}],["on",{"0":{"164":1},"2":{"1":2,"4":3,"6":11,"9":1,"19":2,"22":1,"24":1,"25":3,"27":2,"29":3,"34":5,"37":3,"39":1,"40":2,"44":3,"45":28,"47":8,"50":1,"51":1,"52":5,"54":1,"55":4,"56":1,"57":2,"59":1,"60":3,"63":2,"68":1,"69":7,"71":2,"72":3,"73":3,"74":1,"80":4,"83":6,"85":4,"86":1,"87":1,"91":125,"97":9,"100":7,"102":2,"110":7,"112":2,"113":1,"114":1,"121":3,"123":1,"125":1,"126":1,"128":1,"133":15,"136":1,"137":1,"144":1,"146":1,"152":1,"159":2,"162":1,"164":3,"165":1,"167":1,"168":4,"169":1,"170":2,"171":2}}],["only",{"2":{"0":1,"5":1,"6":10,"19":1,"37":2,"39":2,"40":1,"41":1,"44":2,"45":4,"47":3,"50":1,"51":1,"54":1,"55":1,"56":1,"60":2,"63":3,"96":3,"97":1,"99":1,"121":2,"133":2,"138":1,"144":1,"145":1,"147":2,"157":1,"160":2,"165":1,"170":1,"171":1}}],["often",{"2":{"164":1}}],["offers",{"2":{"163":1}}],["offer",{"2":{"146":1}}],["offset",{"2":{"34":8,"63":1}}],["off",{"2":{"4":1,"6":1,"45":4,"63":1,"91":6,"133":1}}],["of",{"2":{"1":7,"3":29,"4":66,"5":5,"6":193,"7":2,"9":4,"18":1,"19":2,"20":2,"21":3,"22":5,"23":1,"24":2,"25":1,"27":3,"29":1,"30":1,"33":1,"34":38,"36":5,"37":28,"38":9,"39":1,"40":13,"41":1,"43":3,"44":12,"45":84,"46":5,"47":31,"50":5,"51":12,"52":13,"54":10,"55":48,"56":9,"57":20,"59":6,"60":18,"62":2,"63":19,"65":4,"66":5,"68":6,"69":18,"71":1,"72":5,"73":5,"74":1,"75":2,"76":1,"79":5,"80":1,"82":3,"83":14,"85":1,"86":1,"87":1,"89":2,"90":1,"91":85,"93":1,"94":3,"96":1,"97":13,"99":2,"100":15,"102":3,"103":7,"104":5,"105":1,"106":2,"107":1,"109":4,"110":18,"112":3,"113":6,"114":6,"115":4,"116":1,"117":1,"119":2,"120":3,"121":19,"122":2,"123":1,"124":1,"126":3,"128":1,"131":5,"132":2,"133":26,"136":2,"137":4,"139":4,"141":3,"142":1,"144":2,"145":2,"146":5,"147":2,"150":8,"152":4,"153":2,"154":1,"156":1,"158":2,"160":4,"161":2,"163":6,"164":4,"165":2,"166":1,"167":4,"168":3,"169":4,"170":2}}],["org",{"2":{"51":1,"54":1,"56":1,"91":2,"152":1}}],["organise",{"2":{"10":1}}],["orange",{"2":{"49":1,"59":1,"62":2,"65":2,"82":2,"96":2,"109":2}}],["oroginal",{"2":{"133":2}}],["oro",{"2":{"11":2}}],["originate",{"2":{"57":1}}],["originals",{"2":{"18":1}}],["original",{"2":{"6":4,"18":1,"22":1,"45":9,"50":5,"51":1,"54":1,"57":4,"131":1,"133":1,"135":1,"141":2,"147":1,"149":4,"150":1}}],["orignal",{"2":{"45":1}}],["orient",{"0":{"13":1},"1":{"14":1,"15":1},"2":{"13":7,"14":12,"45":15,"55":53}}],["orientation",{"0":{"118":1},"1":{"119":1,"120":1},"2":{"6":2,"10":1,"31":1,"37":1,"45":10,"47":2,"51":1,"54":2,"55":2,"56":1,"91":16,"119":1,"150":1}}],["ordered",{"2":{"36":1}}],["order",{"2":{"1":4,"3":1,"4":2,"6":6,"34":1,"36":1,"37":2,"40":1,"45":4,"55":1,"57":1,"60":2,"63":3,"66":1,"69":1,"79":1,"94":1,"133":2,"142":2,"150":1,"168":1}}],["or",{"0":{"20":1},"2":{"1":11,"3":3,"4":10,"6":53,"18":1,"19":1,"22":1,"24":1,"25":1,"27":2,"29":1,"31":1,"34":4,"37":1,"40":1,"41":1,"43":2,"44":4,"45":24,"46":1,"50":1,"51":1,"52":3,"54":2,"55":9,"56":1,"57":2,"59":2,"60":4,"63":3,"65":1,"69":1,"71":2,"72":1,"73":1,"74":1,"75":1,"76":1,"82":2,"85":2,"86":3,"87":2,"88":1,"89":1,"90":1,"91":26,"93":2,"94":1,"96":1,"97":2,"99":1,"100":1,"106":1,"107":1,"110":1,"112":2,"116":1,"117":1,"119":2,"120":3,"121":7,"123":1,"125":1,"126":3,"128":1,"130":2,"132":1,"133":9,"135":5,"136":2,"142":2,"143":1,"144":2,"146":2,"147":2,"148":1,"150":3,"152":2,"154":2,"156":1,"158":3,"161":2,"168":1,"170":2}}],["est",{"2":{"170":1}}],["essentially",{"2":{"158":1}}],["especially",{"2":{"6":1,"19":1,"22":1,"121":1}}],["effects",{"2":{"133":3}}],["efficiently",{"2":{"24":1}}],["efficient",{"2":{"6":1,"40":1,"51":2,"54":2,"56":2,"125":1}}],["e2",{"2":{"91":4}}],["e1",{"2":{"91":8}}],["euclid",{"2":{"47":2,"60":11,"91":1,"151":1}}],["euclidean",{"2":{"4":1,"6":1,"40":13,"60":6,"147":1}}],["everything",{"2":{"150":1}}],["every",{"2":{"45":1,"63":2,"131":1,"160":1}}],["evenly",{"2":{"169":1}}],["eventually",{"2":{"45":1}}],["even",{"2":{"37":2,"47":1,"55":1,"60":1,"63":1,"124":1,"126":1,"137":1}}],["evaluated",{"2":{"168":1}}],["eval",{"2":{"31":2,"133":2}}],["epsg",{"2":{"164":5,"165":8}}],["eps",{"2":{"34":2,"55":14}}],["eponymous",{"2":{"6":1,"146":1}}],["e",{"2":{"9":1,"18":1,"41":1,"121":1,"131":1,"133":2,"163":2,"164":1,"167":1}}],["eltype",{"2":{"121":4}}],["elements",{"2":{"75":1,"76":1,"89":1,"90":1,"97":1,"106":1,"107":1,"116":1,"117":1}}],["element",{"2":{"6":6,"33":1,"45":4,"50":2,"51":1,"54":1,"55":1,"56":3,"145":1,"164":1}}],["elsewhere",{"2":{"50":1}}],["elseif",{"2":{"45":5,"47":7,"51":1,"54":1,"55":14,"56":2,"57":1,"80":3,"91":10,"120":1,"121":2,"139":1,"152":2,"154":2}}],["else",{"2":{"3":6,"6":6,"34":1,"40":2,"45":19,"47":9,"50":1,"52":2,"55":9,"56":1,"57":9,"80":2,"91":17,"97":8,"121":20,"125":1,"133":8,"141":1,"143":1,"150":2,"152":4,"154":2,"155":1,"156":1,"160":1}}],["etc",{"2":{"6":1,"24":2,"36":1,"158":1,"167":1}}],["emtpty",{"2":{"121":1}}],["empty",{"2":{"4":2,"6":6,"34":2,"45":2,"51":1,"54":1,"55":2,"56":1,"121":1}}],["embedding",{"0":{"132":1,"140":1}}],["embedded",{"0":{"165":1},"2":{"121":1,"132":3,"162":1,"165":1}}],["embed",{"2":{"0":2,"4":1,"6":1,"132":1,"140":2}}],["errors",{"2":{"31":1,"55":1,"147":1}}],["error",{"0":{"143":1},"2":{"4":1,"6":4,"7":1,"22":1,"31":6,"40":1,"41":4,"45":2,"53":1,"55":2,"63":2,"121":1,"131":1,"135":2,"143":3,"146":5,"154":4,"160":3,"161":1}}],["edgekeys",{"2":{"121":3}}],["edge",{"2":{"3":1,"4":3,"6":4,"24":1,"31":1,"37":1,"43":1,"45":25,"47":13,"51":1,"54":1,"55":6,"56":1,"60":4,"63":1,"71":2,"86":2,"87":1,"91":7,"97":21,"112":2,"113":1,"114":1,"121":7,"161":2}}],["edges`",{"2":{"55":1}}],["edges",{"2":{"0":1,"4":2,"6":9,"45":12,"47":8,"52":3,"55":10,"57":3,"60":3,"62":2,"63":1,"65":1,"71":1,"72":3,"73":7,"74":3,"82":1,"85":3,"88":1,"91":3,"97":20,"109":1,"112":1,"121":22,"161":29}}],["earlier",{"2":{"163":3}}],["earth",{"2":{"6":2,"25":1,"29":1,"146":2,"150":2,"164":2,"168":1}}],["easiest",{"2":{"166":1}}],["easier",{"2":{"157":1,"159":1}}],["easily",{"2":{"126":1}}],["east",{"2":{"47":9}}],["easy",{"2":{"1":1,"6":1,"137":1,"155":1}}],["eachindex",{"2":{"34":1,"120":1,"121":3,"133":2,"151":1,"154":1}}],["each",{"2":{"3":2,"4":3,"6":6,"9":1,"22":2,"24":1,"34":4,"37":2,"38":4,"40":1,"45":5,"47":1,"55":3,"60":1,"63":2,"69":1,"83":1,"91":6,"96":1,"97":3,"100":1,"110":1,"120":1,"121":1,"133":1,"137":2,"150":1,"166":1,"167":1,"169":2,"170":2,"171":1}}],["equatorial",{"2":{"6":6,"146":4}}],["equality",{"2":{"45":1,"55":1,"168":1}}],["equal",{"2":{"3":2,"4":16,"6":19,"34":6,"55":1,"59":1,"60":4,"62":3,"63":22,"71":1,"85":1,"91":15,"96":1,"97":2,"102":2,"112":1,"124":1}}],["equals",{"0":{"61":1,"62":1},"1":{"62":1,"63":1},"2":{"0":17,"4":3,"6":19,"31":1,"34":2,"45":4,"50":2,"55":8,"60":1,"61":1,"62":2,"63":50,"71":1,"85":1,"91":10,"97":2,"102":3,"112":1,"168":1}}],["equivalent",{"2":{"3":1,"4":4,"6":6,"37":1,"45":1,"55":1,"57":1,"63":5,"69":1,"91":1}}],["enable",{"2":{"171":1}}],["enabled",{"2":{"168":1}}],["enabling",{"0":{"171":1}}],["enclosed",{"2":{"91":1}}],["encompasses",{"2":{"22":1,"91":1}}],["encounters",{"2":{"22":1}}],["encode",{"2":{"20":1}}],["en",{"2":{"91":1,"152":1}}],["envelope",{"2":{"55":2}}],["envelopes",{"2":{"55":2}}],["enough",{"2":{"45":1}}],["entirely",{"2":{"91":1}}],["entire",{"2":{"47":1,"91":4}}],["entry",{"2":{"45":11,"52":3,"55":4,"57":3,"121":1}}],["ent",{"2":{"45":19,"50":2}}],["enter",{"2":{"45":4}}],["ensuring",{"2":{"6":1,"144":1,"147":1}}],["ensure",{"2":{"6":3,"40":1,"51":1,"54":1,"56":1,"123":2,"134":1}}],["ensures",{"2":{"6":3,"125":1,"136":3,"139":2}}],["enumerate",{"2":{"13":2,"34":1,"45":10,"47":1,"50":1,"52":1,"57":2,"91":1,"121":2,"139":2,"154":1}}],["enum",{"2":{"6":2,"45":3,"54":3,"91":3}}],["endpt",{"2":{"152":3}}],["endpoints",{"2":{"45":3,"47":1,"52":1,"55":6,"57":1,"60":2,"91":11,"97":2,"99":1}}],["endpoint=3",{"2":{"45":1}}],["endpointtype",{"2":{"45":2}}],["endpoint",{"2":{"3":1,"6":2,"45":27,"54":1,"55":16,"60":2,"68":1,"91":3,"97":2,"150":4,"152":4,"163":1}}],["ending",{"2":{"45":1,"47":1}}],["end",{"2":{"1":1,"6":1,"9":1,"13":4,"14":3,"31":4,"34":18,"37":8,"40":35,"41":3,"44":10,"45":130,"47":43,"50":9,"51":8,"52":12,"53":1,"54":5,"55":31,"56":6,"57":24,"60":19,"63":20,"75":2,"76":2,"80":20,"89":2,"90":2,"91":104,"97":21,"102":1,"106":2,"107":2,"112":1,"116":2,"117":2,"120":9,"121":44,"122":4,"123":1,"125":5,"126":1,"133":49,"135":3,"139":18,"141":4,"142":1,"143":2,"146":8,"147":8,"150":7,"151":6,"152":30,"153":3,"154":27,"155":4,"156":4,"158":1,"159":3,"160":4,"161":19}}],["enforce",{"2":{"0":1,"6":2,"160":3}}],["exits",{"2":{"45":1}}],["exit",{"2":{"45":32,"50":2,"52":3,"55":3,"57":2}}],["existingnodes",{"2":{"121":3}}],["existing",{"2":{"45":3,"56":1,"121":1,"164":2,"166":1}}],["exists",{"2":{"45":1,"47":1,"55":1}}],["exist",{"2":{"6":1,"45":1,"55":3,"160":1}}],["excluding",{"2":{"88":1,"91":1,"112":2}}],["exclude",{"2":{"80":9}}],["exclusively",{"2":{"104":1}}],["exclusive",{"2":{"47":1,"55":2}}],["exc",{"2":{"41":2,"143":2,"146":2}}],["except",{"2":{"22":1,"23":1}}],["excellent",{"2":{"19":1}}],["excess",{"2":{"5":1,"6":1,"40":1}}],["exp10",{"2":{"146":1,"150":2}}],["expressed",{"2":{"38":2}}],["express",{"2":{"38":1}}],["experimental",{"2":{"31":3}}],["expect",{"2":{"1":1,"93":1,"142":1}}],["explicity",{"2":{"63":1}}],["explicitly",{"2":{"6":1,"20":1,"22":1,"34":2,"37":1,"40":1,"41":1,"60":2,"143":1,"146":1,"147":1}}],["explain",{"2":{"30":1}}],["explanations",{"2":{"30":3}}],["export",{"2":{"38":1,"144":1,"165":1,"167":1}}],["exposes",{"2":{"21":1}}],["exponential",{"2":{"9":1}}],["ext2",{"2":{"91":3}}],["ext1",{"2":{"91":3}}],["ext",{"2":{"39":15,"45":10,"47":2,"50":3,"51":8,"54":8,"55":18,"56":8,"57":14,"80":7,"91":7}}],["extrema",{"2":{"121":1,"161":1}}],["extreem",{"2":{"34":10}}],["extract",{"2":{"121":1,"133":3,"150":1}}],["extra",{"2":{"6":3,"45":1,"56":1,"144":1,"146":2,"147":1}}],["external",{"2":{"37":1,"91":2}}],["exteriors",{"2":{"9":1,"54":2,"56":2,"121":1}}],["exterior",{"2":{"3":4,"4":2,"6":10,"34":1,"36":1,"37":1,"39":1,"40":36,"44":2,"45":4,"51":2,"56":3,"57":14,"60":1,"63":2,"65":1,"66":1,"69":3,"79":1,"83":2,"91":9,"100":2,"109":1,"110":3,"113":3,"114":3,"120":6,"121":6,"125":3,"134":1,"136":1,"140":1,"163":2}}],["extending",{"2":{"97":1}}],["extended",{"2":{"60":1}}],["extensions",{"2":{"167":1}}],["extension",{"2":{"1":1,"6":1,"40":1,"41":1,"68":1,"122":1,"142":3,"143":2,"146":1,"147":1,"148":1,"167":1}}],["extent=true",{"2":{"140":1}}],["extent=nothing",{"2":{"133":1}}],["extent=",{"2":{"133":3}}],["extent=false",{"2":{"133":1,"150":1}}],["extent=gi",{"2":{"121":3}}],["extent`",{"2":{"130":1,"140":1}}],["extents",{"2":{"4":3,"6":3,"31":5,"47":1,"55":3,"91":5,"97":1,"121":3,"133":2,"140":2,"161":2}}],["extent",{"0":{"140":1},"2":{"0":2,"1":4,"4":3,"6":11,"20":1,"31":2,"39":1,"46":1,"47":1,"55":10,"91":4,"97":2,"121":12,"130":3,"132":4,"133":28,"140":2,"150":1,"159":1,"161":7}}],["exactly",{"2":{"154":1}}],["exactpredicates",{"2":{"7":1,"13":2,"14":2,"31":1}}],["exact",{"2":{"3":5,"6":5,"7":2,"12":1,"13":1,"45":36,"47":6,"50":7,"51":5,"53":1,"54":5,"55":7,"56":5,"57":7,"66":2,"69":3,"71":1,"72":3,"73":3,"74":1,"79":2,"80":1,"83":2,"85":1,"86":3,"87":2,"88":1,"91":24,"94":2,"97":3,"100":2,"102":1,"103":3,"104":1,"105":1,"110":3,"112":1,"113":3,"114":3,"115":1,"121":1,"138":1}}],["examples",{"0":{"145":1,"149":1},"2":{"3":8,"4":1,"6":11,"30":2,"63":1,"66":1,"69":1,"79":1,"80":1,"83":1,"97":1,"100":1,"110":1,"120":2,"161":1}}],["example",{"0":{"39":1,"124":1,"138":1,"169":1,"170":1},"2":{"1":3,"3":2,"6":13,"11":1,"19":2,"24":1,"33":1,"36":1,"39":1,"43":1,"44":1,"46":1,"49":1,"50":1,"51":1,"54":1,"55":1,"56":1,"59":1,"62":1,"63":1,"65":1,"68":1,"78":1,"80":1,"82":1,"91":1,"93":1,"94":1,"96":1,"99":1,"109":1,"120":1,"121":8,"124":1,"126":1,"133":2,"134":1,"137":1,"138":1,"141":1,"149":1,"150":2,"155":1,"160":1,"169":1,"171":1}}],["either",{"2":{"1":2,"3":1,"6":4,"18":1,"25":1,"29":1,"45":9,"51":1,"54":1,"55":2,"56":1,"57":1,"59":1,"69":1,"91":5,"93":1,"99":1,"100":1,"110":1,"121":1,"133":3,"135":1,"168":1}}],["lj",{"2":{"121":2}}],["lrs",{"2":{"150":2}}],["lr",{"2":{"121":3}}],["lp",{"2":{"91":2}}],["lstart",{"2":{"91":2}}],["ls",{"2":{"91":12}}],["ll",{"2":{"21":1,"39":1,"145":2,"150":1,"164":1,"166":1}}],["l",{"2":{"14":4,"40":6,"80":2,"91":32}}],["lgeos",{"2":{"150":1}}],["lg",{"2":{"13":1,"14":1,"15":2,"146":9,"150":17}}],["l305",{"2":{"6":1}}],["loudly",{"2":{"133":1}}],["log10",{"2":{"146":2,"150":4}}],["log",{"2":{"128":3,"129":1,"145":2}}],["location",{"2":{"45":1,"91":6}}],["local",{"2":{"34":3,"37":1,"45":4,"52":1,"57":1,"121":1}}],["loose",{"2":{"123":1}}],["lookup",{"2":{"121":1,"133":1}}],["looks",{"2":{"43":1}}],["look",{"2":{"36":2,"121":2,"124":1,"145":1}}],["looping",{"2":{"121":1}}],["loop",{"2":{"34":1,"40":2,"44":3,"45":8,"47":1,"55":1,"57":1,"91":5,"121":3,"152":1}}],["lower",{"2":{"6":1,"7":1,"121":1,"169":1}}],["lon",{"2":{"6":2,"145":1,"146":2}}],["longitude",{"2":{"164":2}}],["long",{"2":{"6":1,"55":1,"146":1,"170":1}}],["longer",{"2":{"6":3,"144":1,"146":2,"147":1}}],["lots",{"2":{"164":1}}],["lot",{"2":{"6":1,"19":1,"34":1,"37":1,"44":1,"47":1,"60":1,"63":1,"97":1,"126":1,"145":1,"160":2}}],["load",{"2":{"133":2,"150":1,"162":2}}],["loading",{"2":{"41":1,"143":1,"146":1}}],["loads",{"2":{"5":1,"6":1,"40":1}}],["loaded",{"2":{"1":1,"41":3,"142":1,"143":2,"146":2}}],["laptop",{"2":{"170":1}}],["land",{"2":{"164":8}}],["layers",{"2":{"131":1}}],["label",{"2":{"14":4,"15":2,"59":1,"121":3,"145":2,"149":2,"150":2}}],["labels",{"2":{"13":2,"121":1}}],["lazily",{"2":{"6":1,"128":1,"133":1}}],["latitude",{"2":{"164":2}}],["later",{"2":{"37":1,"121":1}}],["lat",{"2":{"6":3,"145":1,"146":3}}],["larger",{"2":{"45":1,"56":1,"154":1}}],["large",{"2":{"6":8,"40":1,"150":2,"167":1,"170":1}}],["lastindex",{"2":{"154":1}}],["last",{"2":{"4":3,"6":3,"9":1,"34":11,"37":2,"39":2,"45":9,"47":4,"60":7,"63":5,"91":20,"102":1,"121":8,"124":1,"139":2,"152":1}}],["lt",{"2":{"6":6,"55":4,"145":1}}],["len",{"2":{"152":7}}],["length",{"2":{"0":1,"5":1,"6":5,"9":1,"22":1,"40":32,"42":1,"43":1,"44":22,"45":11,"47":1,"50":2,"51":2,"54":1,"55":1,"56":1,"57":1,"91":1,"121":10,"133":3,"139":2,"145":1,"151":1,"152":1,"153":1,"154":7}}],["legend",{"2":{"150":4}}],["le",{"2":{"91":10}}],["leaf",{"2":{"133":4}}],["leaving",{"2":{"124":1}}],["leading",{"2":{"163":1}}],["lead",{"2":{"55":1,"124":1}}],["least",{"2":{"3":4,"6":4,"45":1,"55":1,"57":2,"91":14,"97":6,"100":1,"103":3,"104":2,"105":2,"106":1,"107":1,"110":1,"116":1,"120":1}}],["leftover",{"2":{"45":1}}],["left=1",{"2":{"45":1}}],["left",{"2":{"40":1,"45":5,"120":1,"121":2,"152":17,"154":5,"168":1}}],["lets",{"2":{"37":1}}],["let",{"2":{"36":1,"43":1,"91":1,"121":3,"145":1,"163":6,"164":4,"165":3,"166":2,"167":2,"171":1}}],["levels",{"2":{"6":1,"121":1,"131":1,"158":1}}],["level",{"2":{"6":1,"7":1,"9":1,"22":2,"24":1,"27":1,"123":1,"125":1,"131":1,"133":2,"135":4,"136":1,"137":1,"139":2,"165":2}}],["less",{"2":{"3":1,"6":7,"34":1,"37":1,"40":1,"44":1,"47":1,"60":1,"63":1,"80":1,"97":1,"121":1,"150":1,"151":1}}],["l289",{"2":{"6":1}}],["l2",{"2":{"3":4,"4":4,"6":8,"62":4,"63":12,"65":8,"79":2,"82":5,"96":4,"99":3,"100":2,"109":8}}],["l195",{"2":{"6":1}}],["l177",{"2":{"6":1}}],["l1",{"2":{"3":6,"4":4,"6":10,"62":4,"63":12,"65":8,"68":4,"69":2,"78":4,"79":2,"82":5,"96":4,"99":3,"100":2,"109":8}}],["li",{"2":{"121":2}}],["lie",{"2":{"55":1}}],["lies",{"2":{"45":3,"169":1}}],["limitations",{"2":{"55":1}}],["limits",{"2":{"39":1}}],["limited",{"2":{"6":1,"144":1,"147":1}}],["library",{"2":{"50":1,"167":1}}],["libraries",{"2":{"37":1,"137":1,"167":1}}],["libgeos",{"2":{"6":2,"13":1,"14":1,"15":1,"19":1,"37":1,"41":5,"122":1,"146":7,"150":4,"160":2}}],["little",{"2":{"30":1}}],["literate",{"2":{"30":1,"31":1,"34":1,"37":1,"40":1,"41":1,"44":1,"45":1,"47":1,"50":1,"52":1,"53":1,"55":1,"57":1,"60":1,"63":1,"66":1,"76":1,"79":1,"80":1,"90":1,"91":1,"94":1,"97":1,"107":1,"117":1,"120":1,"121":1,"122":1,"125":1,"133":1,"136":1,"139":1,"140":1,"141":1,"143":1,"147":1,"154":1,"155":1,"156":1,"160":1,"161":1}}],["lift",{"2":{"14":2}}],["lin",{"2":{"146":5}}],["linrange",{"2":{"13":2,"14":5,"39":2,"59":1,"121":2,"146":1,"150":2}}],["linering",{"2":{"164":1}}],["linewidth",{"2":{"36":1,"163":1}}],["linesegment",{"2":{"120":2,"147":1}}],["lines",{"0":{"72":1,"86":1,"103":1,"113":1},"2":{"3":1,"4":4,"6":5,"45":3,"49":1,"55":9,"59":1,"62":4,"63":4,"65":3,"68":1,"69":1,"78":2,"80":1,"82":3,"91":2,"93":3,"96":4,"97":2,"99":4,"109":3,"110":1,"121":3,"148":1,"163":4}}],["linestrings",{"2":{"4":2,"6":2,"9":1,"63":2,"119":1,"123":1,"163":1}}],["linestringtrait",{"2":{"3":2,"4":4,"6":9,"11":3,"34":1,"44":4,"54":2,"60":2,"63":8,"71":1,"72":4,"73":1,"80":6,"85":1,"86":5,"97":4,"102":1,"103":4,"104":1,"112":1,"113":4,"114":1,"131":1,"135":2,"136":1,"147":2,"158":2}}],["linestring",{"2":{"3":5,"4":6,"6":15,"22":1,"24":1,"34":2,"44":2,"60":4,"62":2,"63":2,"65":2,"66":1,"71":1,"72":3,"79":2,"82":2,"83":1,"85":1,"86":4,"91":2,"96":2,"102":1,"103":3,"104":1,"109":2,"110":1,"112":1,"113":4,"114":1,"120":7,"133":4,"161":3,"163":5}}],["linetrait",{"2":{"3":2,"4":4,"6":6,"34":1,"45":2,"50":2,"54":2,"60":2,"63":8,"71":1,"72":4,"73":1,"85":1,"86":5,"97":4,"102":1,"103":4,"104":1,"112":1,"113":4,"114":1}}],["line2",{"2":{"3":3,"6":7,"54":2,"55":2,"80":5,"93":3,"94":2,"97":3,"120":5}}],["line1",{"2":{"3":4,"6":8,"54":2,"55":2,"80":5,"93":3,"94":2,"97":5,"120":5}}],["linea",{"2":{"1":1,"6":1,"155":1}}],["linearmap",{"2":{"150":1}}],["linearalgebra",{"2":{"31":1}}],["linear",{"2":{"4":7,"6":10,"9":1,"37":2,"40":1,"43":1,"44":3,"47":1,"55":1,"60":5,"63":8,"73":1,"91":2,"103":1,"104":2,"113":1,"119":1,"125":3,"133":2,"145":5,"146":3,"147":4}}],["linearr",{"2":{"1":1,"6":1,"155":1}}],["linearrings",{"2":{"9":1,"87":1,"121":6,"123":1,"163":1}}],["linearringtrait",{"2":{"4":4,"6":6,"11":3,"34":3,"37":2,"44":4,"45":4,"54":2,"60":2,"63":8,"71":1,"72":1,"73":4,"85":1,"86":2,"87":3,"102":1,"103":1,"104":4,"112":1,"113":1,"114":4,"135":1,"147":2,"150":1,"158":2}}],["linearring",{"2":{"1":10,"3":2,"4":1,"6":15,"34":2,"44":2,"45":1,"60":1,"71":1,"73":3,"85":1,"86":1,"87":2,"91":2,"97":4,"102":1,"103":1,"104":3,"112":1,"114":4,"120":1,"121":3,"123":1,"124":6,"125":1,"133":5,"138":13,"150":1,"155":8,"163":24,"164":6,"165":8,"169":2}}],["linearsegments",{"2":{"0":1,"6":4,"144":1,"145":1,"146":3,"147":5}}],["line",{"0":{"91":1},"2":{"0":1,"3":13,"4":9,"6":52,"19":1,"33":2,"34":7,"43":3,"44":10,"45":12,"47":8,"49":6,"50":18,"54":8,"55":67,"57":6,"60":11,"63":5,"66":2,"68":2,"69":1,"71":2,"72":11,"73":8,"78":1,"80":11,"83":2,"85":1,"86":9,"87":4,"91":141,"93":2,"94":2,"96":3,"97":12,"99":2,"100":2,"102":1,"103":10,"104":3,"110":2,"112":2,"113":10,"114":7,"120":6,"121":2,"147":1,"150":1,"151":1,"152":4,"153":1,"161":3,"163":3}}],["lineorientation",{"2":{"0":1,"6":2,"54":2}}],["lists",{"2":{"24":1,"45":3,"97":1}}],["listed",{"2":{"6":1,"34":1,"150":1}}],["list",{"2":{"6":16,"9":1,"34":20,"45":233,"50":20,"51":14,"52":8,"54":13,"55":5,"56":13,"57":1,"170":2}}],["likely",{"2":{"131":1}}],["like",{"0":{"53":1},"2":{"1":2,"6":9,"19":1,"20":1,"21":1,"22":2,"23":1,"24":1,"27":1,"37":1,"39":1,"40":1,"43":1,"47":1,"51":1,"54":1,"56":1,"59":1,"60":1,"63":1,"126":2,"133":2,"135":2,"136":1,"144":1,"145":1,"158":2,"164":2}}],["image",{"2":{"121":1}}],["impossible",{"2":{"50":1,"96":1}}],["important",{"2":{"145":1}}],["import",{"2":{"1":3,"6":5,"13":2,"14":2,"15":1,"31":5,"33":1,"36":1,"41":1,"43":1,"46":1,"50":1,"51":1,"54":1,"55":1,"56":1,"59":1,"62":1,"63":1,"65":1,"66":1,"68":1,"69":1,"78":1,"79":1,"80":1,"82":1,"83":1,"93":1,"94":1,"96":1,"97":1,"99":1,"100":1,"109":1,"110":1,"120":3,"133":2,"143":1,"146":2,"149":2,"150":3,"155":2,"161":1,"162":5}}],["implements",{"2":{"160":1}}],["implementing",{"2":{"6":1,"150":1}}],["implement",{"2":{"6":1,"19":1,"21":1,"34":1,"37":1,"40":1,"44":1,"47":1,"60":1,"63":1,"69":1,"83":1,"97":1,"100":1,"110":1,"126":1,"134":1,"135":3,"136":1}}],["implementation",{"0":{"34":1,"37":1,"44":1,"47":1,"50":1,"60":1,"63":1,"66":1,"69":1,"79":1,"83":1,"94":1,"97":1,"100":1,"110":1,"125":1,"130":1,"139":1,"147":1},"2":{"6":1,"34":3,"37":3,"40":1,"44":3,"47":3,"56":1,"60":3,"63":3,"66":1,"69":2,"79":1,"83":2,"94":1,"97":3,"100":2,"110":2,"121":2,"122":1,"142":1,"150":1,"160":1}}],["implementations",{"2":{"6":1,"69":1,"83":1,"100":1,"110":1,"122":1,"148":1,"160":3}}],["implemented",{"0":{"122":1},"2":{"1":1,"6":2,"31":1,"37":1,"40":3,"50":2,"52":2,"55":2,"57":2,"60":2,"122":1,"126":2,"135":2,"142":1,"148":1}}],["improvements",{"2":{"9":2,"10":1}}],["improve",{"2":{"4":1,"6":1,"140":1}}],["i=2",{"2":{"120":1}}],["ipoints",{"2":{"91":4}}],["ip",{"2":{"63":2}}],["ipt",{"2":{"45":8}}],["ihole",{"2":{"63":2}}],["ih",{"2":{"57":20}}],["i2",{"2":{"47":2}}],["i1",{"2":{"47":2}}],["ii",{"2":{"45":8}}],["io",{"2":{"41":5,"143":5,"146":5}}],["i+1",{"2":{"40":8,"121":1,"152":2,"154":1}}],["i",{"2":{"9":1,"13":4,"18":1,"34":14,"37":1,"40":16,"45":28,"47":4,"52":2,"56":2,"57":4,"60":2,"63":8,"80":7,"91":28,"120":14,"121":17,"133":14,"147":2,"151":3,"152":12,"154":28,"161":2,"163":2,"164":1,"170":3}}],["id",{"2":{"166":1}}],["identical",{"2":{"133":1,"138":1}}],["identity",{"2":{"121":4,"133":2,"140":1}}],["ideal",{"2":{"121":1}}],["idea",{"2":{"6":1,"24":1,"25":1,"29":1,"40":1,"126":1}}],["idx`",{"2":{"45":1}}],["idx",{"2":{"34":6,"45":167,"47":9,"50":23,"51":5,"54":5,"56":2,"139":34,"152":51}}],["id=",{"2":{"6":2}}],["ignored",{"2":{"6":1,"121":1}}],["ignore",{"2":{"6":1,"121":2}}],["i>",{"2":{"6":2}}],["i>method",{"2":{"6":2}}],["innerjoin",{"2":{"169":1,"170":1}}],["inner",{"2":{"91":6,"133":3,"168":1}}],["innacurracies",{"2":{"55":1}}],["inline",{"2":{"91":4,"120":1,"133":21,"159":2}}],["inlcuding",{"2":{"55":1,"72":1,"73":1}}],["in=1",{"2":{"91":1}}],["in`",{"2":{"91":1}}],["inject",{"0":{"53":1},"2":{"143":1}}],["ind",{"2":{"170":2}}],["individual",{"2":{"165":1}}],["indicate",{"2":{"133":1}}],["indicates",{"2":{"24":1}}],["indicies",{"2":{"45":2}}],["indices",{"2":{"45":2,"133":4,"154":16}}],["indeed",{"2":{"124":1}}],["index",{"2":{"40":8,"45":11,"91":1,"133":1,"152":1}}],["inds",{"2":{"121":3}}],["inplace",{"2":{"40":1}}],["inputs",{"2":{"6":1,"45":1,"63":1,"66":1,"79":1,"94":1,"154":1}}],["input",{"2":{"6":12,"34":1,"50":1,"51":1,"54":1,"55":1,"56":1,"121":1,"126":1,"146":3,"147":2,"151":1,"152":1,"153":1,"164":1}}],["inbounds",{"2":{"40":16,"60":5,"91":1}}],["inspiration",{"2":{"50":1}}],["inspired",{"2":{"49":1,"50":2}}],["inside",{"2":{"34":3,"43":1,"45":3,"47":1,"51":1,"52":1,"54":1,"55":1,"56":1,"57":2,"59":3,"60":1,"71":1,"91":1,"109":1,"112":1,"121":2}}],["insertion",{"2":{"45":1}}],["insert",{"2":{"34":1,"152":1}}],["instantiating",{"2":{"24":1}}],["instability",{"2":{"20":2}}],["instead",{"2":{"20":1,"22":1}}],["instructs",{"2":{"6":1,"160":2}}],["investigate",{"2":{"121":1}}],["invalid",{"2":{"24":1,"52":2,"124":1,"137":1,"138":1}}],["invoke",{"2":{"24":1}}],["involved",{"2":{"126":1}}],["involve",{"2":{"24":1}}],["involving",{"2":{"6":3,"51":1,"54":1,"56":1}}],["invocation",{"2":{"22":1}}],["init=nothing",{"2":{"133":1}}],["init=typemax",{"2":{"60":2}}],["init=zero",{"2":{"37":1,"47":1}}],["initial",{"2":{"55":2,"146":1}}],["initially",{"2":{"45":1}}],["initialize",{"2":{"40":3,"44":2,"45":1,"55":1}}],["init",{"2":{"23":1,"31":1,"34":1,"44":2,"133":30,"146":4}}],["incorrect",{"2":{"123":1,"124":1}}],["increase",{"2":{"45":1,"91":1}}],["increasing",{"2":{"6":1,"150":1}}],["increment",{"2":{"40":5}}],["including",{"2":{"34":1,"45":2,"60":1,"71":1,"74":1,"91":2}}],["include",{"2":{"31":40,"34":1,"45":1,"60":2,"150":2,"159":1,"165":2,"166":1}}],["included",{"2":{"6":2,"57":2,"136":2,"139":2,"165":1}}],["includes",{"2":{"4":2,"6":2,"57":1,"60":2,"63":1,"91":1}}],["incircle",{"0":{"16":1}}],["ing",{"2":{"1":1,"6":2,"40":1,"155":1}}],["intr",{"2":{"45":28,"47":9,"50":16,"55":8}}],["intr2",{"2":{"45":2,"55":14}}],["intr1",{"2":{"45":3,"55":21,"91":2}}],["intrs",{"2":{"45":10,"55":5}}],["introduction",{"0":{"25":1},"1":{"26":1,"27":1,"28":1}}],["introducing",{"2":{"20":1}}],["introduces",{"2":{"20":1}}],["int",{"2":{"45":6,"57":7,"80":7,"147":1,"150":1,"152":5,"153":1,"154":1}}],["integrate",{"2":{"37":1}}],["integrating",{"2":{"37":1}}],["integrals",{"2":{"36":1}}],["integral",{"2":{"36":1}}],["intended",{"2":{"6":1,"135":2,"136":1}}],["intermediate",{"2":{"47":1}}],["inter2",{"2":{"47":15}}],["inter1",{"2":{"47":23}}],["interpreted",{"2":{"40":1}}],["interpolation",{"2":{"5":1,"6":1,"39":1,"40":2,"144":1}}],["interpolated",{"2":{"5":3,"6":3,"40":17,"144":1}}],["interpolate",{"2":{"0":2,"5":2,"6":4,"38":1,"39":2,"40":25}}],["interest",{"2":{"40":1,"60":1}}],["internal",{"2":{"39":1}}],["internals",{"2":{"20":1}}],["inter",{"2":{"6":3,"45":21,"50":1,"51":1,"54":5,"55":4}}],["interface",{"0":{"135":1},"2":{"6":2,"24":1,"133":1,"134":1,"135":4,"136":1,"150":1,"164":1}}],["interacted",{"2":{"91":1}}],["interaction",{"0":{"91":1},"2":{"91":2}}],["interactions",{"2":{"45":1,"57":3,"91":15}}],["interactive",{"2":{"13":1,"14":1}}],["interacting",{"2":{"6":1,"54":1,"91":2}}],["interacts",{"2":{"3":1,"6":1,"91":3,"99":1,"100":1,"103":3,"104":1,"105":1}}],["interact",{"2":{"3":2,"6":2,"56":1,"57":1,"82":1,"91":5,"94":1,"99":1,"100":1,"102":1,"103":2,"104":2,"105":1}}],["interior",{"2":{"3":6,"6":7,"34":9,"36":1,"40":7,"44":5,"45":1,"57":18,"65":1,"66":1,"68":1,"69":3,"72":5,"73":1,"74":2,"78":2,"79":1,"80":1,"83":2,"85":2,"86":6,"87":3,"91":15,"99":1,"100":3,"103":1,"104":2,"105":2,"109":1,"110":3,"115":2,"120":2,"125":1,"136":1}}],["interiors",{"2":{"3":6,"6":7,"40":20,"65":1,"66":1,"68":1,"78":1,"79":1,"82":1,"83":1,"88":1,"91":5,"93":1,"94":1,"99":1,"100":1,"102":1,"103":2,"104":1,"109":1,"110":1,"113":3,"114":3}}],["intersectingpolygons",{"2":{"6":3}}],["intersecting",{"0":{"137":1},"1":{"138":1,"139":1},"2":{"6":4,"31":1,"45":2,"57":2,"136":4,"137":1,"139":4}}],["intersections",{"0":{"55":1},"2":{"45":2,"47":2,"52":1,"54":2,"55":1,"57":1,"91":2}}],["intersection",{"0":{"54":1,"92":1},"1":{"93":1,"94":1},"2":{"0":2,"3":3,"6":19,"9":1,"15":4,"19":1,"31":1,"45":38,"47":6,"50":3,"51":4,"52":4,"54":15,"55":73,"56":2,"57":2,"80":2,"91":6,"93":1,"97":5}}],["intersect",{"2":{"3":8,"6":11,"45":4,"47":3,"51":2,"54":1,"55":1,"56":1,"57":5,"65":1,"66":2,"68":1,"69":1,"79":1,"83":1,"86":1,"88":1,"91":4,"93":2,"97":1,"109":1,"110":2,"113":3,"114":3,"138":1,"139":4}}],["intersects",{"0":{"93":1},"2":{"0":2,"3":3,"6":6,"31":1,"45":1,"55":2,"57":2,"80":2,"92":1,"93":4,"94":4,"97":5,"115":1,"139":2,"168":1}}],["into",{"2":{"5":1,"6":7,"21":1,"30":1,"34":1,"37":1,"40":1,"44":4,"45":2,"50":1,"51":1,"54":1,"91":1,"121":4,"128":1,"133":6,"139":1,"150":1,"158":1,"161":2,"163":2,"168":1}}],["int64",{"2":{"1":6,"6":6,"124":6,"151":1,"152":1,"154":1,"155":6,"163":14}}],["info",{"2":{"144":1}}],["information",{"0":{"165":1},"2":{"6":1,"27":1,"40":1,"45":2,"46":1,"55":1,"91":1,"162":1,"165":3,"167":2}}],["infinity",{"2":{"91":1,"97":1}}],["inf",{"2":{"1":1,"9":1,"50":2,"151":1,"154":3}}],["in",{"0":{"19":1},"2":{"1":6,"3":3,"4":1,"5":4,"6":49,"7":1,"9":2,"13":6,"14":2,"19":3,"20":2,"21":2,"22":4,"24":1,"25":1,"27":1,"28":1,"29":1,"30":3,"31":2,"34":7,"36":1,"37":3,"38":2,"40":22,"41":1,"43":2,"44":5,"45":72,"47":31,"50":6,"51":9,"52":3,"54":5,"55":29,"56":11,"57":28,"59":6,"60":6,"62":1,"63":17,"65":2,"66":1,"69":10,"72":1,"73":1,"74":1,"75":1,"76":1,"79":1,"80":7,"83":9,"85":1,"86":1,"87":1,"89":1,"90":1,"91":135,"93":2,"94":1,"96":1,"97":11,"99":1,"100":11,"104":1,"106":1,"107":1,"109":1,"110":10,"113":3,"114":3,"116":1,"117":1,"120":4,"121":10,"122":3,"126":1,"128":3,"131":2,"132":1,"133":12,"134":1,"135":1,"136":2,"137":1,"139":7,"140":1,"141":2,"142":3,"143":1,"144":2,"145":2,"146":14,"147":7,"148":1,"150":5,"151":2,"152":4,"153":1,"154":5,"155":2,"156":1,"157":4,"158":1,"159":1,"160":4,"161":8,"162":1,"163":2,"164":6,"167":2,"168":4,"169":3,"170":1,"171":1}}],["itererable",{"2":{"161":1}}],["iter",{"2":{"133":31}}],["iterate",{"2":{"40":2,"131":1,"133":5}}],["iteration",{"2":{"37":1}}],["iterators",{"2":{"13":1,"40":1,"45":5,"47":3,"54":1,"57":2,"121":1,"133":11,"139":6,"147":1}}],["iterator",{"2":{"6":2,"45":4,"54":2,"128":2,"133":2}}],["iterabletype",{"2":{"133":10}}],["iterable",{"2":{"4":1,"6":3,"22":1,"37":1,"47":1,"128":1,"133":37,"163":1}}],["iterables",{"2":{"1":2,"6":2,"18":1,"133":6}}],["ith",{"2":{"45":3,"57":7}}],["itself",{"2":{"47":1,"120":1,"131":1}}],["its",{"2":{"5":1,"6":10,"22":1,"36":1,"40":1,"45":2,"47":4,"57":1,"72":1,"128":1,"133":1,"134":1,"150":1,"151":1,"152":1,"153":3,"168":1}}],["it",{"2":{"1":4,"4":1,"6":19,"9":1,"18":1,"22":11,"23":2,"24":1,"27":3,"28":1,"33":1,"34":1,"36":2,"37":3,"39":1,"41":1,"44":2,"45":2,"46":1,"47":2,"51":1,"52":1,"54":1,"55":4,"56":1,"57":3,"60":3,"63":1,"68":2,"71":3,"85":3,"91":14,"96":1,"97":1,"102":2,"112":3,"119":1,"120":2,"121":4,"124":1,"125":1,"126":3,"128":3,"131":3,"132":1,"133":15,"134":1,"136":1,"137":1,"142":5,"145":2,"146":1,"150":1,"152":1,"157":1,"158":2,"159":1,"160":7,"164":3,"165":3,"167":3,"170":2,"171":2}}],["iff",{"2":{"133":1}}],["if",{"0":{"53":1},"2":{"1":5,"3":17,"4":19,"5":1,"6":73,"18":2,"22":1,"33":1,"34":15,"36":1,"37":6,"40":5,"41":3,"44":1,"45":95,"47":36,"50":8,"51":13,"52":12,"54":9,"55":44,"56":10,"57":22,"59":2,"60":8,"62":2,"63":35,"65":1,"66":1,"68":1,"69":2,"71":4,"72":3,"73":3,"74":2,"75":1,"76":1,"78":1,"79":1,"80":9,"82":1,"83":3,"85":5,"86":4,"87":2,"88":2,"89":1,"90":1,"91":132,"93":1,"94":1,"96":4,"97":16,"99":1,"100":2,"102":4,"103":3,"104":2,"105":2,"106":1,"107":1,"109":1,"110":2,"112":5,"113":3,"114":3,"115":1,"116":1,"117":1,"120":5,"121":35,"125":1,"128":1,"131":1,"133":21,"135":1,"136":2,"137":1,"139":12,"140":1,"141":1,"142":3,"143":2,"146":6,"147":2,"150":1,"152":12,"154":12,"155":1,"156":1,"159":1,"160":2,"164":1,"167":1,"169":2,"170":1}}],["isolate",{"2":{"150":1}}],["isodd",{"2":{"50":1}}],["istable",{"2":{"133":2}}],["isequal",{"2":{"121":1}}],["iseven",{"2":{"91":1}}],["isempty",{"2":{"37":1,"40":4,"47":1,"51":1,"52":2,"54":1,"121":1,"135":1,"152":1}}],["isparallel",{"2":{"91":1,"120":8}}],["is3d",{"2":{"63":1,"133":1,"141":1,"155":1,"156":1,"161":10}}],["issue",{"2":{"45":1}}],["issues",{"2":{"25":1,"29":1}}],["isa",{"2":{"22":1,"40":9,"133":4,"161":1}}],["isnothing",{"2":{"41":1,"45":9,"50":1,"52":2,"55":2,"57":2,"63":1,"121":1,"143":1,"146":1,"150":1,"151":1,"152":5,"153":1,"154":6}}],["isn",{"2":{"6":1,"37":1,"45":4,"47":1,"50":1,"52":1,"55":3,"57":2,"60":3,"63":1,"68":1,"91":9,"97":1,"150":1,"160":1}}],["isconcave",{"0":{"120":1},"2":{"0":1,"6":2,"118":1,"120":3}}],["isclockwise",{"0":{"119":1},"2":{"0":1,"6":2,"47":1,"118":1,"120":5,"121":2}}],["is",{"0":{"29":1,"33":1,"36":2,"43":1,"46":1,"49":1,"59":2,"62":1,"65":1,"68":1,"78":1,"82":1,"93":1,"96":1,"99":1,"109":1,"131":1},"2":{"0":1,"1":10,"3":8,"4":43,"5":1,"6":105,"9":3,"11":1,"13":1,"14":1,"18":3,"19":2,"22":3,"23":1,"24":1,"25":2,"29":2,"33":1,"34":19,"36":7,"37":19,"38":2,"39":2,"40":15,"41":3,"43":2,"44":5,"45":82,"46":3,"47":22,"49":1,"50":2,"51":4,"52":13,"54":4,"55":40,"56":7,"57":20,"59":8,"60":23,"63":13,"65":2,"66":3,"68":4,"69":4,"71":7,"72":3,"73":3,"74":1,"75":1,"76":1,"79":3,"80":3,"82":1,"83":5,"85":9,"86":4,"87":2,"88":1,"89":1,"90":1,"91":91,"94":2,"96":3,"97":12,"100":4,"102":2,"109":4,"110":5,"112":8,"113":3,"114":3,"115":1,"116":2,"117":1,"119":2,"120":7,"121":11,"122":1,"123":7,"124":2,"125":1,"126":2,"128":1,"131":3,"132":1,"133":24,"134":3,"135":2,"136":1,"137":4,"138":1,"139":2,"141":1,"142":7,"143":2,"144":3,"145":3,"146":9,"147":6,"149":1,"150":4,"151":1,"152":2,"153":1,"155":2,"157":1,"158":1,"159":1,"160":3,"163":4,"164":5,"165":3,"166":1,"167":3,"168":2,"169":5,"170":2}}],["cpu",{"2":{"170":1}}],["cy",{"2":{"120":2}}],["cyan",{"2":{"41":1,"143":1,"146":1}}],["cx",{"2":{"120":2}}],["cdot",{"2":{"120":1}}],["cs",{"2":{"91":9}}],["cshape",{"2":{"43":3}}],["cw",{"2":{"47":2}}],["cb",{"2":{"39":1,"121":1}}],["cgrad",{"2":{"39":1}}],["cgal",{"2":{"39":1}}],["c",{"2":{"37":1,"43":1,"47":4,"50":5,"53":3,"91":24,"146":1}}],["chunks",{"2":{"133":8}}],["chunk",{"2":{"133":12}}],["choose",{"2":{"121":2}}],["chose",{"2":{"20":1,"121":1}}],["chain=2",{"2":{"45":1}}],["chain=1",{"2":{"45":1}}],["chain",{"2":{"45":66,"52":3,"55":4,"57":4}}],["chains",{"2":{"24":1,"45":1}}],["chairmarks",{"2":{"13":1,"146":1,"150":1}}],["changes",{"2":{"45":1}}],["changed",{"2":{"45":1}}],["change",{"2":{"20":1,"45":1}}],["children",{"2":{"150":1}}],["child",{"2":{"6":2,"128":2,"133":7}}],["checkargs",{"2":{"151":1,"152":1,"153":1,"154":1}}],["checking",{"2":{"63":1,"152":1}}],["checks",{"0":{"80":1,"92":1},"1":{"93":1,"94":1},"2":{"41":1,"45":1,"55":1,"62":1,"65":1,"68":1,"78":1,"82":1,"91":5,"93":1,"96":1,"97":1,"99":1,"109":1,"169":1}}],["check",{"2":{"4":1,"6":1,"7":1,"44":1,"45":8,"47":3,"50":1,"51":1,"53":1,"55":4,"56":1,"63":8,"91":11,"121":5,"128":3,"129":1,"138":1,"140":1,"145":2,"152":1,"154":1}}],["checked",{"2":{"4":1,"6":1,"45":1,"55":1,"91":1,"140":1}}],["clear",{"2":{"46":1}}],["clearly",{"2":{"33":1,"36":1,"59":1}}],["clamped",{"2":{"55":18}}],["clamp",{"2":{"34":1,"55":1}}],["classified",{"2":{"45":1}}],["classify",{"2":{"45":4}}],["class",{"2":{"6":1,"121":1}}],["clipping",{"0":{"45":1,"51":1,"52":1,"55":1,"56":1,"57":1},"2":{"6":1,"9":1,"31":8,"45":9,"50":3,"51":1,"54":1,"56":1,"137":1}}],["closure",{"2":{"133":2}}],["closing",{"2":{"34":1}}],["close",{"2":{"34":5,"45":2,"47":1,"50":1,"55":1,"60":9,"121":1,"124":1,"125":4}}],["closest",{"2":{"4":3,"6":3,"55":2,"59":1,"60":6}}],["closed2",{"2":{"63":2}}],["closed1",{"2":{"63":2}}],["closed",{"0":{"123":1},"1":{"124":1,"125":1},"2":{"4":4,"6":11,"9":1,"31":1,"34":6,"37":3,"44":3,"45":1,"47":1,"55":1,"57":3,"63":21,"71":2,"72":5,"73":5,"85":2,"86":5,"87":3,"91":52,"103":5,"104":1,"112":3,"113":5,"114":5,"120":1,"121":1,"123":1,"124":1,"125":2,"134":1,"136":1,"163":1}}],["closedring",{"2":{"0":1,"6":1,"123":1,"124":1,"125":4,"134":1,"135":1,"136":1}}],["clockwise",{"2":{"4":1,"6":4,"9":1,"36":1,"37":1,"47":7,"119":2,"120":3,"121":1}}],["ceil",{"2":{"147":1}}],["ce",{"2":{"91":11}}],["certianly",{"2":{"55":1}}],["certain",{"2":{"21":1,"22":1,"27":1,"30":1}}],["central",{"2":{"45":1}}],["centroids",{"2":{"43":1,"44":1}}],["centroid",{"0":{"42":1,"43":1},"1":{"43":1,"44":1},"2":{"0":4,"4":2,"6":6,"31":1,"42":3,"43":4,"44":38,"126":1,"150":4}}],["cent",{"2":{"43":2}}],["centered",{"2":{"45":1}}],["center",{"2":{"6":1,"43":1,"121":1}}],["cells",{"2":{"121":1}}],["cell",{"2":{"6":4,"46":3,"47":28,"121":2}}],["c2",{"2":{"6":3,"15":2,"60":3,"63":14,"121":21}}],["c1",{"2":{"6":3,"15":2,"60":4,"63":13,"121":26}}],["ctor",{"2":{"1":1,"6":1,"155":1}}],["ca96624a56bd078437bca8184e78163e5039ad19",{"2":{"150":1}}],["caculated",{"2":{"55":1,"133":1}}],["cache",{"2":{"6":1,"40":1}}],["catagorize",{"2":{"50":1}}],["categorical",{"2":{"39":1}}],["came",{"2":{"50":1}}],["case",{"2":{"34":1,"38":2,"44":1,"45":1,"51":1,"55":2,"57":1,"91":16,"133":1,"171":1}}],["cases",{"2":{"6":1,"40":1,"50":2,"91":3,"131":1,"133":5}}],["careful",{"2":{"40":1,"131":1}}],["care",{"2":{"21":1}}],["carried",{"2":{"6":1,"160":1}}],["cause",{"2":{"19":1,"22":1,"152":1}}],["cairomakie",{"2":{"13":1,"33":1,"36":1,"39":2,"43":1,"46":1,"49":1,"59":1,"62":1,"65":1,"68":1,"78":1,"82":1,"93":1,"96":1,"99":1,"109":1,"145":1,"146":1,"150":1,"162":1,"169":1,"170":1}}],["california",{"2":{"170":1}}],["callable",{"2":{"121":4,"135":1}}],["calling",{"2":{"45":2,"133":1}}],["calls",{"2":{"45":1,"55":1,"57":1,"60":1,"69":1,"83":1,"100":1,"110":1,"131":1,"133":1,"147":1}}],["call",{"2":{"20":1,"22":1,"37":1,"44":1,"133":4,"148":1}}],["called",{"2":{"6":2,"44":3,"45":1,"125":1,"133":1,"135":1,"136":1,"160":1,"164":1}}],["calcualted",{"2":{"133":1}}],["calculation",{"2":{"55":1}}],["calculations",{"2":{"6":1,"25":2,"29":2,"55":1,"146":1}}],["calculating",{"2":{"4":1,"6":1,"22":1,"45":1,"140":1}}],["calculated",{"2":{"6":1,"43":2,"47":1,"55":1,"60":1,"133":2}}],["calculates",{"2":{"4":2,"6":6,"37":1,"40":2,"47":1,"55":2,"56":1,"60":2,"146":1,"153":1}}],["calculate",{"2":{"1":2,"5":1,"6":6,"11":1,"34":3,"40":3,"44":1,"47":1,"55":1,"91":1,"121":1,"130":1,"133":3}}],["calc",{"2":{"1":2,"6":4,"20":1,"34":4,"130":1,"132":1,"133":15,"140":1,"150":2,"159":1}}],["cant",{"2":{"63":1,"121":1,"161":1}}],["cannot",{"2":{"3":3,"4":2,"6":5,"37":1,"63":1,"71":1,"74":1,"97":2,"100":1,"102":2,"104":1,"115":1}}],["can",{"2":{"1":1,"4":2,"6":16,"7":2,"9":1,"13":1,"14":1,"20":1,"30":1,"31":1,"34":1,"37":1,"38":2,"39":1,"40":3,"41":1,"44":1,"45":3,"47":1,"51":3,"54":3,"55":1,"56":3,"57":1,"62":1,"63":3,"65":1,"68":1,"80":1,"82":1,"91":23,"93":2,"96":2,"97":3,"99":1,"103":1,"104":1,"109":1,"112":1,"113":1,"114":1,"121":1,"122":1,"124":2,"125":1,"126":1,"128":1,"132":1,"133":7,"136":1,"137":2,"138":1,"140":1,"143":1,"145":1,"146":2,"150":2,"160":1,"163":6,"164":1,"165":3,"167":3,"168":3,"169":3}}],["critetia",{"2":{"152":1}}],["criteria",{"2":{"69":2,"83":2,"100":2,"110":2,"152":2}}],["creation",{"2":{"163":1,"165":1}}],["creating",{"0":{"162":1,"163":1,"166":1},"1":{"163":1,"164":1,"165":1,"166":1,"167":1},"2":{"91":1}}],["creates",{"2":{"7":1,"45":3}}],["create",{"0":{"165":1},"2":{"6":2,"13":2,"14":1,"45":1,"50":1,"55":2,"121":2,"133":1,"136":2,"137":3,"139":2,"162":2,"163":4,"164":5,"165":3,"166":1,"167":1,"169":1}}],["created",{"2":{"4":2,"6":2,"45":1,"60":3}}],["cropping",{"2":{"39":2}}],["cross=1",{"2":{"54":1}}],["cross`",{"2":{"54":1}}],["crossings",{"2":{"45":3,"91":1}}],["crossing",{"0":{"80":1},"2":{"6":2,"45":81,"51":1,"52":7,"54":3,"55":7,"56":1,"57":6,"69":1,"80":1,"91":1,"110":1}}],["cross",{"0":{"107":1},"2":{"6":1,"9":1,"34":3,"45":13,"50":14,"51":2,"52":1,"53":4,"54":2,"55":10,"56":2,"57":1,"69":1,"80":2,"83":1,"91":17,"97":2,"100":1,"110":1,"120":3}}],["crosses",{"2":{"0":2,"3":2,"6":3,"31":1,"45":1,"50":1,"80":26,"91":2,"168":1}}],["crc",{"2":{"6":1,"40":1}}],["crs2",{"2":{"164":2}}],["crs1",{"2":{"164":2,"165":1}}],["crs`",{"2":{"142":6}}],["crs=nothing",{"2":{"133":1,"140":1,"150":1}}],["crs=gi",{"2":{"133":7}}],["crs",{"0":{"164":1},"2":{"1":16,"4":2,"6":10,"121":10,"130":2,"132":3,"133":27,"140":1,"142":7,"150":1,"162":1,"164":13,"165":7,"167":1}}],["customize",{"2":{"133":2}}],["custom",{"0":{"171":1},"2":{"6":1,"40":1,"171":2}}],["curr^2",{"2":{"34":2}}],["curr",{"2":{"34":8,"45":114,"50":9,"57":3,"139":26}}],["currentnode",{"2":{"121":8}}],["current",{"2":{"34":1,"40":8,"45":3,"50":2,"52":1,"55":1,"57":6,"121":2,"139":3}}],["currently",{"2":{"5":1,"6":3,"19":1,"40":1,"45":1,"50":1,"52":2,"121":1,"133":1}}],["curve",{"0":{"91":1},"2":{"3":1,"4":7,"6":18,"34":6,"37":7,"45":5,"47":3,"54":7,"59":1,"60":22,"63":6,"69":2,"71":4,"72":9,"73":9,"83":1,"85":4,"86":6,"87":3,"91":152,"97":1,"100":1,"103":6,"105":3,"110":1,"112":4,"113":6,"114":6}}],["curves",{"2":{"0":1,"3":1,"6":5,"37":3,"47":3,"55":1,"59":1,"60":1,"63":13,"74":1,"91":1,"97":1,"115":1,"150":2}}],["cutpolygon",{"2":{"49":1}}],["cuts",{"2":{"49":1}}],["cutting",{"0":{"48":1},"1":{"49":1,"50":1},"2":{"45":1,"50":2}}],["cut",{"0":{"49":1},"2":{"0":1,"6":6,"31":1,"40":1,"48":1,"49":5,"50":22,"91":1}}],["cos",{"2":{"163":3,"164":1,"165":2}}],["copy",{"2":{"135":1,"154":1}}],["coors1",{"2":{"120":2}}],["coors2",{"2":{"120":3}}],["coord",{"2":{"147":6}}],["coords",{"2":{"50":9,"147":8}}],["coordiantes",{"2":{"46":1}}],["coordinatetransformations",{"2":{"1":2,"6":2,"150":1,"155":2,"162":1,"163":5,"165":2}}],["coordinate",{"0":{"40":1,"141":1,"164":1,"165":1},"2":{"1":4,"5":5,"6":7,"25":1,"29":1,"39":2,"40":10,"133":1,"142":4,"147":1,"162":3,"164":1}}],["coordinates",{"0":{"5":1,"38":1},"1":{"39":1,"40":1},"2":{"0":4,"1":1,"4":2,"5":7,"6":20,"37":2,"38":8,"40":25,"45":2,"50":2,"51":1,"54":1,"56":1,"60":1,"63":2,"126":1,"141":2,"142":1,"145":1,"146":3,"164":2}}],["co",{"2":{"91":2}}],["corner",{"2":{"47":4,"121":1}}],["corners",{"2":{"47":1}}],["correspondent",{"2":{"120":1}}],["correspond",{"2":{"45":1}}],["corresponding",{"2":{"34":3,"52":2}}],["correctly",{"2":{"145":1}}],["corrected",{"2":{"135":1}}],["correctness",{"2":{"123":1,"160":1}}],["correcting",{"2":{"24":1,"135":1}}],["corrections",{"0":{"134":1,"136":1},"1":{"135":1,"136":1},"2":{"124":1,"135":6,"138":1}}],["correction",{"2":{"6":10,"31":4,"51":1,"52":2,"54":1,"55":2,"56":1,"57":2,"123":1,"125":2,"134":2,"135":8,"136":7,"137":1,"139":2}}],["correct",{"2":{"6":3,"20":1,"34":1,"37":1,"44":1,"45":1,"47":1,"51":1,"54":1,"56":1,"60":1,"63":1,"69":1,"83":1,"97":1,"100":1,"110":1,"123":1,"124":2,"134":1}}],["cov",{"2":{"47":16}}],["cover",{"2":{"71":1,"75":1}}],["covering",{"2":{"6":2,"78":1,"136":2,"139":2}}],["covered",{"0":{"73":1,"74":1,"114":1},"2":{"3":1,"6":1,"52":1,"57":1,"68":1,"69":1,"73":2,"74":2,"75":1,"76":2,"78":1,"90":2,"91":3,"139":1}}],["coveredby",{"0":{"67":1,"68":1,"71":1,"72":1,"75":1,"76":1,"90":1},"1":{"68":1,"69":1},"2":{"0":2,"3":4,"6":4,"31":1,"45":1,"67":1,"68":3,"69":10,"70":6,"71":13,"72":15,"73":13,"74":5,"75":2,"76":2,"79":3,"168":1}}],["covers",{"0":{"77":1,"78":1},"1":{"78":1,"79":1},"2":{"0":2,"3":5,"6":5,"31":1,"77":1,"78":4,"79":5,"121":1,"168":1}}],["coverages",{"2":{"6":1,"47":1}}],["coverage",{"0":{"46":1},"2":{"0":1,"6":2,"31":1,"46":3,"47":16}}],["code",{"2":{"7":1,"10":1,"30":5,"40":1,"69":1,"83":1,"91":1,"100":1,"110":1,"120":1,"157":1,"159":1,"170":1}}],["coarse",{"2":{"6":1,"144":1,"147":1}}],["commonly",{"2":{"167":1}}],["common",{"2":{"147":1,"162":1,"164":1,"165":1}}],["commen",{"2":{"62":1}}],["commented",{"2":{"120":1}}],["comments",{"2":{"91":1}}],["comment",{"2":{"28":1}}],["combos",{"2":{"52":1,"55":1,"57":1}}],["combines",{"2":{"44":1}}],["combine",{"2":{"44":2,"45":5,"139":1}}],["combined",{"2":{"6":1,"45":4,"57":1,"136":1,"139":2,"163":1}}],["combination",{"2":{"6":1,"45":1,"128":1,"133":1}}],["coming",{"2":{"47":1}}],["com",{"2":{"6":2,"55":1,"150":1}}],["compilation",{"2":{"159":1}}],["compiled",{"2":{"20":1}}],["compiler",{"2":{"20":1,"133":2,"159":2}}],["complex",{"2":{"126":1,"150":1,"168":1}}],["complexity",{"2":{"6":1,"126":1,"147":1}}],["completly",{"2":{"45":2,"52":1,"57":1,"65":2,"78":1,"91":1}}],["complete",{"2":{"37":1}}],["completely",{"2":{"1":1,"3":4,"6":5,"66":1,"69":1,"79":1,"110":1,"133":1}}],["component",{"2":{"6":1,"37":3,"44":11,"47":8,"55":1,"128":1,"133":3}}],["components",{"2":{"6":2,"43":1,"44":2,"128":2,"133":24}}],["composed",{"2":{"4":4,"6":5,"63":5,"163":2}}],["comprised",{"2":{"6":3,"51":1,"54":1,"56":1}}],["computing",{"2":{"41":1}}],["computational",{"2":{"6":1,"40":1}}],["computation",{"2":{"6":6,"40":1,"44":1,"51":1,"54":1,"56":1,"151":2,"152":2,"153":2}}],["computer",{"2":{"6":1,"40":1}}],["compute",{"2":{"4":1,"6":1,"37":1,"40":1,"147":1}}],["computed",{"2":{"4":4,"6":5,"34":1,"37":3,"40":3,"47":1}}],["compact",{"2":{"170":3}}],["comparisons",{"2":{"168":1}}],["comparing",{"2":{"57":1,"63":1}}],["compares",{"2":{"121":1}}],["compared",{"2":{"63":1}}],["compare",{"2":{"3":1,"4":1,"6":2,"34":1,"57":1,"63":2,"97":1}}],["compatibility",{"2":{"37":1}}],["compatible",{"2":{"1":3,"6":1,"18":1,"25":1,"29":1,"34":1,"37":1,"40":2,"44":1,"47":1,"60":1,"63":1,"66":1,"69":1,"79":1,"83":1,"94":1,"97":1,"100":1,"110":1,"131":1,"133":1,"142":2}}],["couple",{"2":{"166":1}}],["course",{"2":{"132":1}}],["country",{"2":{"170":8}}],["countries",{"2":{"11":1,"150":1}}],["counted",{"2":{"55":2}}],["counters",{"2":{"40":8}}],["counter",{"2":{"6":1,"45":7,"91":1,"119":1,"120":1}}],["counterclockwise",{"2":{"4":1,"6":1,"9":1,"36":2,"37":1}}],["count",{"2":{"45":16,"121":1,"154":1}}],["couldn",{"2":{"9":1,"159":1}}],["could",{"2":{"4":1,"6":1,"37":3,"55":4,"57":1,"60":1,"91":2,"142":1}}],["colname",{"2":{"133":3}}],["col",{"2":{"133":3}}],["collinear",{"2":{"45":5,"51":2,"54":2,"55":12,"56":2}}],["collect",{"2":{"11":3,"13":1,"33":1,"36":2,"40":1,"43":1,"46":2,"49":2,"59":1,"121":3,"133":3,"145":4,"161":2}}],["collections",{"0":{"75":1,"76":1,"89":1,"90":1,"106":1,"107":1,"116":1,"117":1},"2":{"1":2,"6":10,"18":1,"132":1,"133":7,"150":2,"167":1}}],["collection",{"2":{"1":1,"4":7,"6":13,"22":2,"27":2,"34":2,"37":3,"47":2,"60":2,"75":2,"76":2,"89":2,"90":2,"106":2,"107":2,"116":2,"117":2,"126":1,"133":3,"150":1,"156":1,"161":1}}],["column",{"2":{"18":1,"133":16,"166":2,"168":2}}],["colored",{"2":{"169":1}}],["colors",{"2":{"169":2}}],["color=",{"2":{"164":2}}],["colorrange",{"2":{"39":2,"59":1}}],["colorbar",{"2":{"39":1,"59":1,"121":1}}],["colormap",{"2":{"14":1,"39":3,"59":1}}],["color",{"2":{"6":3,"36":1,"39":2,"40":1,"41":1,"43":1,"49":3,"59":2,"62":4,"65":4,"68":1,"78":1,"82":4,"96":4,"109":4,"143":1,"146":1,"163":1,"164":1,"169":5}}],["colinear",{"2":{"3":1,"6":2,"54":1,"96":1,"97":2}}],["conditions",{"2":{"168":1}}],["conencting",{"2":{"152":1}}],["connected",{"2":{"91":5}}],["connect",{"2":{"47":11}}],["connecting",{"2":{"34":1,"163":2}}],["connections",{"2":{"6":2,"136":2,"139":2}}],["convention",{"2":{"43":1}}],["convenience",{"2":{"40":1,"160":1}}],["convexhull",{"2":{"122":1}}],["convex",{"2":{"34":3,"120":1}}],["conversely",{"2":{"45":1}}],["conversion",{"0":{"156":1},"2":{"18":1}}],["converted",{"2":{"18":1,"40":3}}],["converts",{"2":{"6":1,"161":1}}],["convert",{"0":{"70":1,"84":1,"101":1,"111":1},"2":{"6":3,"40":6,"59":1,"121":2,"146":1,"150":3,"156":1,"160":1,"161":1}}],["context",{"2":{"146":4,"164":2}}],["contents",{"2":{"123":1,"133":1}}],["contours",{"2":{"121":1}}],["contour",{"2":{"121":4}}],["continue",{"2":{"37":1,"45":7,"47":1,"52":2,"55":1,"91":1,"135":1,"139":3,"154":1,"170":1}}],["contributions",{"2":{"25":1,"29":1}}],["controlled",{"2":{"20":1}}],["control",{"2":{"19":1}}],["containing",{"2":{"46":1,"169":1}}],["contain",{"2":{"3":1,"6":1,"30":1,"57":1,"65":1,"97":1,"163":1}}],["contained",{"2":{"3":1,"6":1,"9":1,"57":4,"66":1,"78":1,"96":1,"97":1,"133":1,"169":1}}],["contains",{"0":{"64":1,"65":1},"1":{"65":1,"66":1},"2":{"0":2,"3":4,"6":4,"30":1,"31":1,"45":1,"57":1,"64":1,"65":5,"66":4,"131":1,"138":1,"168":1,"169":1}}],["consistent",{"2":{"45":1,"126":1}}],["consistency",{"2":{"18":1}}],["considered",{"2":{"34":1,"40":1}}],["consider",{"2":{"33":1,"36":1,"43":1,"46":1,"47":3,"49":1,"59":2,"62":1,"65":1,"68":1,"78":1,"82":1,"91":3,"93":1,"96":1,"99":1,"109":1}}],["constprop",{"2":{"80":1}}],["constants",{"2":{"45":1}}],["const",{"2":{"31":4,"45":1,"69":4,"83":3,"100":4,"110":4,"130":3,"133":1,"150":4}}],["constrained",{"2":{"6":3,"51":1,"54":1,"56":1}}],["constructing",{"2":{"165":1}}],["construct",{"2":{"158":1}}],["constructors",{"2":{"6":2,"158":2}}],["constructed",{"2":{"1":1,"24":1,"142":1}}],["concepts",{"0":{"26":1},"1":{"27":1,"28":1},"2":{"30":1}}],["concieve",{"2":{"9":1}}],["concavehull",{"2":{"122":1}}],["concave",{"2":{"6":1,"34":2,"43":2,"120":2}}],["vw",{"2":{"150":3}}],["von",{"2":{"121":1}}],["v2",{"2":{"91":9}}],["v1",{"2":{"91":9}}],["v`",{"2":{"40":2}}],["vcat",{"2":{"34":1,"40":1,"133":1}}],["vararg",{"2":{"40":1}}],["vary",{"2":{"34":1}}],["variables",{"2":{"20":1,"40":8,"66":1,"79":1,"94":1}}],["variable",{"2":{"20":1,"52":2}}],["vals",{"2":{"152":9}}],["valign",{"2":{"150":1}}],["validated",{"2":{"52":2,"55":2,"57":2}}],["validate",{"2":{"9":1}}],["valid",{"2":{"1":1,"6":8,"44":1,"51":2,"54":2,"55":3,"56":2,"121":1,"123":3,"124":1,"137":1,"138":1,"154":1,"155":1}}],["val",{"2":{"34":2,"45":2,"55":8,"91":30,"97":4}}],["values=",{"2":{"121":2}}],["values=sort",{"2":{"121":1}}],["values",{"2":{"1":1,"5":3,"6":16,"34":2,"39":3,"40":40,"44":2,"45":5,"47":5,"55":1,"60":2,"91":4,"121":19,"133":2,"152":2,"154":1,"159":1}}],["value",{"2":{"0":1,"4":7,"5":2,"6":15,"14":1,"20":1,"34":1,"36":2,"37":4,"40":45,"45":5,"47":2,"55":7,"59":1,"60":3,"121":6,"152":11,"160":2,"168":1}}],["vs",{"0":{"15":1},"2":{"12":1,"55":2}}],["vᵢ",{"2":{"6":1}}],["v0",{"2":{"6":2}}],["v",{"2":{"5":2,"6":6,"14":4,"40":23,"60":8}}],["visvalingam",{"2":{"148":1}}],["visvalingamwhyatt",{"0":{"153":1},"2":{"0":1,"6":3,"150":4,"153":5}}],["visualized",{"2":{"124":1}}],["visualize",{"2":{"93":1,"164":1}}],["visa",{"2":{"45":1}}],["visited",{"2":{"45":4}}],["view",{"2":{"45":2,"121":1,"139":1,"152":3,"170":1}}],["viewport",{"2":{"14":1}}],["views",{"2":{"1":1,"45":1,"56":1,"142":1}}],["via",{"2":{"6":1,"41":1,"122":1,"143":1,"146":1,"160":2}}],["vect",{"2":{"133":2}}],["vectypes",{"2":{"40":5}}],["vector",{"2":{"1":12,"4":6,"5":1,"6":46,"19":1,"22":1,"27":1,"33":1,"34":10,"40":14,"45":7,"50":6,"51":4,"52":1,"54":2,"55":3,"56":4,"91":1,"97":2,"120":3,"121":4,"124":8,"125":1,"126":1,"133":6,"138":22,"144":1,"145":1,"147":1,"150":1,"151":1,"152":4,"153":1,"154":2,"155":10,"161":15,"163":18,"164":6,"165":9}}],["vectors",{"2":{"1":1,"4":2,"6":5,"18":1,"34":4,"40":3,"45":1,"60":1,"119":1,"121":1,"133":2,"150":1}}],["ve",{"2":{"21":1,"147":1}}],["vein",{"2":{"7":1}}],["version",{"2":{"160":1}}],["versa",{"2":{"45":1}}],["vert",{"2":{"154":21}}],["verts",{"2":{"150":2}}],["vertical",{"2":{"39":1,"47":1,"55":1,"121":1}}],["vertices",{"2":{"6":7,"9":1,"38":4,"40":5,"45":1,"50":2,"71":1,"73":5,"82":1,"85":3,"88":1,"91":1,"112":1,"124":1,"144":2,"145":1,"146":3,"147":3,"150":1,"153":1}}],["vertex",{"2":{"5":1,"6":2,"34":1,"38":2,"40":2,"45":19,"55":12,"71":2,"86":2,"87":1,"91":1,"112":3}}],["very",{"2":{"0":1,"145":1,"170":2}}],["tnew",{"2":{"133":1}}],["ty",{"2":{"121":3}}],["typing",{"2":{"41":1,"143":1,"146":1}}],["typically",{"2":{"38":1,"166":1}}],["typemax",{"2":{"60":1,"121":9}}],["typeof",{"2":{"23":1,"40":3,"133":2,"158":1,"171":1}}],["type2",{"2":{"6":2,"63":4}}],["type1",{"2":{"6":2,"63":5}}],["types",{"0":{"129":1,"157":1},"1":{"158":1,"159":1,"160":1},"2":{"6":4,"19":1,"20":1,"31":1,"40":3,"47":1,"50":1,"91":3,"150":1,"157":3,"159":1,"168":1}}],["type",{"2":{"4":11,"5":1,"6":61,"11":1,"18":2,"19":1,"20":2,"28":2,"34":9,"37":11,"39":1,"40":8,"44":8,"45":21,"47":8,"50":6,"51":7,"52":6,"54":8,"55":19,"56":7,"57":5,"60":28,"63":2,"128":2,"133":42,"134":1,"135":6,"136":6,"141":1,"146":1,"147":1,"150":3,"156":1,"158":3,"159":5,"160":1,"161":3}}],["tx",{"2":{"121":3}}],["tᵢ",{"2":{"40":1}}],["temporary",{"2":{"45":1}}],["term",{"2":{"37":1}}],["terms",{"2":{"6":1,"40":1}}],["teach",{"2":{"30":1}}],["tell",{"2":{"22":1,"91":1,"159":1,"171":1}}],["technically",{"2":{"19":1,"123":1}}],["technique",{"2":{"11":1}}],["test",{"2":{"45":1,"150":2,"160":1}}],["testing",{"0":{"15":1}}],["tests",{"2":{"9":2}}],["tutorial",{"2":{"162":1,"168":1}}],["tutorials",{"2":{"30":2}}],["tups",{"2":{"125":4}}],["tuplepoint",{"2":{"31":3,"161":1}}],["tuple",{"0":{"156":1},"2":{"4":1,"6":19,"31":2,"40":2,"44":3,"45":5,"47":3,"50":1,"55":31,"91":17,"120":2,"121":5,"124":6,"133":2,"138":13,"145":1,"150":2,"152":1,"154":2,"161":6,"163":99,"169":2}}],["tuples",{"2":{"0":1,"6":2,"31":1,"41":1,"44":1,"45":1,"50":1,"51":3,"52":1,"54":2,"55":1,"56":4,"57":5,"125":2,"139":2,"150":2,"156":2,"170":2}}],["turf",{"2":{"120":1}}],["turned",{"2":{"121":1,"133":1}}],["turning",{"2":{"121":8}}],["turn",{"2":{"6":1,"121":1}}],["t2",{"2":{"6":5,"40":47,"70":1,"80":2,"101":1,"111":1}}],["t1",{"2":{"6":6,"40":51,"80":2}}],["t=float64",{"2":{"4":1,"6":3,"44":3}}],["two",{"2":{"3":5,"4":10,"6":23,"19":2,"34":2,"36":1,"40":1,"44":1,"45":6,"47":3,"51":2,"54":1,"55":14,"56":4,"57":3,"60":5,"62":3,"63":12,"65":2,"66":1,"68":1,"78":1,"79":1,"80":1,"82":1,"91":2,"93":2,"94":2,"96":4,"97":5,"99":3,"100":1,"109":2,"121":3,"135":2,"136":1,"138":2,"139":2,"145":1,"160":1,"163":1,"168":3,"169":3}}],["task",{"2":{"133":6}}],["tasks",{"2":{"133":10}}],["taskrange",{"2":{"133":10}}],["tags",{"2":{"45":4}}],["taget",{"2":{"6":2}}],["taylor",{"2":{"6":1,"40":1}}],["table2",{"2":{"168":1}}],["table1",{"2":{"168":3}}],["tables",{"2":{"18":4,"31":1,"133":11}}],["table",{"0":{"166":1},"2":{"6":1,"22":1,"27":2,"133":12,"150":1,"166":1,"167":1,"168":1}}],["taking",{"2":{"6":3,"44":1,"51":1,"52":1,"54":1,"55":1,"56":1,"57":1,"137":1}}],["takes",{"2":{"45":3,"168":1}}],["taken",{"2":{"24":1,"39":1}}],["take",{"2":{"1":1,"6":2,"27":1,"45":3,"51":1,"52":1,"54":1,"55":1,"57":1,"120":2,"121":2,"126":1,"142":1}}],["target=nothing",{"2":{"51":1,"54":1,"56":1}}],["target=gi",{"2":{"45":1}}],["targets",{"2":{"19":1,"34":2,"37":3,"47":3,"60":3}}],["target",{"0":{"19":1},"2":{"1":14,"6":28,"15":3,"18":2,"19":2,"40":1,"44":2,"45":1,"51":5,"52":11,"54":6,"55":10,"56":4,"57":13,"121":1,"126":1,"128":4,"131":5,"132":1,"133":142,"139":2,"142":3,"150":2,"158":3}}],["tilted",{"2":{"47":1}}],["tie",{"2":{"34":1}}],["timings",{"2":{"13":5}}],["timing",{"2":{"13":2}}],["times",{"2":{"4":1,"6":1,"140":1}}],["time",{"2":{"1":5,"13":3,"20":1,"39":1,"121":1,"142":4,"160":1,"163":1,"164":1,"165":2,"169":1,"170":1}}],["title",{"2":{"13":2,"39":2,"121":1,"146":1,"150":2}}],["tip",{"2":{"1":1,"5":1,"6":1,"40":1,"142":1,"168":1}}],["tree",{"2":{"168":1}}],["treating",{"2":{"150":1}}],["treated",{"2":{"91":5,"163":1}}],["treats",{"2":{"37":1,"60":1}}],["trials",{"2":{"146":2,"150":2}}],["triangles",{"2":{"38":1}}],["triangle",{"2":{"6":1,"38":4,"153":4,"169":1}}],["trivially",{"2":{"126":1}}],["try",{"2":{"53":3,"121":1,"131":1,"133":9,"170":1}}],["tr",{"2":{"37":3}}],["trues",{"2":{"139":3}}],["true",{"0":{"20":1},"2":{"1":5,"3":25,"4":3,"6":42,"34":7,"37":1,"39":2,"41":1,"45":30,"47":6,"50":1,"51":1,"52":2,"54":1,"55":1,"56":2,"57":3,"60":4,"63":21,"65":1,"66":1,"68":2,"69":6,"71":1,"72":1,"73":4,"75":1,"76":1,"78":2,"79":1,"80":9,"82":2,"83":2,"85":1,"86":1,"87":3,"89":1,"90":1,"91":78,"93":3,"94":1,"96":2,"97":18,"99":2,"100":6,"103":1,"104":1,"106":1,"107":1,"109":2,"110":7,"112":1,"113":1,"114":4,"116":1,"117":1,"120":4,"121":5,"133":8,"139":1,"143":1,"146":1,"150":1,"159":2,"168":1,"171":1}}],["traditional",{"2":{"121":1}}],["traverse",{"2":{"45":1}}],["traced",{"2":{"45":1}}],["traces",{"2":{"45":1}}],["trace",{"2":{"45":2,"51":1,"54":1,"56":1}}],["track",{"2":{"45":3,"139":2}}],["tracing",{"2":{"6":1,"45":4,"47":1,"52":5,"55":2,"57":2}}],["transverse",{"2":{"164":1}}],["translate",{"2":{"39":2}}],["translation",{"2":{"1":2,"6":2,"150":2,"155":2,"163":3,"165":1}}],["transformations",{"2":{"31":10}}],["transformation",{"0":{"155":1},"2":{"6":1,"121":1,"134":1,"142":1,"162":1}}],["transform",{"2":{"0":2,"1":6,"6":3,"15":2,"31":1,"126":1,"142":2,"150":1,"155":4,"163":4,"165":1}}],["trait`",{"2":{"133":1}}],["trait2",{"2":{"60":10,"63":2,"85":2,"86":2,"97":2,"102":2,"104":2,"105":2}}],["trait1",{"2":{"60":12,"63":2,"85":2,"86":2,"97":2,"102":2,"104":2,"105":2}}],["traits",{"2":{"6":2,"22":1,"97":1,"131":2,"135":2,"150":2,"158":3}}],["trait",{"2":{"1":5,"3":2,"4":2,"6":17,"18":1,"22":7,"24":1,"31":1,"34":2,"37":5,"40":6,"44":7,"47":2,"50":3,"51":2,"52":2,"54":6,"55":4,"56":2,"57":2,"60":7,"63":11,"69":3,"80":2,"83":3,"91":4,"97":10,"100":3,"110":3,"120":1,"126":1,"128":2,"131":3,"133":49,"135":9,"136":1,"147":1,"150":2,"158":8,"161":7,"163":1}}],["traittarget",{"0":{"158":1},"2":{"0":1,"1":2,"6":8,"34":1,"37":1,"44":1,"47":1,"51":2,"52":4,"54":3,"55":4,"56":2,"57":4,"60":1,"126":2,"129":1,"133":10,"147":1,"150":1,"157":1,"158":20}}],["thus",{"2":{"34":1,"37":1,"45":3,"52":1,"55":1,"57":1}}],["those",{"2":{"34":1,"45":1,"55":1,"71":1,"112":1}}],["though",{"2":{"24":1,"124":1}}],["thing",{"0":{"28":1}}],["things",{"2":{"9":1}}],["this",{"0":{"28":1},"2":{"0":1,"1":1,"3":1,"4":6,"5":1,"6":27,"7":1,"19":3,"20":2,"22":1,"25":2,"27":1,"29":2,"31":1,"33":2,"34":6,"36":2,"37":9,"39":3,"40":11,"41":2,"43":1,"44":4,"45":26,"46":1,"47":4,"49":1,"50":5,"52":1,"53":1,"55":5,"56":1,"57":2,"59":4,"60":6,"63":4,"65":1,"66":2,"68":3,"69":3,"76":1,"78":1,"79":2,"80":1,"83":3,"90":1,"91":3,"94":2,"96":1,"97":4,"100":3,"107":1,"109":1,"110":3,"117":1,"119":1,"120":3,"121":8,"122":2,"123":3,"125":3,"126":2,"131":2,"133":17,"134":1,"135":6,"136":7,"137":4,"139":3,"140":2,"141":2,"142":4,"143":3,"144":3,"145":5,"146":5,"147":4,"148":2,"150":3,"154":9,"155":1,"156":1,"157":3,"158":2,"159":3,"160":2,"161":1,"162":1,"163":2,"164":4,"165":3,"166":3,"167":1,"168":3,"169":3,"170":3,"171":1}}],["three",{"2":{"30":1,"38":1,"55":1}}],["thread",{"2":{"133":6}}],["threading",{"0":{"133":1},"2":{"133":7,"159":1}}],["threads",{"2":{"1":1,"6":1,"133":10}}],["threaded=",{"2":{"133":8}}],["threaded=true",{"2":{"133":1}}],["threaded=false",{"2":{"37":1,"44":4,"47":2,"60":8,"133":2,"140":1,"150":1}}],["threaded==true",{"2":{"1":1,"6":1,"133":1}}],["threaded",{"2":{"1":3,"4":1,"6":7,"20":1,"34":2,"37":1,"44":3,"47":3,"60":5,"130":1,"133":47,"140":1,"147":6,"150":1,"159":2}}],["through",{"2":{"6":4,"34":1,"40":1,"45":3,"47":1,"49":1,"50":2,"69":1,"91":5,"110":1,"121":1,"131":1,"133":1,"136":2,"139":2,"152":1,"160":1,"163":1}}],["thrown",{"2":{"131":1}}],["throws",{"2":{"6":1,"160":1}}],["throw",{"2":{"4":1,"6":1,"57":1,"63":1,"121":1,"133":5}}],["than",{"2":{"1":1,"3":1,"6":11,"11":1,"45":2,"71":1,"80":1,"97":1,"112":1,"120":1,"121":2,"132":1,"133":1,"136":2,"137":1,"138":1,"139":2,"144":1,"146":2,"147":1,"151":1,"160":2}}],["that",{"2":{"1":1,"3":3,"4":8,"6":43,"9":1,"18":3,"21":1,"22":4,"23":3,"24":1,"25":1,"29":1,"30":1,"34":4,"36":2,"37":4,"40":4,"41":2,"43":2,"44":3,"45":17,"46":3,"47":5,"51":4,"52":5,"54":4,"55":14,"56":3,"57":5,"60":2,"62":1,"63":11,"65":4,"66":1,"68":2,"69":1,"79":1,"82":1,"83":1,"91":3,"93":1,"94":1,"96":2,"97":10,"99":2,"100":2,"102":2,"109":3,"110":1,"112":3,"120":1,"121":4,"123":3,"124":2,"125":1,"126":1,"128":2,"133":4,"134":3,"135":2,"136":4,"137":2,"138":3,"139":4,"142":1,"144":2,"145":2,"146":3,"147":2,"150":2,"152":1,"154":1,"158":1,"159":1,"160":1,"164":4,"165":1,"166":2,"167":3,"168":1,"169":2}}],["theorem",{"2":{"60":1}}],["themselves",{"2":{"40":1}}],["them",{"2":{"6":1,"25":1,"29":1,"45":1,"121":2,"122":2,"124":2,"128":1,"133":1,"137":1,"138":1,"150":1,"163":1,"165":1,"167":3}}],["thereof",{"2":{"126":1}}],["therefore",{"2":{"59":1,"123":1}}],["there",{"2":{"6":3,"18":1,"34":1,"40":2,"41":1,"45":3,"47":1,"50":2,"52":1,"53":1,"55":6,"57":1,"91":1,"97":2,"121":3,"122":1,"124":1,"126":1,"133":4,"145":1,"154":1,"158":1,"160":1,"164":2,"167":3}}],["then",{"2":{"6":5,"18":1,"22":1,"27":1,"34":3,"40":2,"45":6,"47":1,"51":1,"53":2,"54":2,"55":6,"56":2,"57":2,"91":1,"121":2,"131":1,"133":3,"137":1,"146":2,"150":1,"164":1,"168":1,"169":1}}],["their",{"2":{"3":1,"4":1,"6":2,"40":1,"43":2,"57":1,"60":2,"88":1,"97":1,"99":1,"103":1,"104":1,"113":3,"114":3,"124":1,"126":1,"133":1,"138":1,"140":1}}],["they",{"2":{"3":3,"4":11,"6":25,"18":1,"19":1,"20":1,"24":2,"38":1,"44":2,"45":8,"47":2,"51":2,"54":1,"55":6,"56":2,"57":3,"62":3,"63":16,"69":1,"82":1,"86":2,"87":1,"88":1,"91":2,"93":1,"96":2,"97":4,"102":1,"104":1,"105":1,"113":1,"114":1,"121":6,"123":1,"133":1,"136":2,"139":2,"145":1,"154":1,"157":1,"169":1}}],["these",{"2":{"1":2,"6":5,"20":1,"34":1,"40":5,"45":3,"57":1,"62":1,"63":1,"65":1,"69":1,"78":1,"80":2,"82":1,"83":1,"93":1,"96":1,"97":1,"99":2,"100":1,"109":1,"110":1,"120":1,"121":3,"131":1,"133":2,"142":1,"146":1,"150":2,"160":1,"167":1,"168":1}}],["the",{"0":{"27":1,"30":1,"43":1},"2":{"1":28,"3":64,"4":112,"5":12,"6":393,"7":5,"9":3,"10":1,"11":3,"18":4,"19":5,"20":3,"21":5,"22":10,"23":2,"24":4,"25":3,"27":3,"29":3,"30":4,"33":1,"34":63,"36":12,"37":43,"38":15,"39":12,"40":71,"41":6,"43":6,"44":25,"45":116,"46":7,"47":47,"49":2,"50":7,"51":27,"52":23,"53":1,"54":27,"55":82,"56":29,"57":70,"59":11,"60":81,"62":5,"63":47,"65":9,"66":11,"68":8,"69":25,"72":8,"73":9,"74":3,"75":3,"76":2,"78":4,"79":11,"80":5,"82":2,"83":21,"85":8,"86":6,"87":4,"89":3,"90":2,"91":123,"93":5,"94":6,"96":5,"97":26,"99":5,"100":21,"102":6,"103":10,"104":7,"105":3,"106":3,"107":2,"109":7,"110":24,"112":2,"113":9,"114":9,"115":6,"116":2,"117":2,"119":1,"120":8,"121":47,"122":1,"123":5,"124":5,"125":4,"126":8,"128":4,"130":2,"131":11,"133":84,"134":2,"135":13,"136":10,"137":4,"138":8,"139":6,"140":1,"141":5,"142":14,"143":2,"144":3,"145":5,"146":26,"147":17,"148":3,"150":18,"151":3,"152":6,"153":3,"154":2,"155":3,"156":1,"157":2,"159":5,"160":21,"163":10,"164":11,"165":10,"166":2,"167":4,"168":10,"169":17,"170":3}}],["t",{"2":{"0":1,"4":28,"6":56,"9":1,"19":1,"31":8,"34":32,"37":41,"40":26,"44":38,"45":74,"47":44,"50":18,"51":12,"52":12,"54":12,"55":156,"56":10,"57":20,"60":87,"63":17,"68":1,"86":1,"91":24,"97":1,"99":1,"103":2,"104":1,"121":14,"133":10,"136":2,"139":2,"146":3,"147":5,"150":1,"156":7,"158":14,"159":2,"160":3,"161":10,"163":4,"170":1}}],["tokyo",{"2":{"170":1}}],["toy",{"2":{"168":1}}],["together",{"2":{"55":1,"57":1,"163":1,"169":1}}],["touching",{"0":{"103":1},"2":{"55":1,"57":1}}],["touch",{"0":{"104":1,"105":1,"106":1},"2":{"45":1,"99":1,"102":2,"104":1,"106":1}}],["touches",{"0":{"98":1,"99":1,"102":1},"1":{"99":1,"100":1},"2":{"0":2,"3":3,"6":3,"31":1,"98":1,"99":3,"100":11,"101":6,"102":11,"103":15,"104":9,"105":8,"106":3,"107":4,"168":1}}],["totally",{"2":{"56":1}}],["total",{"2":{"37":1,"40":2,"45":2,"47":1}}],["towards",{"2":{"25":1,"29":1}}],["topright",{"2":{"150":1}}],["topologypreserve",{"2":{"148":1}}],["topology",{"2":{"148":1}}],["top",{"2":{"24":1,"30":1,"45":1,"121":1}}],["took",{"2":{"170":1}}],["tools",{"2":{"21":1}}],["too",{"2":{"6":1,"55":1,"144":1,"147":1}}],["tol^2",{"2":{"151":1,"152":1}}],["tolerances",{"2":{"153":1,"154":29}}],["tolerance",{"2":{"151":1,"152":1,"153":1,"154":17}}],["tol",{"2":{"6":12,"146":2,"150":18,"151":7,"152":15,"153":8,"154":18}}],["todo",{"2":{"3":2,"6":2,"45":1,"55":1,"80":4,"97":1,"121":1,"125":1,"133":1,"150":1,"159":1}}],["to",{"0":{"9":1,"19":1,"30":1,"53":1,"70":1,"84":1,"101":1,"111":1},"2":{"0":2,"1":22,"3":1,"4":33,"5":4,"6":141,"7":2,"9":3,"10":2,"11":2,"13":1,"18":3,"19":4,"20":2,"21":2,"22":9,"23":1,"24":2,"25":3,"27":4,"28":1,"29":3,"30":2,"33":1,"34":8,"36":1,"37":4,"38":4,"39":1,"40":26,"41":2,"43":2,"44":5,"45":32,"46":1,"47":12,"49":1,"50":3,"51":8,"52":4,"54":8,"55":27,"56":7,"57":11,"59":6,"60":32,"62":2,"63":17,"65":1,"66":1,"68":2,"69":7,"78":3,"79":1,"80":2,"82":1,"83":7,"91":21,"93":2,"94":1,"96":3,"97":7,"99":1,"100":7,"102":1,"109":1,"110":7,"120":4,"121":16,"123":2,"124":3,"126":4,"128":4,"130":7,"131":6,"132":1,"133":51,"134":4,"135":8,"136":5,"137":3,"138":1,"139":4,"140":3,"141":1,"142":4,"143":1,"144":3,"145":3,"146":9,"147":7,"148":1,"150":4,"151":1,"152":15,"153":1,"154":2,"155":4,"156":1,"157":2,"158":2,"159":6,"160":9,"161":28,"162":4,"163":6,"164":10,"165":6,"166":7,"167":5,"168":7,"169":5,"170":2,"171":8}}],["rd",{"2":{"150":3}}],["rdbu",{"2":{"59":1}}],["rhumb",{"2":{"120":2}}],["runner",{"2":{"164":1}}],["running",{"2":{"133":3}}],["run",{"2":{"133":8,"170":1}}],["runs",{"2":{"55":2,"119":1}}],["rule",{"2":{"45":1}}],["rules",{"2":{"45":1}}],["right=2",{"2":{"45":1}}],["right",{"2":{"40":1,"45":4,"50":1,"60":1,"120":1,"152":19,"154":5,"163":1,"168":1}}],["ring4",{"2":{"165":2}}],["ring3",{"2":{"164":1}}],["ring2",{"2":{"163":2}}],["ring1",{"2":{"163":2}}],["rings",{"0":{"73":1,"87":1,"104":1,"114":1,"123":1},"1":{"124":1,"125":1},"2":{"4":4,"6":6,"9":2,"37":1,"44":1,"45":3,"55":1,"63":7,"119":1,"121":5,"125":1,"136":1,"150":1}}],["ring",{"2":{"4":7,"6":13,"9":1,"31":1,"34":3,"37":2,"40":1,"43":1,"44":4,"45":12,"47":13,"57":3,"60":5,"63":4,"71":1,"72":2,"73":5,"85":1,"87":1,"91":2,"102":1,"103":1,"104":3,"112":1,"113":2,"114":4,"120":3,"121":11,"123":2,"124":1,"125":14,"134":1,"163":1}}],["rtrees",{"2":{"24":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":{"150":1,"152":1,"154":1}}],["routines",{"2":{"11":1}}],["row",{"2":{"133":3}}],["rows",{"2":{"133":2}}],["robust",{"0":{"15":1}}],["rotate",{"2":{"47":1}}],["rotation",{"2":{"1":1,"6":1,"155":1}}],["rotations",{"2":{"1":3,"6":3,"155":3}}],["rotmatrix2d",{"2":{"150":1}}],["rotmatrix",{"2":{"1":1,"6":1,"155":1}}],["r",{"2":{"6":1,"9":1,"13":11,"14":12,"146":1,"154":2,"163":6,"164":2,"165":4}}],["rᵢ₋₁",{"2":{"40":20}}],["rᵢ∗rᵢ₊₁+sᵢ⋅sᵢ₊₁",{"2":{"6":1}}],["rᵢ₊₁",{"2":{"6":1,"40":29}}],["rᵢ",{"2":{"6":2,"40":49}}],["ramer",{"2":{"152":1}}],["raster",{"0":{"121":1},"2":{"121":4}}],["ray",{"2":{"91":4}}],["rawcdn",{"2":{"150":1}}],["raw",{"2":{"22":1}}],["range",{"2":{"13":8,"14":4,"121":1,"133":4}}],["ranges",{"2":{"6":1,"121":2}}],["randomly",{"2":{"169":2}}],["random",{"2":{"150":2}}],["rand",{"2":{"6":1,"121":1,"169":2}}],["rather",{"2":{"6":1,"121":1,"138":1}}],["ratio",{"2":{"6":7,"55":1,"146":1,"150":1,"151":4,"152":6,"153":4,"154":11}}],["radii",{"2":{"6":1,"146":1}}],["radius`",{"2":{"146":1}}],["radius",{"2":{"6":7,"40":13,"146":4}}],["radialdistance",{"0":{"151":1},"2":{"0":1,"6":2,"148":1,"150":4,"151":4}}],["rrayscore",{"2":{"1":1,"6":1,"155":1}}],["rring",{"2":{"1":1,"6":1,"155":1}}],["rewrap",{"2":{"133":3}}],["req",{"2":{"91":44}}],["requirment",{"2":{"137":1}}],["requirments",{"2":{"91":5}}],["requirement",{"2":{"123":1}}],["required",{"2":{"69":3,"83":3,"100":3,"110":3,"145":1,"162":1}}],["require",{"2":{"68":2,"69":6,"83":3,"91":32,"100":3,"110":3}}],["requires",{"2":{"41":1,"63":1,"65":1,"69":2,"72":3,"73":3,"74":1,"83":1,"86":3,"87":2,"88":1,"100":1,"103":3,"104":1,"105":1,"109":1,"110":1,"113":3,"114":3,"115":1,"143":1,"146":1,"160":1}}],["requests",{"2":{"25":1,"29":1}}],["reflected",{"2":{"150":3}}],["ref",{"2":{"59":1}}],["referring",{"2":{"91":1}}],["refer",{"2":{"6":1,"121":1}}],["referece",{"2":{"1":2,"142":2}}],["references",{"2":{"6":1,"40":1}}],["reference",{"0":{"164":1,"165":1},"2":{"0":1,"162":2,"164":1}}],["reveal",{"2":{"57":1}}],["reveals",{"2":{"57":1}}],["reverse",{"2":{"36":1,"39":1,"40":1,"45":2,"163":2}}],["rev",{"2":{"56":1}}],["render",{"2":{"39":1}}],["rendering",{"2":{"39":3,"40":1}}],["rename",{"2":{"10":1}}],["regardless",{"2":{"55":1,"91":1}}],["regions",{"2":{"52":3,"55":5,"56":1,"57":3,"91":2,"170":1}}],["region",{"2":{"41":2,"55":3,"57":2,"170":1}}],["register",{"2":{"31":3,"40":3}}],["regular",{"0":{"15":1}}],["readable",{"2":{"167":1}}],["readability",{"2":{"45":1}}],["read",{"2":{"150":2,"164":2}}],["reached",{"2":{"133":4}}],["reaches",{"2":{"131":1}}],["reach",{"2":{"131":1}}],["reasons",{"2":{"160":1}}],["reason",{"2":{"20":1,"123":1,"137":1,"159":1}}],["real`",{"2":{"146":1,"147":1}}],["really",{"2":{"37":1,"91":1,"121":1,"159":1}}],["real=1",{"2":{"6":2,"146":2}}],["real=6378137`",{"2":{"146":1}}],["real=6378137",{"2":{"6":2,"146":1}}],["real",{"0":{"170":1},"2":{"5":1,"6":13,"34":1,"40":45,"44":2,"55":1,"146":3,"147":1,"154":5,"168":1}}],["related",{"2":{"126":1}}],["relation",{"2":{"45":2}}],["relations",{"2":{"31":10,"80":1,"97":1}}],["relationship",{"2":{"19":1,"168":2}}],["relative",{"2":{"40":3}}],["relevant",{"2":{"10":1}}],["reducing",{"2":{"133":1}}],["reduced",{"2":{"151":1,"152":1,"153":1}}],["reduces",{"2":{"23":1,"57":1}}],["reduce",{"2":{"1":1,"6":1,"121":1,"133":2,"135":1}}],["redundant",{"2":{"45":1}}],["red",{"2":{"14":1,"43":2,"59":1,"68":1,"78":1,"93":1,"163":1,"164":1,"169":2}}],["removal",{"2":{"45":1}}],["removes",{"2":{"45":1,"126":1}}],["removed",{"2":{"45":3,"52":5,"121":1}}],["remove",{"2":{"37":1,"45":33,"47":1,"50":2,"51":5,"54":5,"56":2,"139":2,"151":1,"152":3,"154":4}}],["removing",{"2":{"6":3,"45":1,"52":1,"151":1,"152":1,"153":1}}],["remainingnode",{"2":{"121":3}}],["remaining",{"2":{"45":1,"63":1,"91":2,"152":1}}],["remain",{"2":{"1":1,"6":9,"133":1,"150":2}}],["resolution",{"2":{"164":1}}],["resolved",{"2":{"121":1}}],["reset",{"2":{"45":1}}],["resize",{"2":{"13":1,"14":1,"45":2}}],["resampled",{"2":{"6":1,"147":1}}],["respectivly",{"2":{"97":1}}],["respectively",{"2":{"45":1,"133":1,"163":1}}],["respect",{"2":{"6":2,"54":1,"55":1,"91":6}}],["rest",{"2":{"6":1,"40":2,"56":1}}],["resulting",{"2":{"50":1,"57":1,"121":1,"169":1}}],["results",{"2":{"3":2,"6":2,"55":1,"80":1,"97":1,"124":1,"133":2,"152":25,"163":3}}],["result",{"2":{"1":2,"3":5,"4":5,"6":13,"23":1,"34":1,"37":2,"47":1,"55":15,"60":2,"66":1,"69":1,"79":1,"94":1,"110":1,"133":2,"146":3,"154":6}}],["recieves",{"2":{"133":2}}],["recucing",{"2":{"133":1}}],["recursive",{"2":{"131":1}}],["recursively",{"2":{"4":1,"6":1,"131":1,"140":1}}],["recalculate",{"2":{"132":1}}],["recent",{"2":{"45":1,"52":1,"55":1,"57":1}}],["rect",{"2":{"33":3,"36":5,"46":3,"59":7}}],["rectangle",{"2":{"33":2,"36":2,"39":2,"46":2,"47":1,"59":2,"145":5,"146":8,"169":2}}],["recommended",{"2":{"18":1}}],["reconstructing",{"2":{"150":1}}],["reconstructed",{"2":{"22":1}}],["reconstruct",{"2":{"0":2,"1":1,"6":3,"22":1,"128":2,"133":29}}],["replace",{"2":{"45":1,"121":2,"152":1}}],["replaced",{"2":{"18":1}}],["repl",{"2":{"41":1,"143":1,"146":1}}],["repeat",{"2":{"44":1,"45":3,"63":6}}],["repeating",{"2":{"37":1,"57":1}}],["repeated",{"2":{"4":3,"6":3,"9":1,"34":2,"40":1,"45":2,"57":2,"60":2,"63":4,"91":1}}],["represented",{"2":{"169":1}}],["represent",{"2":{"21":1,"40":1,"45":4,"63":1}}],["representing",{"2":{"6":1,"52":1,"55":1,"57":1,"59":1,"63":1,"170":1}}],["represents",{"2":{"6":1,"135":2,"136":1}}],["reprojects",{"2":{"142":1}}],["reprojection",{"0":{"142":1},"1":{"143":1}}],["reproject",{"2":{"0":1,"1":4,"31":2,"126":1,"142":6,"143":2}}],["re",{"2":{"1":1,"6":1,"21":1,"155":1,"162":1,"164":1}}],["retreivable",{"2":{"1":1,"142":1}}],["returnval",{"2":{"91":9}}],["returntype",{"2":{"23":1}}],["returning",{"2":{"22":1,"41":1,"52":2}}],["return",{"0":{"18":1},"2":{"1":1,"3":18,"4":2,"6":37,"13":3,"14":3,"19":2,"28":1,"34":5,"37":5,"40":20,"41":1,"44":4,"45":36,"47":12,"50":12,"51":5,"52":4,"54":4,"55":18,"56":6,"57":9,"60":8,"63":30,"66":1,"69":1,"75":2,"76":2,"79":1,"80":18,"83":2,"89":2,"90":2,"91":71,"93":1,"94":1,"97":28,"100":1,"102":2,"106":2,"107":2,"110":1,"116":2,"117":2,"120":10,"121":12,"123":1,"125":4,"133":26,"135":6,"136":2,"139":2,"141":2,"142":1,"147":4,"150":3,"151":1,"152":5,"153":3,"154":7,"155":2,"156":2,"160":3,"161":8}}],["returned",{"2":{"1":1,"6":10,"18":2,"19":1,"45":3,"50":1,"51":2,"54":2,"55":2,"56":2,"121":1,"128":1,"133":2,"142":1,"150":1,"159":1}}],["returns",{"2":{"1":1,"3":5,"4":4,"5":3,"6":23,"18":2,"22":1,"34":1,"37":2,"40":6,"44":3,"45":4,"47":6,"50":1,"51":1,"55":1,"56":1,"60":8,"62":1,"65":2,"66":1,"69":1,"78":2,"79":1,"82":1,"91":4,"94":1,"97":2,"110":1,"121":2,"133":2,"147":1,"156":1,"168":1}}],["rebuilt",{"2":{"1":1,"6":2,"128":1,"133":2}}],["rebuild",{"2":{"0":2,"6":4,"128":4,"131":1,"133":10,"147":1,"150":2}}],["psa",{"2":{"133":2}}],["pb",{"2":{"80":2}}],["p0",{"2":{"60":9}}],["p3",{"2":{"45":8,"153":4}}],["ptm",{"2":{"120":3}}],["ptj",{"2":{"120":5}}],["pti",{"2":{"120":3}}],["ptrait",{"2":{"60":2}}],["pts",{"2":{"45":22,"50":7}}],["pt",{"2":{"45":114,"50":2,"55":26,"91":8,"152":4}}],["pt2",{"2":{"45":14,"55":2}}],["pt1",{"2":{"45":18,"55":2}}],["pn",{"2":{"102":3}}],["pn2",{"2":{"45":4}}],["pn1",{"2":{"45":4}}],["pfirst",{"2":{"37":3}}],["pu",{"2":{"169":2}}],["purpose",{"2":{"133":1}}],["pure",{"2":{"121":1}}],["purely",{"2":{"6":1,"22":1,"146":1}}],["push",{"2":{"45":15,"50":5,"51":2,"54":2,"55":2,"56":4,"57":5,"121":3,"125":1,"147":3,"152":3}}],["pull",{"2":{"25":1,"29":1}}],["public",{"2":{"20":1}}],["pick",{"2":{"164":2}}],["piece",{"2":{"45":6,"139":6}}],["pieces",{"2":{"45":12,"50":1,"52":2,"56":4,"91":1,"139":9}}],["pi",{"2":{"13":2}}],["pixels",{"2":{"121":1}}],["pixel",{"2":{"6":2,"121":7}}],["pythagorean",{"2":{"60":1}}],["py",{"2":{"13":2,"14":2}}],["px",{"2":{"13":2,"14":2}}],["peucker",{"2":{"148":2,"150":3,"152":2}}],["peaks",{"2":{"121":2}}],["peculiarities",{"0":{"17":1},"1":{"18":1,"19":1,"20":1}}],["people",{"2":{"9":1}}],["performed",{"2":{"169":1}}],["performs",{"2":{"40":1,"147":1}}],["perform",{"2":{"30":1,"39":1,"40":2,"45":1,"126":1,"168":3,"169":2,"171":1}}],["performing",{"2":{"6":3,"19":1,"40":1,"51":1,"54":1,"56":1,"169":1}}],["performance",{"2":{"4":1,"6":2,"18":1,"121":1,"137":1,"140":1,"150":1,"167":1}}],["per",{"2":{"5":2,"6":2,"39":1,"40":2,"45":5,"121":1,"133":4,"147":1}}],["pl",{"2":{"169":2}}],["plt",{"2":{"163":1}}],["please",{"2":{"45":1}}],["plan",{"2":{"144":1}}],["plane",{"2":{"40":1}}],["place",{"2":{"55":1,"168":1}}],["placement",{"2":{"45":1}}],["plottable",{"2":{"121":1}}],["plotted",{"2":{"43":1}}],["plotting",{"0":{"163":1},"2":{"6":1,"121":1,"144":1,"147":1,"162":1,"163":4,"164":1}}],["plots",{"2":{"39":2}}],["plot",{"0":{"164":1},"2":{"13":1,"39":3,"62":1,"96":1,"121":1,"146":2,"150":4,"162":2,"163":9,"164":5,"165":1,"167":1,"169":1}}],["plus",{"2":{"5":1,"6":1,"40":1}}],["p2y",{"2":{"161":3}}],["p2x",{"2":{"161":3}}],["p2box",{"2":{"39":1}}],["p2",{"2":{"3":2,"4":2,"6":6,"15":12,"34":12,"37":9,"45":18,"47":19,"56":2,"60":15,"63":11,"69":2,"78":2,"91":12,"97":2,"120":3,"145":1,"153":4,"161":3,"163":2}}],["p1y",{"2":{"161":3}}],["p1x",{"2":{"161":3}}],["p1",{"2":{"3":3,"4":2,"6":7,"15":12,"34":21,"37":8,"39":4,"45":9,"47":25,"49":1,"56":2,"60":15,"63":14,"68":5,"69":3,"78":5,"91":4,"97":2,"102":3,"120":3,"153":4,"161":3,"163":1}}],["practice",{"2":{"165":1}}],["pred",{"2":{"168":2,"169":1,"170":2,"171":1}}],["predicate",{"2":{"7":1,"80":1,"168":3,"169":1,"171":5}}],["predicates",{"0":{"12":1,"15":1,"171":1},"1":{"13":1,"14":1,"15":1,"16":1},"2":{"7":4,"12":1,"31":1,"45":5,"53":3,"55":4,"91":1,"168":1,"170":1}}],["pretty",{"2":{"142":1}}],["prettytime",{"2":{"13":2}}],["prevent",{"2":{"52":2,"55":2,"57":2}}],["prev^2",{"2":{"34":2}}],["prev",{"2":{"34":14,"45":69,"120":4}}],["previously",{"2":{"145":1}}],["previous",{"2":{"23":1,"34":1,"133":1,"151":3}}],["preparations",{"2":{"24":1}}],["prepared",{"2":{"24":1,"121":2}}],["prepare",{"0":{"24":1},"2":{"21":1,"24":1}}],["precision",{"2":{"11":1}}],["preserve",{"2":{"150":4,"152":3}}],["preserving",{"2":{"148":1}}],["presentation",{"2":{"6":1,"40":1}}],["present",{"2":{"6":1,"160":1}}],["presence",{"2":{"6":1,"160":1}}],["prescribes",{"2":{"24":1}}],["press",{"2":{"6":1,"40":1}}],["pre",{"2":{"6":1,"56":1,"150":1,"152":2}}],["prefilter",{"2":{"6":1,"150":7}}],["protters",{"2":{"133":2}}],["progressively",{"2":{"131":1}}],["program",{"2":{"21":1}}],["programming",{"2":{"21":1,"30":1}}],["promote",{"2":{"40":5}}],["property",{"2":{"133":2}}],["properties=gi",{"2":{"133":1}}],["properties=namedtuple",{"2":{"133":1}}],["properties=",{"2":{"121":1}}],["properties",{"2":{"6":1,"133":9,"150":1,"154":1}}],["propagate",{"2":{"40":16,"60":4}}],["probably",{"2":{"37":1,"133":1}}],["prod",{"2":{"34":4}}],["product",{"2":{"34":1}}],["process",{"2":{"71":3,"72":3,"73":3,"74":1,"80":1,"85":3,"86":3,"87":2,"88":1,"91":11,"102":1,"103":3,"104":1,"105":1,"112":3,"113":3,"114":3,"115":1,"133":2,"152":1}}],["processed",{"2":{"45":6}}],["processors",{"2":{"31":1,"69":2,"83":2,"100":2,"110":2}}],["processor",{"2":{"31":1}}],["processing",{"2":{"19":1}}],["profile",{"2":{"9":1}}],["provides",{"2":{"164":1}}],["providers",{"2":{"124":1,"138":1}}],["provide",{"0":{"19":1},"2":{"6":6,"33":1,"36":1,"38":1,"43":1,"46":1,"49":1,"51":2,"54":2,"56":2,"59":1,"62":1,"65":1,"68":1,"78":1,"82":1,"91":2,"93":1,"96":1,"99":1,"109":1,"121":1,"154":1}}],["provided",{"2":{"4":1,"6":3,"11":1,"45":1,"60":1,"63":1,"138":1,"146":2,"160":1}}],["projecting",{"2":{"164":1}}],["projection",{"2":{"60":2,"162":1,"164":1}}],["project",{"2":{"9":1}}],["projects",{"2":{"9":1}}],["proj",{"2":{"1":2,"6":3,"142":2,"143":4,"145":1,"146":6,"162":1}}],["prints",{"2":{"143":1}}],["printstyled",{"2":{"41":1,"143":1,"146":1}}],["println",{"2":{"41":1,"143":1,"146":1,"150":2}}],["print",{"2":{"41":2,"143":2,"146":2}}],["primitives",{"2":{"31":1}}],["primitive",{"0":{"126":1},"1":{"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1},"2":{"27":1}}],["primarily",{"2":{"6":1,"25":2,"29":2,"158":1}}],["primary",{"2":{"3":2,"6":3,"69":1,"110":1,"150":1}}],["priority",{"2":{"1":1,"142":1}}],["pay",{"2":{"133":1}}],["paper",{"2":{"91":2}}],["pa",{"2":{"80":2}}],["paths",{"2":{"159":1}}],["pathof",{"2":{"150":2}}],["path",{"2":{"36":3,"164":2}}],["padding",{"2":{"6":2}}],["parquet",{"2":{"167":3}}],["parent",{"2":{"159":1}}],["parse",{"2":{"91":1,"97":1}}],["part",{"2":{"47":2,"57":2,"91":3,"132":1}}],["partition",{"2":{"133":4}}],["partialsort",{"2":{"154":1}}],["partial",{"2":{"47":4}}],["partially",{"2":{"45":2,"57":2}}],["particularly",{"2":{"40":1}}],["particular",{"2":{"28":1,"34":1,"121":1,"164":2}}],["parallel",{"2":{"91":1,"120":1}}],["paradigm",{"0":{"27":1}}],["paradigms",{"0":{"21":1},"1":{"22":1,"23":1,"24":1},"2":{"21":2,"24":1}}],["parameters",{"2":{"6":1,"133":1,"158":2}}],["parameter",{"2":{"6":2,"158":3}}],["params",{"2":{"6":2,"160":10}}],["parlance",{"2":{"5":1,"6":1,"40":1}}],["passes",{"2":{"47":2,"91":1}}],["passed",{"2":{"1":2,"6":7,"121":1,"128":1,"133":2,"142":1,"146":2,"155":1,"160":2,"171":1}}],["passable",{"2":{"40":18}}],["passing",{"2":{"22":1,"133":1,"148":1}}],["pass",{"2":{"5":1,"6":4,"22":1,"40":1,"66":1,"79":1,"91":2,"94":1,"146":1,"147":1,"150":1,"159":1}}],["pairs",{"2":{"55":1,"163":1}}],["pair",{"2":{"3":2,"6":2,"47":1,"97":2,"133":3}}],["packages",{"2":{"6":1,"25":1,"29":1,"123":1,"128":1,"133":1,"157":1,"162":3,"164":1,"167":1}}],["package",{"2":{"1":2,"18":1,"25":2,"29":2,"41":1,"121":1,"142":3,"143":1,"146":1,"164":1,"167":2}}],["page",{"2":{"0":1,"9":1,"27":1,"30":1,"31":1,"34":1,"37":1,"39":1,"40":1,"41":1,"44":1,"45":1,"47":1,"50":1,"52":1,"53":1,"55":1,"57":1,"60":1,"63":1,"66":1,"76":1,"79":1,"80":1,"90":1,"91":1,"94":1,"97":1,"107":1,"117":1,"120":1,"121":1,"122":1,"125":1,"133":1,"136":1,"139":1,"140":1,"141":1,"143":1,"147":1,"154":1,"155":1,"156":1,"160":1,"161":1}}],["p",{"2":{"1":5,"6":5,"13":13,"14":12,"15":2,"33":1,"36":1,"43":1,"45":5,"46":1,"47":5,"52":2,"56":2,"59":3,"62":1,"65":1,"68":1,"78":1,"80":4,"82":1,"91":20,"93":1,"96":1,"99":1,"109":1,"120":4,"121":3,"126":3,"133":3,"141":7,"145":1,"149":1,"150":1,"154":3,"155":9,"156":7,"161":11,"168":1,"169":1}}],["poylgon",{"2":{"55":1,"57":1,"91":1}}],["potential",{"2":{"47":1}}],["potentially",{"2":{"6":2,"45":1,"136":2,"139":2}}],["post",{"2":{"152":2}}],["postitive",{"2":{"59":1}}],["postive",{"2":{"36":1}}],["possibly",{"2":{"133":1}}],["possiblenodes",{"2":{"121":2}}],["possible",{"2":{"6":3,"51":1,"54":1,"56":1,"121":1,"133":2}}],["possibility",{"2":{"131":1}}],["possibilities",{"2":{"55":1}}],["position=",{"2":{"150":1}}],["position",{"2":{"6":1,"120":1,"145":1}}],["positive",{"2":{"4":4,"6":4,"36":2,"37":1,"59":2,"60":3,"147":1,"154":1}}],["polgons",{"2":{"121":1}}],["polgontrait",{"2":{"1":1,"6":1}}],["polar",{"2":{"6":1,"146":1}}],["polynodes",{"2":{"45":7,"51":1,"54":1,"56":1}}],["polynode",{"2":{"45":36}}],["polypoints",{"2":{"40":46}}],["polyogns",{"2":{"121":1}}],["polyogn",{"2":{"34":1}}],["polygns",{"2":{"45":1}}],["polygin",{"2":{"4":1,"6":1,"34":1}}],["polygon3",{"2":{"163":2,"164":1}}],["polygon2",{"2":{"163":6}}],["polygon1",{"2":{"163":4}}],["polygonization",{"2":{"121":1}}],["polygonizing",{"0":{"121":1}}],["polygonized",{"2":{"121":1}}],["polygonize",{"2":{"0":1,"6":6,"9":1,"31":1,"121":31}}],["polygon`",{"2":{"40":3}}],["polygons",{"0":{"74":1,"105":1,"115":1,"137":1},"1":{"138":1,"139":1},"2":{"3":4,"4":3,"5":1,"6":18,"9":1,"19":5,"31":1,"37":5,"38":1,"40":2,"43":1,"44":1,"45":13,"47":1,"50":2,"51":9,"52":5,"54":3,"55":8,"56":6,"57":19,"59":1,"60":1,"63":5,"74":1,"97":5,"115":1,"120":1,"121":18,"124":2,"131":1,"136":3,"137":2,"138":2,"139":10,"148":1,"150":1,"163":3,"164":1,"169":5,"170":3}}],["polygontrait",{"2":{"1":1,"3":4,"4":6,"6":14,"15":3,"19":1,"34":2,"37":3,"40":3,"44":2,"45":2,"47":2,"50":1,"51":5,"52":5,"54":3,"55":5,"56":4,"57":8,"60":2,"63":10,"71":2,"72":1,"73":1,"74":3,"75":1,"80":4,"85":2,"86":2,"87":1,"88":2,"89":1,"97":8,"102":2,"103":1,"104":1,"105":3,"106":1,"112":2,"113":1,"114":1,"115":3,"116":1,"125":2,"126":1,"131":2,"133":1,"135":2,"136":1,"139":2,"150":2,"161":1}}],["polygon",{"0":{"45":1,"48":1,"51":1,"52":1,"55":1,"56":1,"57":1,"88":1},"1":{"49":1,"50":1},"2":{"0":1,"1":4,"3":4,"4":20,"5":9,"6":62,"9":2,"11":3,"15":4,"19":1,"24":1,"33":1,"34":3,"36":2,"37":5,"38":5,"39":16,"40":57,"43":2,"44":4,"45":39,"46":3,"47":4,"49":3,"50":10,"51":5,"52":7,"54":5,"55":5,"56":6,"57":33,"59":3,"60":14,"63":12,"69":1,"71":3,"72":3,"73":4,"74":8,"80":1,"85":3,"86":4,"87":4,"88":4,"91":66,"97":4,"100":1,"102":3,"103":4,"104":5,"105":7,"110":1,"112":3,"113":4,"114":4,"115":8,"120":5,"121":4,"123":4,"124":8,"125":5,"133":1,"134":1,"136":4,"137":3,"138":12,"139":7,"145":1,"146":4,"149":1,"150":9,"155":3,"161":6,"163":12,"164":5,"165":7,"166":2,"169":6}}],["polys",{"2":{"6":2,"45":39,"49":3,"50":10,"51":14,"52":14,"54":9,"55":6,"56":14,"57":28,"139":26}}],["polys1",{"2":{"3":2,"6":2,"97":6}}],["polys2",{"2":{"3":2,"6":2,"97":6}}],["poly",{"2":{"3":2,"6":16,"15":2,"33":1,"36":1,"37":6,"39":2,"40":3,"43":1,"45":107,"46":2,"47":4,"49":4,"50":20,"51":22,"52":12,"54":15,"55":10,"56":19,"57":79,"59":1,"60":3,"63":4,"80":10,"91":21,"97":8,"120":5,"121":5,"139":18,"145":2,"149":2,"150":8,"161":8,"163":2,"169":5}}],["poly2",{"2":{"3":3,"4":2,"6":7,"51":2,"63":2,"91":19,"97":7}}],["poly1",{"2":{"3":3,"4":2,"6":7,"51":2,"63":2,"91":14,"97":7}}],["pointwise",{"0":{"155":1},"2":{"142":1}}],["point1",{"2":{"60":4}}],["point`",{"2":{"55":1}}],["pointedgeside",{"2":{"45":1}}],["point₂",{"2":{"44":13}}],["point₁",{"2":{"44":13}}],["point3s",{"2":{"40":10}}],["point3f",{"2":{"39":1}}],["pointrait",{"2":{"6":1}}],["point2f",{"2":{"39":4,"40":2,"59":1}}],["point2d",{"2":{"39":1}}],["point2",{"2":{"6":2,"40":5,"60":4}}],["pointtrait",{"2":{"1":1,"4":4,"6":9,"22":1,"34":2,"37":1,"40":3,"47":1,"54":2,"60":17,"63":8,"71":6,"75":1,"85":6,"89":1,"102":6,"106":1,"112":6,"116":1,"126":2,"131":1,"133":21,"135":2,"136":1,"140":1,"141":2,"150":2,"155":2,"156":2,"158":2,"161":1}}],["point",{"0":{"85":1,"102":1},"2":{"1":4,"3":10,"4":37,"5":7,"6":83,"9":2,"24":1,"34":12,"37":3,"38":3,"39":1,"40":126,"44":6,"45":97,"47":50,"50":13,"52":9,"54":1,"55":71,"57":9,"59":17,"60":73,"63":27,"66":3,"68":1,"69":2,"71":8,"80":21,"83":2,"85":10,"91":138,"93":1,"96":2,"97":21,"99":1,"100":3,"102":10,"103":1,"105":1,"110":4,"112":11,"120":1,"121":3,"123":1,"124":2,"133":1,"136":2,"137":1,"139":2,"142":1,"144":1,"150":2,"151":3,"152":9,"153":1,"155":2,"161":4,"163":111,"164":7,"165":8,"169":2}}],["points2",{"2":{"3":1,"6":1,"97":3}}],["points1",{"2":{"3":1,"6":1,"97":3}}],["points",{"0":{"71":1,"112":1},"2":{"0":1,"1":3,"3":1,"4":11,"5":1,"6":52,"9":3,"13":1,"34":2,"36":3,"37":3,"39":8,"40":32,"44":1,"45":55,"47":5,"50":3,"51":5,"52":1,"54":8,"55":28,"56":4,"57":1,"59":2,"60":8,"62":2,"63":13,"65":1,"69":6,"71":3,"72":4,"83":6,"85":1,"86":7,"87":3,"91":10,"97":5,"100":5,"102":1,"103":2,"104":4,"105":3,"109":1,"110":5,"112":3,"113":3,"114":3,"115":1,"119":1,"121":3,"133":1,"140":2,"142":1,"145":2,"146":2,"150":11,"151":11,"152":26,"153":10,"154":33,"155":2,"156":2,"161":25,"163":8,"164":1,"168":1,"169":11}}],["pointorientation",{"2":{"0":1,"6":2,"91":2}}],["my",{"2":{"170":1,"171":2}}],["moore",{"2":{"121":1}}],["moved",{"2":{"45":1,"142":1}}],["move",{"2":{"44":1,"91":1}}],["mode",{"2":{"171":3}}],["model",{"2":{"168":1}}],["modify",{"2":{"163":1}}],["modified",{"2":{"133":2}}],["module",{"2":{"142":1,"147":1}}],["modules",{"2":{"6":1,"40":1}}],["mod1",{"2":{"40":5}}],["mod",{"2":{"40":1,"45":1}}],["most",{"2":{"25":1,"29":1,"45":1,"52":1,"55":1,"57":1,"91":1,"150":1,"167":2}}],["monotone",{"2":{"24":1}}],["moment",{"2":{"6":1,"145":1,"147":1}}],["more",{"2":{"6":3,"7":1,"9":1,"10":1,"11":1,"19":1,"27":1,"30":1,"45":1,"51":1,"54":1,"56":1,"91":1,"97":1,"125":1,"133":4,"143":1,"145":1,"147":1,"163":2,"168":1}}],["mistakenly",{"2":{"137":1}}],["missing",{"2":{"128":6,"129":2,"145":4}}],["missed",{"2":{"121":1}}],["mid",{"2":{"47":2,"91":3}}],["midpoint",{"2":{"45":2}}],["middle",{"2":{"45":2}}],["mining",{"2":{"170":1}}],["minimal",{"2":{"170":1}}],["minimize",{"2":{"55":1}}],["minimum",{"2":{"4":7,"6":12,"46":1,"47":2,"60":12,"150":1,"151":1,"153":1}}],["mind",{"2":{"145":1,"169":1}}],["minmax",{"2":{"55":4}}],["min",{"2":{"47":1,"55":16,"60":15,"150":1,"152":3,"153":1,"154":28}}],["minus",{"2":{"36":1}}],["minpoints=0",{"2":{"121":1}}],["minpoints",{"2":{"6":2}}],["might",{"2":{"6":3,"25":1,"29":1,"37":1,"51":1,"54":1,"55":1,"56":1,"134":1,"152":1}}],["mixed",{"2":{"6":4,"150":1}}],["m",{"2":{"5":1,"6":1,"15":10,"40":2,"47":6,"120":2,"164":1}}],["mp",{"2":{"80":2}}],["mp1",{"2":{"4":2,"6":2,"63":7}}],["mp2",{"2":{"4":2,"6":2,"63":8}}],["mason",{"2":{"133":2}}],["manner",{"2":{"168":1}}],["manipulate",{"2":{"167":1}}],["manually",{"2":{"123":1}}],["many",{"2":{"4":1,"5":1,"6":2,"19":1,"30":1,"40":1,"45":1,"50":1,"52":1,"55":2,"57":1,"63":1,"124":1,"140":1}}],["markersize",{"2":{"163":2}}],["marker",{"2":{"163":2}}],["marked",{"2":{"45":6,"52":1,"55":1,"57":1}}],["marking",{"2":{"52":2,"55":2,"57":2}}],["mark",{"2":{"45":2}}],["marks",{"2":{"45":1}}],["mag",{"2":{"34":4}}],["making",{"2":{"45":1,"121":1,"131":1,"138":1,"163":1,"165":2}}],["makie",{"2":{"13":1,"14":1,"33":1,"36":1,"39":3,"43":1,"46":1,"49":4,"59":1,"62":1,"65":1,"68":1,"78":1,"82":1,"93":1,"96":1,"99":1,"109":1,"121":3,"149":1,"150":1}}],["makevalid",{"2":{"150":2}}],["makes",{"2":{"37":1,"45":1,"60":1,"124":1,"133":1,"137":1,"138":1}}],["make",{"2":{"9":1,"25":1,"29":1,"34":1,"45":3,"55":1,"60":1,"97":1,"121":2,"125":1,"131":1,"145":1,"154":1,"157":1,"163":2,"165":1}}],["mainly",{"2":{"40":1,"59":1,"126":1}}],["maintain",{"2":{"37":1}}],["main",{"0":{"26":1},"1":{"27":1,"28":1},"2":{"7":1,"30":1,"45":1,"121":1,"133":1,"146":1}}],["mapped",{"2":{"167":1}}],["maptasks",{"2":{"133":6}}],["mapreducetasks",{"2":{"133":5}}],["mapreduce",{"2":{"52":1,"121":2,"133":8}}],["map",{"0":{"164":1},"2":{"6":1,"13":1,"22":3,"23":1,"27":1,"40":1,"45":1,"55":1,"97":2,"121":17,"125":1,"133":24,"150":1,"158":1,"162":1,"164":1,"165":1,"167":1}}],["matlab",{"2":{"49":1}}],["materializer`",{"2":{"133":1}}],["materializer",{"2":{"18":1,"133":1}}],["mathrm",{"2":{"40":1}}],["math",{"2":{"7":1}}],["mathematically",{"2":{"6":1,"120":1}}],["matches",{"2":{"63":1,"121":1}}],["match",{"2":{"6":1,"63":12,"97":3,"121":1,"128":1,"133":2}}],["matching",{"2":{"3":1,"6":1,"18":1,"63":3,"97":1,"131":2}}],["matrix",{"2":{"6":1,"14":2,"40":1}}],["maximal",{"2":{"55":1}}],["maximum",{"2":{"3":1,"6":4,"14":1,"46":1,"47":4,"80":1,"121":1,"146":1,"147":1,"152":4}}],["max",{"2":{"6":9,"34":2,"47":1,"121":1,"133":2,"145":5,"146":8,"147":7,"152":36,"154":1}}],["made",{"2":{"6":2,"44":1,"45":1,"55":1,"104":1,"131":1,"136":1,"139":1,"153":1}}],["maybe",{"2":{"6":1,"91":4,"128":1,"133":6}}],["may",{"2":{"1":1,"6":5,"19":2,"20":1,"40":2,"45":1,"55":1,"120":1,"122":1,"131":1,"133":4,"137":1,"138":1,"146":1,"158":1}}],["mercator",{"2":{"164":1}}],["merge",{"2":{"133":1}}],["measure",{"2":{"133":1,"144":1}}],["meant",{"2":{"30":1}}],["meaning",{"2":{"3":3,"4":1,"6":4,"20":1,"37":1,"41":1,"97":4,"120":1}}],["means",{"2":{"3":1,"6":2,"36":1,"37":1,"41":1,"68":1,"91":3,"96":1,"97":1,"120":1,"131":1}}],["mean",{"2":{"0":1,"6":5,"21":1,"39":2,"40":5,"133":1}}],["meanvalue",{"2":{"0":1,"5":2,"6":3,"38":1,"39":2,"40":15}}],["meets",{"2":{"91":9,"97":1,"152":1}}],["meet",{"2":{"55":3,"68":1,"69":1,"83":1,"91":7,"100":1,"110":1}}],["memory",{"2":{"40":1,"165":1}}],["mesh",{"2":{"39":1,"133":1}}],["message",{"2":{"6":1,"160":1}}],["me",{"0":{"19":1}}],["mentioned",{"2":{"23":1}}],["mentions",{"2":{"6":1,"160":1}}],["menu",{"2":{"14":3}}],["median",{"2":{"13":4,"133":1}}],["mechanics",{"2":{"6":1,"40":1}}],["met",{"2":{"91":44}}],["meters",{"2":{"6":4,"145":1,"146":4,"164":1}}],["methoderror",{"2":{"31":3}}],["methods",{"0":{"2":1,"3":1,"4":1,"6":1},"1":{"3":1,"4":1},"2":{"1":1,"6":9,"9":1,"25":1,"29":1,"31":26,"40":3,"69":1,"83":1,"100":1,"110":1,"121":1,"128":1,"131":1,"133":2,"145":1,"150":2,"155":1,"158":1,"163":1}}],["method",{"0":{"143":1},"2":{"1":1,"4":1,"5":10,"6":96,"20":1,"34":1,"37":1,"40":37,"41":2,"44":1,"47":1,"55":1,"57":1,"60":4,"63":1,"69":2,"83":2,"97":1,"100":2,"110":2,"121":1,"133":5,"142":1,"143":2,"145":2,"146":9,"147":14,"148":2,"159":1,"160":3,"168":1,"171":1}}],["mutation",{"2":{"166":1}}],["mutlipolygon",{"2":{"4":1,"6":1,"44":1}}],["muladd",{"2":{"40":2}}],["multifloats",{"2":{"13":1,"14":1,"15":1}}],["multifloat",{"2":{"7":1}}],["multilinestringtrait",{"2":{"135":1}}],["multilinestring",{"2":{"6":1,"133":1,"161":2}}],["multi",{"0":{"75":1,"76":1,"89":1,"90":1,"106":1,"107":1,"116":1,"117":1},"2":{"4":2,"6":3,"34":1,"37":1,"47":1,"63":2,"75":1,"76":1,"89":1,"90":1,"106":1,"107":1,"116":1,"117":1}}],["multicurves",{"2":{"37":1,"47":1}}],["multicurve",{"2":{"4":1,"6":1,"37":1}}],["multigeometry",{"2":{"4":2,"6":2,"60":2}}],["multiplication",{"2":{"147":1}}],["multiplied",{"2":{"40":3}}],["multiple",{"2":{"4":1,"6":1,"40":1,"91":1,"140":1,"154":1,"163":1,"167":1}}],["multiply",{"2":{"1":1,"6":1,"155":1}}],["multipolys",{"2":{"57":3}}],["multipoly`",{"2":{"51":2,"54":2,"56":2}}],["multipoly",{"2":{"6":9,"15":3,"51":1,"52":27,"54":1,"55":26,"56":1,"57":24,"139":21,"150":9}}],["multipolygon`",{"2":{"121":1}}],["multipolygons",{"2":{"3":1,"4":1,"6":11,"44":1,"51":3,"54":3,"55":3,"56":3,"59":1,"63":1,"97":2,"138":1,"163":1,"164":1}}],["multipolygon",{"2":{"3":2,"4":5,"6":16,"37":2,"43":1,"51":1,"52":7,"54":1,"55":5,"56":1,"57":6,"63":4,"97":2,"121":7,"133":1,"136":2,"137":7,"138":8,"139":2,"150":3,"163":8,"164":1}}],["multipolygontrait",{"2":{"1":1,"3":4,"4":2,"6":7,"19":1,"52":4,"55":4,"57":4,"63":6,"75":1,"76":1,"89":1,"90":1,"97":8,"106":1,"107":1,"116":1,"117":1,"133":1,"135":1,"139":4}}],["multipoint",{"2":{"4":5,"6":5,"37":1,"63":5,"80":6,"133":4,"150":1,"163":5}}],["multipoints",{"2":{"3":2,"4":1,"6":3,"37":1,"47":1,"63":2,"97":2,"150":1,"163":1}}],["multipointtrait",{"2":{"1":1,"3":2,"4":4,"6":8,"34":2,"37":1,"47":1,"63":8,"75":1,"76":1,"80":4,"89":1,"90":1,"97":4,"106":1,"107":1,"116":1,"117":1,"131":1,"135":1,"150":2,"161":1}}],["multithreading",{"2":{"1":2,"4":1,"6":5,"130":1}}],["must",{"2":{"1":1,"3":8,"4":2,"5":1,"6":23,"9":1,"34":1,"40":5,"41":1,"45":2,"47":3,"50":1,"55":2,"63":5,"66":2,"69":1,"78":1,"79":1,"83":1,"91":13,"97":1,"99":1,"100":1,"110":2,"121":1,"128":1,"133":1,"134":1,"135":3,"136":1,"142":1,"146":1,"147":1,"150":1,"154":4,"160":1}}],["much",{"2":{"0":1,"6":3,"51":1,"54":1,"56":1}}],["mdash",{"2":{"1":4,"3":9,"4":8,"5":3,"6":87,"128":3,"135":1,"136":4}}],["df",{"2":{"166":3,"167":4,"169":10,"170":12}}],["dp",{"2":{"150":3}}],["dy",{"2":{"120":2,"147":3}}],["dy2",{"2":{"120":2}}],["dy1",{"2":{"80":10,"120":2}}],["dyc",{"2":{"80":2}}],["dx",{"2":{"120":2,"147":3}}],["dx2",{"2":{"120":2}}],["dx1",{"2":{"80":10,"120":2}}],["dxc",{"2":{"80":2}}],["drop",{"2":{"57":1,"139":1,"147":1}}],["driven",{"2":{"25":1,"29":1}}],["driving",{"2":{"25":1,"29":1}}],["duplicated",{"2":{"55":2}}],["during",{"2":{"45":1}}],["due",{"2":{"44":1,"45":1,"55":3}}],["datas",{"2":{"171":1}}],["datasets",{"2":{"164":1,"168":1,"169":1}}],["dataset",{"2":{"164":1,"168":1}}],["datainterpolations",{"2":{"144":1}}],["dataframes",{"2":{"166":3,"169":2,"170":1}}],["dataframe",{"2":{"27":1,"166":1,"168":1,"169":5,"170":2}}],["data",{"0":{"121":1,"167":1},"2":{"19":1,"25":1,"29":1,"121":2,"150":10,"162":1,"164":2,"165":2,"166":2,"167":6,"169":1}}],["dataaspect",{"2":{"13":1,"14":1,"33":1,"36":1,"39":2,"43":1,"46":1,"59":2,"121":2,"145":1,"150":1}}],["dashboard",{"0":{"14":1},"2":{"13":1,"14":1}}],["d",{"2":{"1":2,"5":1,"6":1,"40":1,"142":1,"152":3}}],["deu",{"2":{"170":2}}],["demonstrates",{"2":{"169":1}}],["densify",{"2":{"146":3}}],["densifying",{"2":{"146":1}}],["densifies",{"2":{"144":1}}],["denoted",{"2":{"91":1}}],["denotes",{"2":{"45":1}}],["debug",{"2":{"135":1}}],["debugging",{"2":{"40":1,"45":1}}],["de",{"2":{"91":2,"168":1}}],["derivation",{"2":{"55":1}}],["dealing",{"2":{"47":1}}],["delete",{"2":{"80":1,"97":1,"121":1,"152":1}}],["deleteat",{"2":{"45":6,"152":1,"154":2}}],["delayed",{"2":{"45":10,"52":2,"55":2,"57":2}}],["delay",{"2":{"45":14,"51":2,"52":2,"54":2,"55":2,"56":2,"57":2}}],["depend",{"2":{"45":2}}],["depends",{"2":{"45":1,"50":1}}],["depending",{"2":{"1":1,"6":1,"19":1,"55":1,"133":1}}],["depth",{"2":{"40":2}}],["desktop",{"2":{"167":1}}],["dest",{"2":{"164":2}}],["destinaton",{"2":{"164":1}}],["destination",{"2":{"164":4}}],["desired",{"2":{"56":1,"167":1}}],["despite",{"2":{"34":1}}],["describe",{"2":{"21":1}}],["described",{"2":{"6":1,"40":1,"44":1,"45":1}}],["deconstruct",{"2":{"126":1}}],["decomposition",{"2":{"22":1,"126":1}}],["decomposing",{"2":{"22":1}}],["decompose",{"2":{"22":2,"27":1,"40":4,"123":1}}],["decide",{"2":{"121":1}}],["decision",{"2":{"20":1}}],["decrementing",{"2":{"121":1}}],["decrease",{"2":{"44":1}}],["decreaseing",{"2":{"6":1,"150":1}}],["degeneracies",{"2":{"9":1}}],["degenerate",{"2":{"6":1,"40":1,"50":2}}],["degrees",{"2":{"6":1,"33":1,"120":1,"146":1}}],["defauly",{"2":{"52":1}}],["default",{"2":{"1":2,"4":5,"6":13,"34":1,"37":2,"47":1,"51":1,"52":1,"54":1,"55":5,"56":1,"57":2,"60":2,"121":5,"128":1,"133":2,"142":2,"150":2}}],["defaults",{"2":{"1":6,"4":2,"6":14,"130":3,"133":1}}],["defines",{"2":{"45":1,"126":1,"134":1,"157":1}}],["define",{"2":{"39":1,"55":2,"62":1,"121":2,"126":1,"131":1,"133":1,"157":1,"171":2}}],["defined",{"2":{"4":1,"5":1,"6":3,"7":1,"18":1,"34":2,"40":1,"46":1,"47":4,"55":4,"60":2,"119":1,"133":1,"147":1,"157":1}}],["definitions",{"2":{"160":1}}],["definition",{"2":{"4":1,"6":3,"63":5,"68":1,"147":1}}],["defintion",{"2":{"4":3,"6":3,"63":3}}],["deeper",{"2":{"1":1,"6":1,"132":1,"133":2}}],["detrimental",{"2":{"137":1}}],["detection",{"2":{"121":1}}],["determined",{"2":{"45":1,"47":1}}],["determine",{"2":{"45":10,"47":3,"51":2,"54":2,"55":9,"56":2,"69":1,"83":1,"91":9,"97":1,"100":1,"110":1,"152":3,"168":1}}],["determines",{"2":{"37":1,"45":3,"55":1,"91":10}}],["determinant",{"2":{"6":1,"40":1}}],["details",{"2":{"128":3,"129":1,"145":2}}],["detail",{"2":{"30":1}}],["det",{"2":{"0":1,"6":2,"40":4}}],["dirname",{"2":{"150":4}}],["dirty",{"2":{"149":1}}],["directive",{"2":{"133":1}}],["direction",{"2":{"6":1,"45":1,"63":5,"121":3}}],["directly",{"2":{"6":1,"121":1,"146":1}}],["dig",{"2":{"133":1}}],["dict",{"2":{"121":5}}],["didn",{"2":{"57":1,"91":1,"159":1}}],["division",{"2":{"39":1}}],["divided",{"2":{"30":1}}],["div",{"2":{"6":2}}],["div>",{"2":{"6":2}}],["ditance",{"2":{"4":1,"6":1,"60":1}}],["dimensional",{"2":{"5":1,"6":1,"36":1,"40":1}}],["dimensions",{"2":{"3":1,"6":1,"97":2}}],["dimension",{"2":{"1":1,"3":4,"6":4,"80":2,"96":1,"97":4,"142":1}}],["discouraged",{"2":{"165":1}}],["discussion",{"2":{"25":1,"29":1,"50":1}}],["distributed",{"2":{"169":2}}],["distinct",{"2":{"55":1,"121":1}}],["dist",{"2":{"55":40,"60":19,"91":2,"146":8,"152":40}}],["distance`",{"2":{"146":3,"147":1,"160":1}}],["distances",{"2":{"55":1,"59":1,"146":1,"151":5}}],["distance",{"0":{"58":2,"59":2},"1":{"59":2,"60":2},"2":{"0":4,"4":26,"6":47,"31":1,"40":13,"41":3,"47":3,"55":32,"58":2,"59":17,"60":92,"91":1,"126":1,"144":1,"145":5,"146":13,"147":14,"150":1,"151":3,"152":6,"153":1,"171":2}}],["disagree",{"2":{"37":1}}],["disparate",{"2":{"25":1,"29":1}}],["dispatches",{"2":{"6":1,"34":1,"37":1,"40":1,"44":1,"47":1,"60":1,"63":1,"69":1,"83":1,"97":1,"100":1,"110":1}}],["dispatch",{"2":{"4":1,"6":5,"20":1,"40":1,"63":1,"128":1,"133":2,"158":1,"160":1}}],["displaying",{"2":{"164":1}}],["display",{"2":{"13":1,"39":1,"164":1}}],["disjoint",{"0":{"81":1,"82":1,"85":1,"86":1,"87":1,"88":1,"89":1},"1":{"82":1,"83":1},"2":{"0":2,"3":5,"6":7,"19":1,"31":1,"57":2,"81":1,"82":3,"83":11,"84":6,"85":15,"86":18,"87":10,"88":5,"89":4,"90":2,"91":16,"94":3,"136":2,"137":2,"139":7,"168":1}}],["diffs",{"2":{"34":4}}],["diff",{"2":{"6":2,"34":17,"51":5,"52":3,"97":3,"139":8}}],["differs",{"2":{"164":1}}],["differ",{"2":{"4":1,"6":1,"60":1}}],["differently",{"2":{"4":3,"6":4,"34":1,"37":2,"47":1}}],["different",{"2":{"3":1,"4":4,"6":6,"19":1,"24":1,"34":1,"37":4,"45":3,"47":1,"55":2,"97":3,"121":1,"131":1,"133":1,"137":2,"164":2,"167":1}}],["differences",{"0":{"52":1},"2":{"55":1,"152":1}}],["difference",{"0":{"51":1},"2":{"0":1,"6":7,"11":1,"19":1,"31":1,"45":3,"51":12,"52":14,"55":1,"56":1,"57":3,"136":1,"139":1,"146":1}}],["diffintersectingpolygons",{"2":{"0":1,"6":1,"136":1,"139":4}}],["doi",{"2":{"51":2,"54":2,"56":2,"91":1}}],["doing",{"2":{"18":1,"21":1,"133":1,"165":1}}],["dot",{"2":{"34":2,"40":1}}],["doable",{"2":{"9":1}}],["documenter",{"2":{"128":3,"129":1,"145":2}}],["documentation",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"30":1,"39":1}}],["docstring",{"2":{"128":6,"129":2,"145":4}}],["docstrings",{"0":{"127":1},"1":{"128":1},"2":{"7":1}}],["docs",{"0":{"30":1},"2":{"30":1,"121":1}}],["doc",{"2":{"9":1,"10":1}}],["does",{"0":{"18":1},"2":{"7":1,"23":1,"43":1,"55":2,"65":1,"68":3,"91":1}}],["doesn",{"2":{"4":1,"6":2,"37":1,"50":1,"63":1,"146":1,"160":1,"170":1}}],["download",{"2":{"150":1,"164":1}}],["down",{"2":{"6":1,"22":1,"27":1,"40":1,"133":1}}],["doublets",{"2":{"170":2}}],["double",{"2":{"153":4}}],["doubled",{"2":{"6":1,"153":1}}],["douglas",{"2":{"148":2,"150":2,"152":1}}],["douglaspeucker",{"0":{"152":1},"2":{"0":1,"6":5,"148":1,"150":5,"152":6}}],["done",{"0":{"10":1},"2":{"13":1,"14":1,"91":2,"121":1,"126":1,"137":1,"163":1,"168":1}}],["don",{"2":{"4":2,"6":3,"45":4,"51":1,"57":1,"63":6,"86":1,"91":1,"99":1,"103":1,"121":2,"133":3,"147":1,"160":1}}],["do",{"0":{"9":1,"19":1,"53":1},"2":{"1":1,"6":2,"14":1,"19":1,"31":1,"34":1,"37":2,"40":2,"41":1,"44":1,"47":1,"50":1,"57":3,"60":2,"62":1,"63":1,"78":1,"86":2,"87":1,"88":2,"91":1,"121":4,"124":1,"125":1,"126":1,"133":9,"138":1,"141":2,"143":1,"146":1,"150":1,"155":2,"156":2,"164":2,"165":2,"166":3,"169":1,"170":1}}],["automatically",{"2":{"164":1}}],["autmoatically",{"2":{"97":1}}],["ay",{"2":{"120":2}}],["azimuth",{"2":{"120":2}}],["against",{"2":{"63":1,"91":2,"146":1,"150":1}}],["again",{"2":{"55":1,"133":1}}],["a``",{"2":{"52":2}}],["a`",{"2":{"52":7,"55":3,"57":2}}],["away",{"2":{"41":1,"80":1,"171":1}}],["a2y",{"2":{"55":4}}],["a2x",{"2":{"55":4}}],["a2",{"2":{"39":4,"55":54,"97":6}}],["a1y",{"2":{"55":7}}],["a1x",{"2":{"55":7}}],["a1",{"2":{"39":2,"45":9,"55":66,"97":6}}],["america",{"2":{"150":1}}],["am",{"2":{"91":1}}],["ambiguity",{"2":{"60":2,"133":5}}],["amounts",{"2":{"167":1}}],["amount",{"2":{"36":1,"46":1}}],["amp",{"2":{"6":1,"9":1}}],["axes",{"2":{"121":6}}],["ax",{"2":{"13":3,"14":3,"120":2,"163":5}}],["axislegend",{"2":{"145":1,"149":1}}],["axis",{"2":{"13":2,"14":1,"33":1,"36":1,"39":4,"43":1,"46":1,"59":1,"121":2,"145":1,"150":1}}],["axs",{"2":{"13":2}}],["a>",{"2":{"6":2}}],["adjust",{"2":{"55":1}}],["adjacent",{"2":{"45":1,"52":1,"55":1,"57":1}}],["adaptivity",{"0":{"53":1}}],["adaptive",{"2":{"7":1,"13":3,"14":2,"53":1}}],["adapted",{"2":{"51":1,"54":1,"56":1,"120":1}}],["advance",{"2":{"44":2}}],["advised",{"2":{"6":1,"158":1}}],["administrative",{"2":{"170":1}}],["admin",{"2":{"11":1,"150":2}}],["adm0",{"2":{"11":7}}],["additional",{"2":{"167":1}}],["additionally",{"2":{"45":3,"63":1}}],["addition",{"2":{"39":1,"57":1}}],["adding",{"2":{"4":1,"6":4,"7":1,"57":2,"121":1,"140":1,"144":1,"146":2,"147":1}}],["added",{"2":{"6":1,"34":1,"45":6,"47":1,"57":2,"128":1,"133":1,"139":2,"152":1}}],["add",{"2":{"3":1,"6":1,"7":2,"40":1,"41":1,"45":16,"47":1,"50":4,"51":3,"54":1,"55":2,"56":2,"57":9,"80":1,"121":4,"133":1,"144":1,"146":1,"152":10,"159":1,"164":1,"166":2,"168":1}}],["availible",{"2":{"44":1}}],["available",{"0":{"136":1},"2":{"6":3,"31":1,"135":3,"144":1,"145":1,"147":1,"150":1,"154":1,"158":1}}],["average",{"2":{"38":3,"44":4,"55":1}}],["avoid",{"2":{"5":1,"6":7,"40":1,"51":1,"54":1,"55":1,"56":1,"57":1,"121":2,"133":5,"147":1,"151":1,"152":1,"153":1,"163":3}}],["achieve",{"2":{"137":1}}],["across",{"2":{"131":1}}],["acos",{"2":{"34":1}}],["activate",{"2":{"145":1}}],["action",{"2":{"24":2}}],["actions",{"2":{"24":2}}],["actual",{"2":{"10":1,"40":1,"120":1,"125":1,"142":1,"146":1}}],["actually",{"2":{"9":1,"40":4,"55":1,"57":3,"91":1,"121":1,"167":1}}],["actuall",{"2":{"1":1,"6":1,"155":1}}],["access",{"2":{"164":1}}],["accessed",{"2":{"160":1}}],["acceptable",{"2":{"91":1}}],["accept",{"2":{"6":1,"160":1}}],["according",{"2":{"124":1,"137":1,"138":1,"169":1}}],["accordingly",{"2":{"45":1}}],["account",{"2":{"51":1,"54":1}}],["accurary",{"2":{"55":1}}],["accuratearithmetic",{"2":{"11":2}}],["accurate",{"0":{"11":1},"2":{"11":3,"145":1}}],["accumulators",{"2":{"40":1}}],["accumulator",{"2":{"40":1}}],["accumulate",{"2":{"37":1,"44":3}}],["accumulation",{"0":{"11":1},"2":{"40":1}}],["after",{"2":{"6":8,"34":1,"45":3,"133":1,"150":2}}],["ab",{"2":{"45":3,"51":1,"54":1,"55":5,"56":1}}],["able",{"2":{"24":1,"55":1}}],["ability",{"2":{"21":1}}],["about",{"2":{"6":1,"20":2,"28":1,"40":2,"91":1,"123":1}}],["above",{"2":{"4":1,"6":1,"34":1,"44":1,"45":1,"55":1,"57":1,"135":1}}],["abs",{"2":{"34":1,"37":4,"44":1,"47":2,"80":8,"97":2,"121":1,"153":1,"171":1}}],["absolute",{"2":{"4":1,"6":1,"36":1,"37":2}}],["abstractpolygon",{"2":{"133":1}}],["abstractpolygontrait",{"2":{"60":1}}],["abstractpoint",{"2":{"133":1}}],["abstractface",{"2":{"133":1}}],["abstractfloat",{"2":{"31":1,"34":1,"37":2,"45":1,"47":2,"50":1,"51":1,"54":1,"55":1,"56":1,"60":8}}],["abstractrange",{"2":{"121":6}}],["abstractmesh",{"2":{"133":1}}],["abstractmulticurvetrait",{"2":{"75":1,"76":1,"89":1,"90":1,"106":1,"107":1,"116":1,"117":1}}],["abstractmatrix",{"2":{"6":5,"121":13}}],["abstractcurvetrait",{"2":{"34":1,"37":1,"47":1,"71":1,"74":1,"75":1,"80":1,"85":1,"89":1,"102":1,"105":1,"106":1,"112":1,"115":1,"116":1,"120":1,"150":2,"161":3}}],["abstractarrays",{"2":{"131":1}}],["abstractarray",{"2":{"6":1,"128":1,"133":6,"161":2}}],["abstract",{"2":{"6":3,"40":3,"134":1,"135":4,"136":1,"150":3,"159":1}}],["abstractvector",{"2":{"5":1,"6":1,"40":26,"121":8}}],["abstractgeometrytrait`",{"2":{"135":1}}],["abstractgeometrytrait",{"2":{"6":3,"37":2,"47":1,"60":1,"76":1,"90":1,"107":1,"117":1,"128":1,"131":1,"135":4,"136":2,"161":5}}],["abstractgeometry",{"2":{"3":4,"6":4,"66":2,"79":2,"133":1}}],["abstracttrait",{"2":{"1":2,"3":2,"6":8,"50":1,"52":2,"55":4,"57":2,"97":4,"126":1,"128":2,"133":9,"158":3}}],["abstractbarycentriccoordinatemethod",{"2":{"0":1,"5":1,"6":7,"40":18}}],["attribute",{"2":{"167":1}}],["attributed",{"2":{"166":1}}],["attributes",{"0":{"166":1},"2":{"162":1,"166":3}}],["attempts",{"2":{"91":1}}],["attach",{"2":{"1":2,"4":1,"6":5,"130":1}}],["atomic",{"2":{"7":1}}],["at",{"2":{"3":4,"5":1,"6":6,"9":1,"20":1,"22":1,"24":1,"30":1,"34":2,"36":1,"37":1,"39":1,"40":2,"45":4,"47":2,"55":8,"57":2,"91":17,"97":6,"99":1,"100":1,"103":3,"104":2,"105":2,"106":1,"107":1,"110":1,"116":1,"120":1,"131":1,"133":1,"145":1,"147":1,"152":1,"154":1,"164":1,"165":2}}],["arbitrarily",{"2":{"131":1}}],["arbitrary",{"2":{"38":1,"126":1,"163":1}}],["around",{"2":{"39":1,"40":2,"50":1,"59":1,"63":1,"121":1,"150":1,"169":1}}],["argmin",{"2":{"154":1}}],["argtypes",{"2":{"41":2,"143":1,"146":1}}],["args",{"2":{"13":2}}],["argumenterror",{"2":{"57":1,"121":1,"133":5}}],["argument",{"2":{"4":5,"6":10,"34":1,"37":2,"44":1,"47":1,"51":1,"54":1,"56":1,"60":2,"133":2,"160":2,"164":1,"165":1}}],["arguments",{"2":{"1":1,"3":1,"6":5,"45":1,"69":2,"83":1,"100":1,"110":1,"142":1,"146":2,"147":1,"160":1}}],["arithmetic",{"2":{"11":1}}],["archgdal",{"2":{"19":1}}],["arc",{"2":{"6":1,"146":1}}],["array",{"2":{"4":1,"6":2,"37":1,"47":1,"121":5,"133":7,"151":1,"154":1}}],["arrays",{"2":{"1":1,"6":2,"18":1,"121":1,"133":2}}],["aren",{"2":{"4":3,"6":5,"50":1,"52":1,"55":2,"57":4,"63":3,"136":2,"139":2}}],["are",{"2":{"1":1,"3":4,"4":18,"5":2,"6":50,"9":2,"18":3,"20":1,"24":2,"25":1,"29":1,"30":2,"33":1,"34":8,"36":1,"37":2,"38":6,"40":11,"43":1,"44":3,"45":31,"47":6,"50":3,"51":3,"52":15,"54":2,"55":16,"56":5,"57":9,"59":1,"60":1,"62":3,"63":26,"65":1,"69":7,"71":1,"72":3,"73":3,"74":1,"76":1,"82":1,"83":5,"85":1,"86":1,"87":1,"89":1,"90":1,"91":12,"97":7,"100":5,"102":1,"104":2,"109":1,"110":5,"112":1,"113":3,"114":3,"115":1,"117":1,"120":1,"121":14,"122":1,"123":1,"124":1,"125":1,"128":1,"131":1,"133":4,"135":1,"136":3,"137":1,"138":1,"139":2,"140":1,"145":1,"146":1,"147":1,"150":4,"152":1,"154":2,"156":1,"157":2,"158":1,"160":1,"163":1,"166":2,"167":2,"168":3,"169":6,"170":1,"171":1}}],["area2",{"2":{"44":4}}],["area1",{"2":{"44":4}}],["areas",{"2":{"4":2,"6":2,"37":3,"153":2}}],["area",{"0":{"35":2,"36":2},"1":{"36":2,"37":2},"2":{"0":5,"4":15,"6":25,"11":6,"31":1,"35":2,"36":9,"37":61,"42":1,"43":3,"44":49,"46":2,"47":44,"56":2,"57":1,"97":1,"126":1,"136":2,"139":2,"150":2,"153":4,"164":1}}],["ask",{"2":{"19":1}}],["aspect",{"2":{"13":1,"14":1,"33":1,"36":1,"39":2,"43":1,"46":1,"59":2,"121":2,"145":1,"150":1}}],["assign",{"2":{"162":1}}],["assigned",{"2":{"45":1,"121":7,"169":1}}],["assets",{"2":{"164":1}}],["assetpath",{"2":{"164":1}}],["assemble",{"2":{"125":1}}],["assert",{"2":{"40":23,"44":1,"45":1,"50":1,"52":1,"55":1,"147":1,"161":1}}],["assume",{"2":{"97":2,"124":1,"133":3,"139":1}}],["assumed",{"2":{"37":1,"63":1,"91":1}}],["assumes",{"2":{"6":1,"45":1,"60":1,"146":1,"154":1}}],["associativity",{"2":{"23":1}}],["associated",{"0":{"1":1},"2":{"38":2}}],["as",{"2":{"1":8,"3":18,"4":6,"5":1,"6":79,"7":1,"11":2,"13":3,"14":3,"15":3,"18":1,"19":2,"20":1,"21":2,"22":2,"24":1,"25":1,"29":1,"33":2,"34":4,"36":2,"37":3,"38":4,"39":1,"40":4,"41":3,"43":2,"44":1,"45":15,"46":2,"47":5,"49":3,"50":5,"51":8,"52":2,"54":7,"55":8,"56":7,"57":5,"59":3,"60":1,"62":2,"63":2,"65":2,"66":2,"68":3,"69":3,"78":2,"79":2,"80":2,"82":2,"83":3,"91":7,"93":2,"94":2,"96":2,"97":2,"99":2,"100":3,"102":1,"109":2,"110":3,"120":8,"121":3,"124":2,"125":2,"126":3,"128":1,"131":2,"132":2,"133":15,"135":1,"136":1,"138":2,"140":1,"142":3,"144":2,"145":2,"146":3,"148":2,"149":2,"150":7,"152":2,"155":3,"158":2,"159":2,"160":2,"161":2,"162":3,"163":2,"164":1,"165":1,"167":3,"168":2,"169":3,"170":2}}],["alone",{"2":{"133":1}}],["along",{"2":{"4":4,"6":5,"45":3,"47":2,"55":4,"63":4,"91":1}}],["although",{"2":{"113":1,"114":1}}],["alternate",{"2":{"45":1}}],["alternative",{"2":{"45":1}}],["already",{"2":{"63":1,"91":2,"152":1}}],["almost",{"2":{"55":1}}],["alg=nothing",{"2":{"150":1}}],["alg`",{"2":{"150":1}}],["alg",{"2":{"6":4,"150":21,"151":3,"152":8,"153":3,"154":7,"160":9}}],["algorithms",{"2":{"6":3,"124":1,"147":1,"148":1,"150":4,"152":1,"154":1}}],["algorithm",{"0":{"151":1,"152":1,"153":1},"2":{"6":10,"39":1,"45":2,"47":1,"50":3,"51":1,"54":1,"56":1,"91":1,"148":1,"150":8,"151":1,"152":3,"153":1,"160":4}}],["allocations",{"2":{"5":1,"6":1,"40":1}}],["allow=",{"2":{"91":1}}],["allows",{"2":{"11":1,"19":1,"20":1,"22":1,"27":1,"69":2,"71":3,"72":3,"73":3,"74":1,"83":2,"85":3,"86":3,"87":2,"88":1,"100":1,"103":1,"104":1,"105":1,"110":3,"112":3,"113":3,"114":3,"115":1,"126":1,"148":1,"164":1,"166":1,"168":1}}],["allowed",{"2":{"6":1,"69":3,"83":3,"91":6,"100":5,"102":1,"103":2,"110":3,"150":1}}],["allow",{"2":{"1":1,"6":1,"19":1,"55":1,"69":7,"80":3,"83":7,"91":73,"100":10,"110":10,"155":1}}],["all",{"2":{"1":3,"3":2,"4":3,"6":14,"9":1,"11":7,"18":1,"25":1,"29":1,"31":2,"34":5,"37":3,"40":1,"45":13,"47":3,"51":1,"52":3,"55":3,"57":5,"59":1,"63":2,"65":1,"72":3,"73":3,"76":1,"89":1,"90":1,"91":7,"97":4,"109":1,"117":1,"120":1,"121":3,"122":1,"125":1,"128":1,"131":2,"132":1,"133":8,"135":1,"137":1,"140":1,"141":1,"150":1,"155":2,"156":1,"157":1,"163":1,"165":1,"167":1,"168":1}}],["always",{"2":{"1":7,"4":6,"6":10,"25":1,"29":1,"36":1,"37":4,"47":2,"59":1,"60":1,"63":1,"133":2,"142":4,"168":1}}],["also",{"2":{"1":2,"6":10,"19":1,"34":1,"37":2,"44":2,"45":3,"47":1,"51":1,"54":1,"55":2,"56":1,"59":1,"60":2,"63":3,"97":1,"121":1,"125":1,"131":1,"133":1,"136":3,"139":2,"143":1,"144":1,"145":1,"146":1,"148":1,"155":1,"158":1,"163":2,"166":1}}],["a",{"0":{"19":1,"164":1,"166":1},"2":{"1":13,"3":5,"4":79,"5":1,"6":194,"7":3,"9":1,"11":1,"15":2,"18":3,"19":4,"20":2,"21":1,"22":6,"24":3,"25":2,"27":2,"28":2,"29":2,"33":3,"34":22,"36":11,"37":20,"38":13,"39":4,"40":11,"41":2,"43":5,"44":8,"45":281,"46":2,"47":17,"49":3,"50":4,"51":39,"52":30,"53":3,"54":38,"55":91,"56":36,"57":45,"59":15,"60":27,"62":2,"63":54,"65":2,"68":1,"69":3,"71":5,"72":3,"73":2,"75":2,"76":2,"78":2,"80":1,"82":1,"83":3,"85":4,"86":3,"87":1,"89":2,"90":2,"91":52,"93":2,"96":5,"97":27,"99":2,"100":4,"102":4,"103":2,"104":2,"105":1,"106":2,"107":2,"109":1,"110":3,"112":5,"113":2,"114":2,"116":2,"117":2,"119":1,"120":4,"121":79,"123":6,"124":2,"125":2,"126":4,"128":2,"131":4,"133":34,"134":5,"135":5,"136":9,"137":8,"139":6,"140":2,"141":3,"142":8,"143":3,"144":5,"145":4,"146":8,"147":10,"149":3,"150":5,"153":3,"154":1,"155":2,"156":1,"158":6,"159":1,"160":12,"161":2,"162":1,"163":21,"164":12,"165":5,"166":5,"167":11,"168":5,"169":8,"170":3,"171":3}}],["annotation",{"2":{"159":1}}],["annotated",{"2":{"30":1}}],["angels",{"2":{"34":1}}],["angle",{"2":{"34":35,"120":1}}],["angles",{"0":{"32":1,"33":1},"1":{"33":1,"34":1},"2":{"0":2,"4":10,"6":10,"31":1,"32":1,"33":4,"34":42}}],["answers",{"2":{"137":1}}],["answer",{"2":{"6":3,"51":1,"54":1,"55":1,"56":1}}],["another",{"2":{"3":1,"6":1,"45":2,"55":1,"59":1,"65":1,"68":1,"71":1,"73":1,"74":1,"78":1,"82":1,"85":1,"86":1,"87":1,"88":1,"91":1,"93":1,"96":1,"97":1,"99":1,"102":1,"103":1,"104":1,"105":1,"109":1,"112":1,"113":1,"114":1,"115":1,"121":1,"142":1}}],["anonymous",{"2":{"1":1,"6":1,"155":1}}],["an",{"2":{"1":3,"4":11,"5":1,"6":27,"9":1,"13":1,"14":1,"19":2,"22":1,"24":1,"33":1,"34":4,"36":1,"37":2,"39":1,"40":3,"41":2,"43":1,"45":15,"46":2,"47":2,"49":1,"50":1,"51":2,"52":5,"54":2,"55":9,"56":2,"57":2,"59":2,"60":5,"62":1,"63":1,"65":1,"68":2,"71":2,"78":1,"82":1,"91":13,"93":1,"96":1,"97":1,"99":1,"109":1,"112":2,"113":1,"114":1,"121":3,"122":1,"125":1,"128":1,"131":1,"132":1,"133":8,"140":1,"142":1,"146":1,"155":2,"160":3,"161":1,"163":2,"164":2,"166":1,"169":1}}],["anything",{"2":{"39":1,"91":1}}],["any",{"2":{"1":3,"3":1,"4":2,"6":19,"20":1,"22":1,"25":1,"27":1,"29":1,"38":2,"44":1,"45":7,"47":1,"50":1,"52":1,"55":4,"57":1,"60":2,"70":2,"71":1,"74":1,"82":1,"84":2,"85":1,"86":2,"87":1,"88":2,"91":8,"97":2,"101":2,"111":2,"115":1,"121":2,"125":1,"126":2,"128":1,"133":2,"134":1,"135":3,"136":4,"139":4,"142":2,"144":1,"146":1,"147":1,"152":1,"161":1,"168":2,"169":2}}],["and",{"0":{"1":1,"18":1,"20":1,"24":1,"35":1,"52":1,"55":1,"57":1,"58":1,"163":1,"164":1,"166":1},"1":{"36":1,"37":1,"59":1,"60":1},"2":{"0":2,"1":8,"3":11,"4":18,"6":84,"7":1,"9":2,"18":1,"19":2,"20":3,"21":4,"22":4,"24":2,"25":2,"27":2,"28":1,"29":2,"30":5,"31":1,"34":13,"36":1,"37":7,"38":2,"39":2,"40":20,"41":1,"42":2,"43":1,"44":29,"45":71,"46":2,"47":18,"49":1,"50":4,"51":4,"52":16,"54":4,"55":38,"56":6,"57":15,"59":2,"60":13,"62":2,"63":13,"65":3,"66":2,"68":2,"69":3,"72":3,"73":4,"74":1,"78":2,"79":2,"80":1,"83":3,"86":3,"87":1,"88":1,"91":36,"93":1,"96":2,"97":3,"100":2,"104":2,"105":2,"109":3,"110":4,"112":2,"113":3,"114":3,"115":1,"120":2,"121":16,"123":1,"124":2,"125":1,"126":8,"128":1,"131":2,"132":3,"133":22,"134":1,"135":4,"136":2,"137":1,"140":2,"141":2,"142":2,"145":1,"146":5,"147":4,"148":2,"149":1,"150":8,"152":8,"153":1,"154":1,"155":1,"158":1,"159":3,"160":4,"162":3,"163":9,"164":7,"165":2,"167":5,"168":2,"169":4,"170":2}}],["apart",{"2":{"139":1}}],["april",{"0":{"7":1}}],["appears",{"2":{"124":1}}],["append",{"2":{"34":1,"45":5,"51":1,"52":2,"55":2,"56":1,"57":5,"139":2}}],["approximately",{"2":{"145":1}}],["approximatly",{"2":{"45":1}}],["approach",{"2":{"23":1}}],["appropriately",{"2":{"169":1}}],["appropriate",{"2":{"6":1,"160":2}}],["applies",{"2":{"131":2}}],["applied",{"2":{"6":3,"24":1,"128":1,"133":2,"134":2,"135":2,"136":1}}],["application",{"2":{"1":1,"6":3,"125":1,"133":1,"135":3,"136":1,"139":2,"144":1,"147":1}}],["apply`",{"2":{"133":1}}],["applys",{"2":{"37":1,"47":1}}],["applyreduce",{"0":{"23":1},"2":{"0":2,"1":1,"6":1,"21":1,"23":2,"27":1,"34":1,"37":1,"44":2,"47":1,"60":2,"126":3,"128":1,"133":39,"159":1}}],["apply",{"0":{"1":1,"18":1,"22":1,"27":1,"131":1},"1":{"23":1},"2":{"0":2,"1":4,"6":7,"18":1,"20":1,"21":1,"22":5,"24":1,"27":3,"126":5,"128":1,"130":1,"131":4,"132":1,"133":56,"135":4,"136":1,"140":1,"141":3,"142":1,"146":1,"147":1,"150":2,"155":3,"156":2,"159":1}}],["apis",{"2":{"21":1}}],["api",{"0":{"0":1,"40":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"6":3,"20":1,"40":1,"146":1,"150":1,"160":1}}],["snapped",{"2":{"121":1}}],["s3",{"2":{"45":3}}],["scratch",{"2":{"167":1}}],["sciences",{"2":{"164":1}}],["scalefactor",{"2":{"146":3}}],["scattered",{"2":{"169":1}}],["scatter",{"2":{"43":1,"59":2,"62":2,"65":2,"68":1,"78":1,"82":2,"96":2,"109":2,"169":1}}],["schema",{"2":{"133":6}}],["scheme",{"2":{"44":1}}],["scenario",{"2":{"91":2}}],["scene",{"2":{"14":1}}],["skipmissing",{"2":{"121":1}}],["skipped",{"2":{"121":1}}],["skip",{"2":{"37":1,"91":14,"121":1,"154":4}}],["skygering",{"2":{"7":1}}],["square",{"2":{"60":1,"151":1,"152":1}}],["squared",{"2":{"6":2,"47":2,"60":12,"151":2,"152":7}}],["sqrt",{"2":{"34":2,"44":1,"60":3}}],["sgn",{"2":{"34":5}}],["smallest",{"2":{"34":2,"55":1}}],["sᵢ₋₁",{"2":{"40":25}}],["sᵢ₊₁",{"2":{"6":2,"40":41}}],["sᵢ",{"2":{"6":4,"40":46}}],["src",{"2":{"6":2}}],["syntax",{"2":{"166":1}}],["symdifference",{"2":{"122":1}}],["sym10100477",{"2":{"91":1}}],["symbol=",{"2":{"80":1}}],["symbol",{"2":{"6":1,"160":2}}],["system",{"0":{"164":1,"165":1},"2":{"1":2,"142":2,"162":2,"164":1}}],["switches",{"2":{"55":1,"57":1}}],["switch",{"2":{"45":1,"57":1,"159":1}}],["switching",{"2":{"6":1,"47":1}}],["swap",{"2":{"6":1,"57":1,"60":2,"141":1}}],["swapped",{"2":{"3":1,"6":1,"66":1,"69":1,"79":1,"80":1,"94":1,"97":1}}],["swapping",{"2":{"1":1,"6":1,"133":1}}],["s2",{"2":{"6":4,"40":6,"45":3}}],["s1",{"2":{"6":3,"40":6,"45":3}}],["saving",{"0":{"167":1}}],["saved",{"2":{"63":1}}],["save",{"2":{"34":1,"162":1,"167":3}}],["samples",{"2":{"13":1}}],["sample",{"2":{"13":1}}],["same",{"2":{"3":2,"4":12,"6":23,"22":1,"34":3,"37":1,"45":15,"47":1,"50":1,"51":3,"54":1,"55":1,"56":1,"57":1,"59":1,"62":2,"63":30,"91":2,"96":1,"97":8,"123":1,"128":1,"131":1,"133":6,"136":2,"138":1,"139":2,"145":1,"163":1,"164":1,"167":1}}],["say",{"2":{"6":1,"40":1,"146":1}}],["span",{"2":{"169":1}}],["spatial",{"0":{"168":1},"1":{"169":1,"170":1,"171":1},"2":{"168":6,"169":3,"171":1}}],["spawn",{"2":{"133":5}}],["space",{"2":{"6":2,"25":1,"29":1,"34":1,"36":1,"91":1,"146":1,"147":1}}],["sp",{"2":{"91":2}}],["split",{"2":{"50":1}}],["specialized",{"2":{"25":1,"29":1}}],["specify",{"2":{"6":1,"128":1,"133":1,"164":1,"165":1,"168":1}}],["specification",{"2":{"124":1,"135":1,"137":1,"138":1}}],["specifically",{"2":{"6":2,"40":3,"148":1,"168":1}}],["specific",{"2":{"45":1,"69":1,"83":1,"100":1,"110":1,"133":5}}],["specified",{"2":{"3":1,"6":2,"45":1,"52":2,"55":2,"57":2,"97":1,"131":1,"150":1}}],["slow",{"2":{"170":1}}],["slower",{"2":{"6":1,"160":2}}],["slope2",{"2":{"120":2}}],["slope1",{"2":{"120":2}}],["slidergrid",{"2":{"14":1}}],["sliders",{"2":{"14":3}}],["slighly",{"2":{"4":1,"6":1,"37":1}}],["slightly",{"2":{"4":1,"6":1,"37":1}}],["suite",{"2":{"146":5,"150":13}}],["suggestion",{"2":{"143":1}}],["sun",{"2":{"91":1}}],["surrounds",{"2":{"91":1}}],["sure",{"2":{"9":1,"34":1,"45":2,"60":1,"97":1,"154":1}}],["suppose",{"2":{"170":1,"171":1}}],["support",{"2":{"41":1,"144":1,"171":1}}],["supports",{"2":{"39":1,"40":1,"167":1,"171":2}}],["supported",{"2":{"19":1,"167":1}}],["supertype",{"2":{"6":1,"40":1}}],["sukumar",{"2":{"6":1,"40":1}}],["such",{"2":{"4":1,"6":1,"36":1,"49":1,"131":1,"140":1}}],["sum=1",{"2":{"40":1}}],["sum",{"2":{"4":2,"6":3,"11":6,"36":1,"37":2,"38":2,"40":8,"47":1,"60":2,"120":5,"154":1,"161":4}}],["sublevel",{"2":{"170":1}}],["subsequent",{"2":{"163":1}}],["substituted",{"2":{"1":1,"6":1,"133":1}}],["subgeom1",{"2":{"133":2}}],["subgeom",{"2":{"133":3}}],["subject",{"2":{"45":1}}],["subtype",{"2":{"133":1}}],["subtypes",{"2":{"6":2,"40":2}}],["subtracted",{"2":{"120":1}}],["subtitle",{"2":{"13":1,"39":2,"146":1,"150":2}}],["sub",{"2":{"4":6,"6":7,"34":1,"37":3,"47":1,"52":6,"55":3,"57":4,"60":2,"75":2,"76":2,"89":2,"90":2,"106":2,"107":2,"116":2,"117":2,"133":3,"137":4,"138":2,"139":4}}],["series",{"2":{"163":1}}],["serve",{"2":{"6":1,"40":1}}],["searchsortedfirst",{"2":{"152":1}}],["seg2",{"2":{"120":2}}],["seg1",{"2":{"120":3}}],["seg",{"2":{"91":23,"97":9}}],["segmentation",{"2":{"145":1}}],["segments",{"2":{"19":1,"31":1,"33":2,"34":1,"43":1,"44":2,"45":3,"47":1,"55":6,"91":18,"146":1,"147":3}}],["segmentization",{"2":{"144":1}}],["segmentizing",{"2":{"6":3,"145":1,"146":2,"147":1}}],["segmentized",{"2":{"145":1}}],["segmentizes",{"2":{"144":1}}],["segmentizemethod",{"2":{"6":1,"146":3,"147":2}}],["segmentize",{"0":{"144":1},"1":{"145":1,"146":1,"147":1},"2":{"0":1,"6":4,"31":1,"41":1,"126":1,"144":1,"145":5,"146":11,"147":13}}],["segment",{"2":{"4":4,"6":7,"34":1,"44":5,"45":6,"47":3,"49":1,"55":17,"60":2,"80":3,"91":43,"97":3,"120":2,"144":1,"146":2,"147":1}}],["separate",{"2":{"121":1,"133":1,"159":1,"167":1,"169":1}}],["separately",{"2":{"40":1,"121":1}}],["seperates",{"2":{"91":1}}],["seperate",{"2":{"45":1,"55":1}}],["sense",{"2":{"37":1,"60":1}}],["several",{"2":{"24":2,"37":1,"123":1,"139":1}}],["section",{"2":{"30":1,"91":3,"96":1}}],["sections",{"2":{"10":1,"30":1}}],["seconds=1",{"2":{"146":3,"150":8}}],["secondisleft",{"2":{"121":4}}],["secondisstraight",{"2":{"121":7}}],["secondary",{"2":{"3":3,"6":3,"66":1,"69":1,"110":1}}],["second",{"2":{"3":8,"6":9,"45":1,"55":4,"63":1,"65":2,"66":1,"68":1,"69":1,"72":1,"73":1,"74":1,"79":2,"83":2,"91":2,"100":1,"109":1,"110":1,"113":1,"114":1,"115":2,"152":1,"165":1,"168":1}}],["self",{"2":{"9":2}}],["selected",{"2":{"121":1}}],["selectednode",{"2":{"121":3}}],["selection",{"2":{"14":1}}],["select",{"2":{"6":1,"158":1}}],["seem",{"2":{"25":1,"29":1}}],["see",{"2":{"6":3,"7":1,"27":1,"43":1,"60":1,"62":1,"65":1,"68":1,"82":1,"91":5,"93":1,"96":1,"99":1,"109":1,"121":2,"124":1,"125":1,"135":1,"136":3,"138":1,"139":2,"145":2,"152":1,"169":2}}],["setup=",{"2":{"69":1,"83":1,"100":1,"110":1}}],["sets",{"2":{"45":1}}],["setting",{"2":{"19":1}}],["set",{"0":{"19":1},"2":{"3":2,"4":7,"6":19,"19":1,"34":1,"38":2,"40":8,"45":3,"51":2,"54":2,"55":7,"56":2,"62":2,"63":10,"69":1,"80":1,"83":1,"91":2,"97":1,"100":1,"110":1,"120":1,"121":1,"136":2,"139":2,"152":2,"163":1,"167":1,"169":3}}],["sve",{"2":{"1":1,"6":1,"155":1}}],["svector",{"2":{"1":14,"6":14,"45":5,"51":1,"55":2,"57":6,"91":1,"121":1,"155":13,"163":6,"165":4}}],["solution",{"2":{"91":1}}],["solid",{"2":{"6":2}}],["south",{"2":{"47":7}}],["source",{"2":{"1":10,"3":19,"4":22,"5":3,"6":89,"30":4,"80":2,"128":3,"135":1,"136":4,"142":3,"164":13,"165":1}}],["sort",{"2":{"45":4,"50":2,"55":2,"56":2,"91":1,"97":2,"121":1,"152":1}}],["sorted",{"2":{"24":1,"45":1,"152":7,"168":1}}],["someone",{"2":{"160":1}}],["something",{"0":{"53":1},"2":{"10":1}}],["some",{"2":{"3":1,"6":3,"9":1,"21":1,"40":4,"63":1,"91":3,"97":1,"121":1,"122":1,"126":2,"131":2,"133":2,"134":1,"135":2,"136":1,"154":1,"157":2,"162":2,"168":1,"171":1}}],["so",{"2":{"1":1,"4":4,"6":10,"9":1,"21":1,"23":1,"25":1,"29":1,"31":1,"39":1,"40":1,"45":1,"46":1,"55":1,"56":2,"57":2,"59":1,"60":1,"62":1,"63":4,"65":1,"82":1,"91":2,"93":1,"109":1,"121":3,"128":1,"133":6,"144":1,"145":1,"146":3,"147":1,"154":1,"155":1,"160":2,"164":1,"165":1}}],["step",{"2":{"45":7,"51":1,"52":3,"54":1,"55":3,"56":1,"57":3,"121":4,"161":1}}],["storing",{"2":{"167":1}}],["stored",{"2":{"45":2,"169":1}}],["stores",{"2":{"45":1}}],["store",{"2":{"40":1,"167":1}}],["stopping",{"2":{"152":2}}],["stops",{"2":{"131":1}}],["stop",{"2":{"22":2,"80":3,"91":4,"97":3}}],["style",{"2":{"6":2}}],["style=",{"2":{"6":2}}],["standardized",{"2":{"91":1}}],["standards",{"2":{"91":1}}],["stay",{"2":{"57":1}}],["stackoverflow",{"2":{"55":1}}],["stack",{"2":{"50":1}}],["states",{"2":{"150":1}}],["state",{"2":{"56":1,"170":9}}],["status",{"2":{"45":31,"52":4,"55":5,"57":4,"121":1}}],["static",{"2":{"159":1}}],["staticarray",{"2":{"40":1}}],["staticarrays",{"2":{"31":1,"45":5,"51":1,"55":2,"57":6,"91":1,"121":1,"155":2}}],["staticarraysco",{"2":{"1":1,"6":1,"155":1}}],["staticarrayscore",{"2":{"1":10,"6":10,"40":1,"155":10,"163":6,"165":4}}],["statica",{"2":{"1":1,"6":1,"155":1}}],["statistics",{"2":{"13":2,"31":1}}],["stability",{"2":{"19":1,"28":1}}],["stable",{"2":{"13":1,"20":1,"147":1}}],["stage",{"2":{"7":1}}],["started",{"2":{"45":1}}],["starting",{"2":{"44":2,"45":1,"47":1,"55":1,"139":4}}],["startvalue",{"2":{"14":4}}],["start",{"2":{"6":1,"22":1,"34":7,"40":1,"45":76,"47":17,"52":4,"55":4,"57":5,"63":1,"80":4,"91":44,"97":3,"112":1,"121":2,"123":1,"152":16,"163":1}}],["straightline",{"2":{"121":3}}],["straight",{"2":{"121":6}}],["strait",{"2":{"121":1}}],["structs",{"2":{"24":1,"135":1}}],["structures",{"2":{"126":1}}],["structure",{"2":{"6":2,"128":1,"133":1,"141":1}}],["struct",{"2":{"6":3,"40":2,"45":2,"125":1,"139":2,"146":2,"151":1,"152":1,"153":1,"158":3,"159":2,"160":4}}],["strings",{"2":{"6":1,"44":1,"55":1}}],["string",{"2":{"1":2,"14":1,"43":1,"44":1,"142":2}}],["still",{"2":{"0":1,"37":1,"44":1,"45":3,"68":1,"152":1}}],["shp",{"2":{"167":1}}],["ships",{"2":{"164":1}}],["shifting",{"2":{"165":1}}],["shift",{"2":{"163":3}}],["shewchuck",{"2":{"7":1}}],["short",{"2":{"133":1}}],["show",{"2":{"9":1,"11":1,"13":1,"14":1,"39":1,"164":1,"167":1,"168":2}}],["shoelace",{"2":{"4":1,"6":1,"37":2,"47":1}}],["shouldn",{"2":{"55":1}}],["should",{"2":{"1":1,"4":1,"6":14,"21":1,"22":1,"24":2,"25":1,"29":1,"34":3,"37":1,"44":1,"45":3,"46":1,"63":1,"91":4,"121":2,"124":1,"128":1,"133":2,"135":4,"136":2,"147":1,"150":2,"159":1}}],["sharing",{"2":{"82":1}}],["shares",{"2":{"55":1}}],["share",{"2":{"4":7,"6":8,"62":2,"63":8,"86":2,"87":1,"88":1,"97":1,"105":1}}],["shared",{"0":{"154":1},"2":{"3":1,"6":1,"45":2,"55":2,"97":3}}],["shapes",{"2":{"60":1,"167":7}}],["shape",{"2":{"43":1,"52":1,"55":1,"62":1,"138":1,"163":1}}],["shaped",{"2":{"39":1}}],["shapefiles",{"2":{"167":1}}],["shapefile",{"2":{"27":1,"167":4}}],["shallower",{"2":{"1":1,"6":1,"133":1}}],["sites",{"2":{"170":1}}],["sides",{"2":{"45":3,"124":1}}],["side",{"2":{"34":4,"45":26}}],["signals",{"2":{"132":1}}],["sign",{"2":{"13":2,"14":2,"34":7,"37":2,"120":3}}],["signed",{"0":{"35":1,"36":1,"58":1,"59":1},"1":{"36":1,"37":1,"59":1,"60":1},"2":{"0":4,"4":15,"6":18,"11":3,"35":1,"36":5,"37":23,"47":3,"58":1,"59":7,"60":19}}],["six",{"2":{"6":1,"150":1}}],["size=",{"2":{"164":1}}],["sizehint",{"2":{"45":2,"52":1,"147":1}}],["size",{"2":{"6":4,"13":2,"14":5,"39":1,"57":1,"121":2,"133":4,"150":1}}],["sin",{"2":{"163":3,"164":1,"165":2}}],["singed",{"2":{"60":1}}],["singular",{"2":{"55":1}}],["singlepoly",{"2":{"150":6}}],["single",{"2":{"4":6,"6":10,"19":1,"34":2,"37":1,"47":1,"63":5,"96":2,"121":2,"136":2,"137":1,"139":2,"163":3,"167":1}}],["since",{"2":{"1":1,"6":2,"30":1,"34":1,"37":1,"44":1,"47":2,"56":1,"60":1,"63":1,"91":1,"97":2,"104":1,"142":1,"159":1,"160":2,"170":1}}],["simultaneously",{"2":{"24":1}}],["simulation",{"2":{"19":1}}],["simplication",{"2":{"150":1}}],["simplifier",{"2":{"150":4}}],["simplified",{"2":{"19":1,"149":1}}],["simplifies",{"2":{"6":3,"151":1,"152":1,"153":1}}],["simplification",{"0":{"148":1},"1":{"149":1,"150":1},"2":{"6":2,"148":2,"150":2}}],["simplifying",{"2":{"148":1}}],["simplify",{"0":{"151":1,"152":1,"153":1},"2":{"0":1,"6":15,"9":1,"31":1,"45":1,"126":1,"149":1,"150":41,"151":1,"152":2,"153":1}}],["simplifyalgs",{"2":{"154":1}}],["simplifyalg",{"2":{"0":1,"6":8,"150":5,"151":2,"152":2,"153":2}}],["simply",{"2":{"7":1,"36":1,"41":1,"45":1,"55":1,"57":1,"66":1,"79":1,"94":1,"121":1,"134":1,"142":1,"143":1,"146":1,"163":1,"166":1}}],["simple",{"0":{"169":1},"2":{"6":2,"40":1,"126":3,"141":1,"142":1,"149":2,"150":2,"159":1}}],["simpler",{"2":{"6":1,"121":1}}],["similarly",{"2":{"126":1}}],["similar",{"2":{"1":1,"6":3,"22":1,"25":1,"27":1,"29":1,"41":1,"121":2,"133":1,"146":2,"147":1,"156":1}}],["s",{"0":{"28":1},"2":{"0":1,"6":9,"7":1,"9":1,"22":1,"23":1,"27":1,"34":1,"36":1,"37":4,"38":1,"39":2,"40":5,"43":3,"44":3,"45":3,"47":1,"49":1,"52":1,"55":2,"57":3,"60":1,"63":1,"78":2,"85":3,"86":4,"87":2,"91":9,"97":1,"105":1,"121":5,"125":1,"126":2,"128":3,"129":1,"133":1,"136":4,"137":1,"139":3,"145":4,"146":1,"148":1,"150":2,"154":4,"158":2,"159":1,"160":6,"163":6,"164":4,"165":4,"166":2,"167":5,"171":2}}],["fn",{"2":{"167":8}}],["fc",{"2":{"133":22,"150":3,"161":14}}],["fj",{"2":{"121":2}}],["f2",{"2":{"45":2}}],["f1",{"2":{"45":2}}],["f64",{"2":{"13":2,"14":2}}],["fetch",{"2":{"133":2}}],["fetched",{"2":{"121":1}}],["few",{"2":{"124":1}}],["feb",{"0":{"8":1},"1":{"9":1,"10":1}}],["featurecollection",{"2":{"6":2,"11":1,"22":1,"121":4,"133":7,"164":2}}],["featurecollectiontrait",{"2":{"1":1,"6":2,"128":1,"131":1,"133":14,"161":5}}],["features",{"0":{"70":1,"84":1,"101":1,"111":1},"2":{"1":1,"6":2,"11":1,"18":1,"121":3,"132":1,"133":19,"164":1}}],["featuretrait",{"2":{"1":2,"6":3,"70":4,"80":2,"84":4,"101":4,"111":4,"128":1,"131":3,"133":15,"161":5}}],["feature",{"2":{"1":6,"4":1,"6":10,"18":1,"22":2,"37":1,"47":1,"121":2,"126":1,"132":1,"133":49,"150":2,"161":2,"167":1}}],["fra",{"2":{"170":2}}],["frame",{"2":{"166":1}}],["framework",{"2":{"126":4}}],["fracs",{"2":{"45":20,"50":1}}],["frac",{"2":{"40":1,"45":2,"55":17,"150":2}}],["fractional",{"2":{"45":1,"55":3}}],["fractions",{"2":{"45":1,"55":4}}],["fraction",{"2":{"6":4,"55":2,"60":1,"150":1}}],["front",{"2":{"34":1}}],["from",{"2":{"1":3,"3":4,"4":16,"6":29,"7":1,"11":1,"18":1,"24":1,"30":1,"31":1,"37":2,"39":1,"40":4,"41":1,"44":1,"45":6,"47":11,"50":1,"51":1,"52":3,"54":1,"55":11,"56":1,"57":6,"60":25,"83":2,"85":5,"86":4,"87":2,"88":1,"89":2,"91":6,"97":2,"120":2,"121":7,"128":3,"133":3,"139":1,"142":4,"144":1,"150":1,"151":1,"152":3,"153":1,"161":1,"162":1,"164":5,"167":1,"168":1,"169":1,"171":1}}],["footprint",{"2":{"165":1}}],["foldable",{"2":{"133":3}}],["follows",{"2":{"45":2,"69":1,"83":1,"100":1,"110":1,"121":1}}],["followed",{"2":{"30":1}}],["following",{"2":{"6":1,"40":1,"49":1,"124":1,"138":1,"150":1,"168":1}}],["focusing",{"2":{"25":1,"29":1}}],["foundational",{"2":{"21":1}}],["found",{"2":{"6":8,"30":1,"47":1,"50":1,"51":2,"54":2,"55":1,"56":2,"63":1,"121":5,"131":3,"133":7,"147":1}}],["forward",{"2":{"55":1}}],["forwards",{"2":{"45":1,"52":1,"57":1}}],["formats",{"2":{"162":1,"165":1,"167":3}}],["format",{"2":{"50":1,"167":3}}],["form",{"2":{"22":1,"45":3,"55":8,"57":3,"133":1}}],["formed",{"2":{"4":2,"6":3,"33":1,"34":4,"40":1,"45":8,"56":1,"57":1,"152":1}}],["formula",{"2":{"4":1,"6":1,"37":2,"47":1}}],["force",{"2":{"1":1,"133":1,"142":1,"150":1}}],["for",{"0":{"52":1,"55":1,"57":1},"2":{"0":2,"1":3,"3":1,"4":4,"5":3,"6":44,"7":4,"9":2,"13":5,"14":1,"18":1,"19":5,"22":1,"24":1,"25":3,"27":1,"29":3,"30":1,"31":1,"34":5,"37":8,"38":1,"39":1,"40":19,"41":3,"44":7,"45":35,"47":11,"50":5,"51":2,"52":3,"54":1,"55":7,"56":1,"57":9,"59":2,"60":7,"63":13,"69":3,"75":1,"76":1,"78":1,"80":6,"83":2,"89":1,"90":1,"91":22,"96":1,"97":11,"100":2,"106":1,"107":1,"110":3,"116":1,"117":1,"119":1,"120":5,"121":13,"122":1,"123":3,"124":2,"126":3,"128":6,"129":2,"133":6,"134":1,"135":5,"137":3,"138":1,"139":5,"140":1,"142":3,"144":4,"145":7,"146":6,"147":8,"148":4,"150":12,"151":2,"152":2,"153":1,"154":6,"158":1,"159":2,"160":5,"161":7,"162":1,"164":4,"165":1,"167":3,"168":1,"170":2,"171":1}}],["fi",{"2":{"121":2}}],["fine",{"2":{"145":1}}],["final",{"2":{"57":1,"135":4,"146":1}}],["finally",{"2":{"39":2,"55":1,"121":1,"133":3,"167":1}}],["findmin",{"2":{"154":1}}],["findmax",{"2":{"150":1,"152":1}}],["findall",{"2":{"135":1}}],["finding",{"2":{"55":1}}],["findfirst",{"2":{"45":6,"50":2,"150":1}}],["findnext",{"2":{"45":3}}],["findlast",{"2":{"45":2}}],["findprev",{"2":{"45":2}}],["finds",{"2":{"45":1,"47":1}}],["find",{"2":{"34":6,"37":1,"45":12,"47":3,"50":2,"51":4,"54":2,"55":8,"56":1,"60":3,"63":1,"91":7,"121":2,"152":5,"170":1}}],["finish",{"2":{"9":1}}],["fill",{"2":{"45":1,"121":1,"147":3}}],["filled",{"2":{"45":5,"47":3,"59":1,"60":2,"91":16}}],["files",{"2":{"157":1,"167":2}}],["file",{"2":{"30":1,"45":1,"69":3,"83":3,"100":3,"110":3,"121":1,"122":1,"126":1,"134":1,"142":1,"147":1,"148":1,"157":2,"162":1,"167":2}}],["filters",{"2":{"45":1}}],["filtering",{"2":{"6":1,"150":1}}],["filter",{"2":{"4":1,"6":2,"45":2,"133":3,"139":2,"140":1,"150":1}}],["fit",{"2":{"21":1}}],["field",{"2":{"13":2,"45":2}}],["figure",{"2":{"13":1,"14":1,"36":1,"39":2,"164":3}}],["fig",{"2":{"13":6,"14":6,"163":7,"164":4}}],["fix1",{"2":{"133":2,"147":1}}],["fixme",{"2":{"120":1}}],["fix2",{"2":{"45":2}}],["fixed",{"2":{"6":3,"51":1,"54":1,"56":1}}],["fix",{"0":{"24":1},"2":{"6":9,"9":3,"15":3,"21":1,"24":1,"51":1,"52":11,"54":1,"55":11,"56":1,"57":10,"124":1,"134":1,"135":1,"138":1}}],["firstisright",{"2":{"121":2}}],["firstisleft",{"2":{"121":4}}],["firstisstraight",{"2":{"121":4}}],["firstnode",{"2":{"121":9}}],["first",{"2":{"3":9,"6":10,"34":14,"37":7,"39":1,"40":9,"41":1,"44":1,"45":17,"47":2,"50":1,"51":2,"54":1,"55":5,"56":3,"60":8,"63":4,"65":2,"66":2,"68":1,"69":2,"72":1,"73":1,"74":1,"79":2,"83":3,"91":22,"97":1,"100":2,"102":1,"109":1,"110":2,"113":1,"114":1,"115":2,"120":1,"121":16,"124":1,"133":6,"147":3,"151":1,"152":2,"161":2,"162":1,"163":1,"164":1,"165":1,"168":1,"169":1}}],["fancy",{"2":{"163":1}}],["fancis",{"2":{"6":1,"40":1}}],["fair",{"2":{"145":1}}],["fail",{"2":{"1":1,"6":2,"133":6,"146":1}}],["fallback",{"2":{"133":1}}],["falses",{"2":{"45":2,"50":1,"51":1,"54":1}}],["false",{"0":{"20":1},"2":{"1":29,"3":7,"4":3,"6":55,"34":2,"37":1,"39":5,"45":26,"47":5,"50":1,"51":1,"52":3,"55":1,"56":4,"60":2,"62":2,"63":27,"65":2,"69":8,"71":2,"72":4,"73":1,"74":1,"75":1,"76":1,"78":2,"80":11,"83":9,"85":1,"86":4,"89":1,"90":1,"91":39,"97":22,"100":8,"102":3,"103":4,"104":1,"106":1,"107":1,"109":1,"110":7,"112":2,"113":4,"114":1,"115":1,"116":1,"117":1,"120":10,"121":5,"124":16,"133":18,"138":44,"139":4,"147":2,"150":1,"154":2,"155":20,"159":2,"161":2,"163":242,"164":12,"165":18,"168":1}}],["fashion",{"2":{"36":1}}],["faster",{"2":{"40":1,"133":1}}],["fast",{"2":{"12":1}}],["f",{"2":{"1":12,"6":25,"15":1,"18":2,"22":3,"23":1,"33":1,"36":2,"39":4,"41":1,"43":2,"45":19,"46":2,"49":2,"51":2,"52":2,"54":2,"55":2,"56":2,"57":2,"59":5,"62":2,"65":2,"68":2,"78":2,"82":2,"91":7,"93":2,"96":2,"99":2,"109":2,"121":30,"128":2,"131":2,"133":168,"143":1,"145":2,"146":1,"149":2,"150":1,"154":6,"155":6,"160":5,"161":16,"163":6,"165":2,"169":3}}],["fulfilled",{"2":{"152":1}}],["fully",{"2":{"6":1,"45":4,"50":1,"97":4}}],["full",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"47":5,"135":1,"170":4}}],["furthest",{"2":{"121":1}}],["further",{"2":{"43":1,"133":1}}],["furthermore",{"2":{"3":2,"6":5,"45":1,"51":1,"54":1,"56":1,"69":1,"110":1}}],["fun",{"2":{"163":1}}],["fundamental",{"2":{"30":1,"157":1}}],["func",{"2":{"13":5}}],["funcs",{"2":{"13":2,"14":3}}],["functionality",{"2":{"55":1,"126":1,"141":1,"142":1,"147":1,"160":1}}],["functionalities",{"2":{"45":1}}],["functionally",{"2":{"1":1,"6":1,"22":1,"27":1,"133":1}}],["function",{"2":{"1":8,"3":9,"4":9,"5":3,"6":12,"7":2,"9":1,"13":3,"14":2,"22":2,"27":1,"31":1,"34":5,"37":3,"40":13,"44":6,"45":18,"47":7,"49":2,"50":4,"51":3,"52":3,"53":1,"54":2,"55":7,"56":2,"57":4,"60":6,"62":1,"63":8,"65":1,"68":1,"69":1,"75":1,"76":1,"78":1,"80":5,"82":1,"83":1,"89":1,"90":1,"91":9,"93":1,"96":1,"97":7,"99":1,"100":1,"106":1,"107":1,"109":1,"110":1,"116":1,"117":1,"120":4,"121":16,"122":3,"125":2,"128":3,"131":2,"133":29,"135":7,"136":2,"139":2,"141":2,"142":1,"144":2,"146":2,"147":7,"150":3,"151":2,"152":3,"153":2,"154":7,"155":3,"156":1,"160":6,"161":12,"163":1,"168":1,"171":4}}],["functions",{"0":{"1":1,"52":1,"55":1,"57":1,"126":1,"128":1,"161":1},"1":{"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1},"2":{"6":1,"9":3,"21":1,"27":1,"30":1,"37":1,"40":1,"44":1,"45":2,"47":1,"49":1,"91":1,"122":1,"126":2,"131":1,"135":2,"136":1}}],["future",{"2":{"19":1,"60":1,"144":2}}],["flexijoins",{"2":{"168":1,"169":3,"170":1,"171":5}}],["flags",{"2":{"45":5}}],["flag",{"2":{"45":12,"50":1}}],["flat",{"2":{"6":1,"154":2,"161":1}}],["flattened",{"2":{"22":1}}],["flattening",{"2":{"6":4,"146":2}}],["flatten",{"2":{"0":2,"6":4,"11":3,"13":1,"22":1,"40":1,"45":2,"47":3,"54":1,"57":1,"80":1,"128":4,"133":27,"139":1}}],["floating",{"2":{"6":1,"45":1,"55":5,"121":2}}],["float",{"2":{"6":3,"51":1,"54":1,"56":1}}],["float64x2",{"2":{"13":6,"14":6,"15":2}}],["float64",{"2":{"1":6,"4":10,"6":30,"13":1,"33":1,"34":3,"37":6,"44":1,"47":4,"50":2,"51":2,"54":1,"55":3,"56":1,"60":12,"91":4,"97":2,"120":4,"124":6,"138":26,"145":2,"146":2,"147":1,"151":4,"152":9,"153":2,"154":6,"155":6,"156":1,"161":8,"163":190,"164":7,"165":10}}],["flipping",{"0":{"141":1},"2":{"141":1}}],["flipped",{"2":{"1":2,"6":2,"133":2}}],["flipaxis",{"2":{"39":1}}],["flip",{"2":{"0":1,"6":1,"31":1,"126":2,"133":1,"141":2}}],["wgs84",{"2":{"164":1}}],["wglmakie",{"2":{"14":1}}],["wₜₒₜ",{"2":{"40":8}}],["wᵢ",{"2":{"40":18}}],["wt",{"2":{"40":3}}],["w",{"2":{"13":13,"14":7,"60":4,"121":1}}],["wrong",{"2":{"137":1,"154":1}}],["writing",{"2":{"167":1}}],["written",{"2":{"63":1}}],["write",{"2":{"7":1,"28":1,"121":1,"167":7}}],["wrap",{"2":{"4":1,"6":1,"140":1,"146":1}}],["wrapped",{"2":{"18":1,"121":2,"131":1,"133":1}}],["wrapper",{"0":{"28":1},"2":{"28":1,"34":1,"37":1,"44":1,"47":1,"60":1,"63":1,"69":1,"83":1,"97":1,"100":1,"110":1}}],["wrappers`",{"2":{"133":1}}],["wrappers",{"2":{"1":10,"6":12,"18":1,"120":2,"121":1,"124":8,"125":1,"128":1,"138":22,"145":1,"146":1,"150":1,"155":10,"161":1,"163":121,"164":5,"165":9}}],["wrappergeometry`",{"2":{"142":1}}],["wrappergeometry",{"2":{"1":1}}],["wrapping",{"2":{"1":1,"6":1,"63":1,"142":1,"156":1}}],["web",{"2":{"167":1}}],["west",{"2":{"47":8}}],["were",{"2":{"45":1,"121":1,"169":1}}],["welcome",{"2":{"25":1,"29":1}}],["well",{"2":{"21":1,"45":1,"47":1,"144":1,"148":1,"159":1}}],["we",{"0":{"53":2},"2":{"7":1,"11":1,"13":1,"19":3,"20":1,"21":3,"23":1,"25":2,"29":2,"30":1,"34":1,"36":2,"37":2,"39":4,"40":8,"41":2,"44":1,"45":7,"47":4,"52":8,"54":2,"55":3,"57":1,"60":1,"62":1,"63":5,"65":1,"66":1,"68":1,"69":1,"79":1,"82":1,"83":1,"91":2,"93":3,"94":1,"96":1,"97":2,"99":1,"100":1,"109":1,"110":1,"121":21,"122":1,"123":1,"131":1,"133":20,"143":1,"144":2,"145":2,"146":3,"147":1,"150":5,"154":2,"157":1,"159":4,"160":1,"162":2,"163":4,"164":6,"165":4,"166":1,"167":3,"168":3,"169":7}}],["weighting",{"2":{"43":2,"44":1}}],["weights",{"2":{"38":4}}],["weight",{"2":{"6":5,"40":14,"44":1}}],["weighted",{"2":{"0":1,"6":2,"38":3,"40":4,"44":4}}],["walk",{"2":{"50":1}}],["wall2",{"2":{"47":7}}],["wall1",{"2":{"47":12}}],["walls",{"2":{"47":3}}],["wall",{"2":{"47":69}}],["wachspress",{"2":{"40":1}}],["wasincreasing",{"2":{"121":10}}],["wasn",{"2":{"45":1}}],["was",{"2":{"31":1,"34":1,"37":1,"39":1,"40":4,"41":1,"44":1,"45":1,"47":1,"50":1,"51":1,"52":3,"53":1,"54":1,"55":2,"56":1,"57":3,"60":1,"63":1,"66":1,"76":1,"79":1,"80":1,"90":1,"91":1,"94":1,"97":1,"107":1,"117":1,"120":1,"121":1,"122":1,"125":1,"131":1,"133":1,"136":1,"139":1,"140":1,"141":1,"143":1,"145":1,"147":1,"154":1,"155":1,"156":1,"160":2,"161":1}}],["wanted",{"2":{"171":1}}],["wants",{"2":{"133":1}}],["want",{"0":{"19":1,"53":1},"2":{"13":1,"19":1,"22":1,"40":1,"45":1,"120":1,"164":2,"166":1,"170":1,"171":1}}],["ways",{"2":{"137":1}}],["way",{"2":{"6":1,"20":1,"21":1,"22":1,"27":1,"38":1,"126":1,"134":1,"147":1,"158":1,"160":2,"166":1}}],["warn",{"2":{"121":2}}],["warned",{"2":{"6":1,"160":1}}],["warning",{"2":{"0":1,"5":1,"6":2,"20":1,"40":1,"133":1,"146":1,"157":1,"170":1}}],["won",{"2":{"19":1,"45":1,"133":1}}],["wouldn",{"2":{"55":1}}],["would",{"0":{"53":1},"2":{"6":3,"19":1,"51":1,"54":1,"55":1,"56":1,"121":1,"159":2,"164":1,"170":1,"171":1}}],["world",{"0":{"170":1},"2":{"168":1}}],["worrying",{"2":{"20":1}}],["words",{"2":{"3":1,"6":1,"65":1,"93":1,"99":1,"100":1}}],["workflow",{"2":{"80":1,"97":1}}],["workflows",{"2":{"19":1,"25":1,"29":1}}],["works",{"2":{"30":1,"142":1,"144":1}}],["working",{"2":{"3":1,"6":1,"80":1,"164":1}}],["work",{"2":{"1":3,"6":3,"9":1,"34":1,"37":2,"44":1,"47":2,"50":2,"60":1,"63":1,"91":1,"97":1,"120":1,"133":2,"142":1,"155":1,"170":1}}],["whole",{"2":{"91":1}}],["whose",{"2":{"3":1,"6":1,"80":1}}],["white",{"2":{"39":1}}],["while",{"2":{"34":1,"43":1,"44":1,"45":5,"55":2,"59":1,"63":1,"80":1,"91":1,"121":3,"139":1,"152":1,"154":2,"169":1}}],["whichever",{"2":{"6":1,"150":1}}],["which",{"2":{"1":1,"4":2,"5":1,"6":7,"7":1,"11":1,"13":1,"14":1,"19":2,"21":1,"22":4,"24":1,"36":1,"37":1,"38":1,"39":2,"40":5,"41":1,"45":11,"47":2,"55":2,"63":2,"91":3,"121":3,"122":1,"123":2,"124":1,"126":1,"133":1,"135":1,"137":1,"138":1,"143":1,"144":1,"145":1,"146":3,"147":2,"150":1,"152":2,"155":1,"158":1,"160":4,"167":3,"168":3,"169":6,"171":1}}],["what",{"0":{"18":1,"28":1,"29":1,"33":1,"36":2,"43":1,"46":1,"49":1,"59":2,"62":1,"65":1,"68":1,"78":1,"82":1,"93":1,"96":1,"99":1,"109":1,"131":1},"2":{"13":1,"14":1,"20":1,"43":1,"120":1,"121":1,"145":1,"159":1,"164":1,"170":1}}],["whatever",{"2":{"1":1,"6":1,"18":1,"133":1}}],["whyatt",{"2":{"148":1}}],["why",{"0":{"18":1,"19":1},"2":{"9":1,"21":1,"28":1,"37":1}}],["wheel",{"2":{"21":1}}],["whether",{"2":{"1":4,"4":1,"6":10,"119":1,"120":1,"123":1,"130":2}}],["when",{"2":{"1":1,"4":2,"5":1,"6":5,"19":2,"20":1,"22":1,"24":1,"37":1,"40":3,"44":1,"45":2,"52":5,"55":6,"57":7,"91":1,"121":1,"124":1,"131":3,"133":1,"135":1,"140":2,"150":1,"164":1,"165":2,"167":1,"171":1}}],["wherever",{"2":{"6":1,"156":1}}],["where",{"2":{"1":2,"4":5,"6":11,"24":1,"31":2,"34":8,"37":12,"38":2,"40":24,"44":8,"45":14,"47":8,"50":5,"51":2,"52":5,"54":3,"55":18,"56":2,"57":9,"60":25,"63":1,"91":9,"121":3,"133":52,"137":1,"142":1,"145":1,"156":1,"157":1,"158":5,"161":3,"163":4}}],["widely",{"2":{"167":1}}],["widths",{"2":{"14":1}}],["width",{"2":{"6":2}}],["wiki",{"2":{"91":1,"152":1}}],["wikipedia",{"2":{"91":1,"152":2}}],["wind",{"2":{"4":1,"6":2,"37":1,"63":1}}],["winding",{"2":{"4":2,"6":2,"37":3,"45":7,"63":1,"121":1}}],["without",{"2":{"1":2,"6":1,"20":1,"21":1,"45":1,"82":1,"97":1,"133":3,"142":1,"155":1}}],["with",{"0":{"52":1,"55":1,"57":1,"151":1,"152":1,"153":1,"165":1,"166":1},"2":{"1":5,"3":5,"4":7,"6":27,"11":1,"18":2,"19":1,"24":1,"33":1,"34":2,"37":7,"38":4,"39":1,"40":2,"44":1,"45":14,"47":6,"52":8,"54":5,"55":15,"56":1,"57":12,"59":1,"60":2,"69":1,"82":1,"86":1,"91":28,"93":1,"96":2,"97":5,"99":1,"100":1,"103":3,"104":2,"105":2,"115":1,"121":7,"124":1,"126":1,"128":2,"131":1,"133":17,"137":1,"140":1,"142":1,"144":1,"147":2,"150":2,"152":2,"153":1,"155":1,"159":1,"160":1,"162":1,"163":4,"164":6,"165":2,"166":2,"167":2,"168":1,"169":1,"170":1}}],["within",{"0":{"108":1,"109":1,"112":1,"113":1,"115":1,"116":1,"117":1},"1":{"109":1,"110":1},"2":{"0":2,"3":9,"4":3,"5":1,"6":13,"7":1,"9":1,"31":1,"34":2,"37":1,"38":3,"40":1,"44":1,"45":9,"46":2,"47":5,"52":1,"55":2,"56":1,"57":6,"59":1,"60":5,"65":2,"66":3,"68":2,"85":1,"91":9,"96":1,"97":9,"108":1,"109":6,"110":11,"111":6,"112":14,"113":15,"114":15,"115":7,"116":4,"117":4,"126":1,"168":1,"169":4,"170":2}}],["will",{"2":{"1":8,"4":7,"5":1,"6":43,"11":1,"19":2,"20":1,"22":3,"34":4,"37":3,"40":2,"44":1,"45":5,"47":1,"50":1,"51":4,"52":4,"54":4,"55":4,"56":4,"57":4,"59":2,"60":4,"63":1,"80":1,"120":1,"121":2,"124":1,"128":2,"131":1,"132":2,"133":8,"136":2,"137":1,"139":2,"142":3,"144":2,"146":3,"150":2,"152":1,"154":1,"155":2,"160":1,"164":1,"167":1,"168":2,"170":1,"171":1}}],["wip",{"2":{"0":1}}]],"serializationVersion":2}';export{e as default}; diff --git a/dev/assets/chunks/@localSearchIndexroot.CJomwgzg.js b/dev/assets/chunks/@localSearchIndexroot.CJomwgzg.js new file mode 100644 index 000000000..c90ec815a --- /dev/null +++ b/dev/assets/chunks/@localSearchIndexroot.CJomwgzg.js @@ -0,0 +1 @@ +const e='{"documentCount":172,"nextId":172,"documentIds":{"0":"/GeometryOps.jl/dev/api#Full-GeometryOps-API-documentation","1":"/GeometryOps.jl/dev/api#apply-and-associated-functions","2":"/GeometryOps.jl/dev/api#General-geometry-methods","3":"/GeometryOps.jl/dev/api#OGC-methods","4":"/GeometryOps.jl/dev/api#Other-general-methods","5":"/GeometryOps.jl/dev/api#Barycentric-coordinates","6":"/GeometryOps.jl/dev/api#Other-methods","7":"/GeometryOps.jl/dev/call_notes#20th-April,-2024","8":"/GeometryOps.jl/dev/call_notes#29th-Feb,-2024","9":"/GeometryOps.jl/dev/call_notes#To-do","10":"/GeometryOps.jl/dev/call_notes#done","11":"/GeometryOps.jl/dev/experiments/accurate_accumulators#Accurate-accumulation","12":"/GeometryOps.jl/dev/experiments/predicates#predicates","13":"/GeometryOps.jl/dev/experiments/predicates#orient","14":"/GeometryOps.jl/dev/experiments/predicates#dashboard","15":"/GeometryOps.jl/dev/experiments/predicates#Testing-robust-vs-regular-predicates","16":"/GeometryOps.jl/dev/experiments/predicates#incircle","17":"/GeometryOps.jl/dev/explanations/paradigms#paradigms","18":"/GeometryOps.jl/dev/explanations/paradigms#apply","19":"/GeometryOps.jl/dev/explanations/paradigms#applyreduce","20":"/GeometryOps.jl/dev/explanations/paradigms#fix-and-prepare","21":"/GeometryOps.jl/dev/explanations/peculiarities#peculiarities","22":"/GeometryOps.jl/dev/explanations/peculiarities#What-does-apply-return-and-why?","23":"/GeometryOps.jl/dev/explanations/peculiarities#Why-do-you-want-me-to-provide-a-target-in-set-operations?","24":"/GeometryOps.jl/dev/explanations/peculiarities#_True-and-_False-(or-BoolsAsTypes)","25":"/GeometryOps.jl/dev/#what-is-geometryops-jl","26":"/GeometryOps.jl/dev/#how-to-navigate-the-docs","27":"/GeometryOps.jl/dev/introduction#introduction","28":"/GeometryOps.jl/dev/introduction#Main-concepts","29":"/GeometryOps.jl/dev/introduction#The-apply-paradigm","30":"/GeometryOps.jl/dev/introduction#What\'s-this-GeoInterface.Wrapper-thing?","31":"/GeometryOps.jl/dev/source/methods/angles#angles","32":"/GeometryOps.jl/dev/source/methods/angles#What-is-angles?","33":"/GeometryOps.jl/dev/source/methods/angles#implementation","34":"/GeometryOps.jl/dev/source/GeometryOps#geometryops-jl","35":"/GeometryOps.jl/dev/source/methods/area#Area-and-signed-area","36":"/GeometryOps.jl/dev/source/methods/area#What-is-area?-What-is-signed-area?","37":"/GeometryOps.jl/dev/source/methods/area#implementation","38":"/GeometryOps.jl/dev/source/methods/barycentric#Barycentric-coordinates","39":"/GeometryOps.jl/dev/source/methods/barycentric#example","40":"/GeometryOps.jl/dev/source/methods/barycentric#Barycentric-coordinate-API","41":"/GeometryOps.jl/dev/source/methods/buffer#buffer","42":"/GeometryOps.jl/dev/source/methods/centroid#centroid","43":"/GeometryOps.jl/dev/source/methods/centroid#What-is-the-centroid?","44":"/GeometryOps.jl/dev/source/methods/centroid#implementation","45":"/GeometryOps.jl/dev/source/methods/clipping/clipping_processor#Polygon-clipping-helpers","46":"/GeometryOps.jl/dev/source/methods/clipping/coverage#What-is-coverage?","47":"/GeometryOps.jl/dev/source/methods/clipping/coverage#implementation","48":"/GeometryOps.jl/dev/source/methods/clipping/cut#Polygon-cutting","49":"/GeometryOps.jl/dev/source/methods/clipping/cut#What-is-cut?","50":"/GeometryOps.jl/dev/source/methods/clipping/cut#implementation","51":"/GeometryOps.jl/dev/source/methods/clipping/difference#Difference-Polygon-Clipping","52":"/GeometryOps.jl/dev/source/methods/clipping/difference#Helper-functions-for-Differences-with-Greiner-and-Hormann-Polygon-Clipping","53":"/GeometryOps.jl/dev/source/methods/clipping/intersection#Geometry-Intersection","54":"/GeometryOps.jl/dev/source/methods/clipping/intersection#Helper-functions-for-Intersections-with-Greiner-and-Hormann-Polygon-Clipping","55":"/GeometryOps.jl/dev/source/methods/clipping/predicates#If-we-want-to-inject-adaptivity,-we-would-do-something-like:","56":"/GeometryOps.jl/dev/source/methods/clipping/union#Union-Polygon-Clipping","57":"/GeometryOps.jl/dev/source/methods/clipping/union#Helper-functions-for-Unions-with-Greiner-and-Hormann-Polygon-Clipping","58":"/GeometryOps.jl/dev/source/methods/distance#Distance-and-signed-distance","59":"/GeometryOps.jl/dev/source/methods/distance#What-is-distance?-What-is-signed-distance?","60":"/GeometryOps.jl/dev/source/methods/distance#implementation","61":"/GeometryOps.jl/dev/source/methods/geom_relations/contains#contains","62":"/GeometryOps.jl/dev/source/methods/geom_relations/contains#What-is-contains?","63":"/GeometryOps.jl/dev/source/methods/geom_relations/contains#implementation","64":"/GeometryOps.jl/dev/source/methods/equals#equals","65":"/GeometryOps.jl/dev/source/methods/equals#What-is-equals?","66":"/GeometryOps.jl/dev/source/methods/equals#implementation","67":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#coveredby","68":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#What-is-coveredby?","69":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#implementation","70":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Convert-features-to-geometries","71":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Points-coveredby-geometries","72":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Lines-coveredby-geometries","73":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Rings-covered-by-geometries","74":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Polygons-covered-by-geometries","75":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Geometries-coveredby-multi-geometry/geometry-collections","76":"/GeometryOps.jl/dev/source/methods/geom_relations/coveredby#Multi-geometry/geometry-collections-coveredby-geometries","77":"/GeometryOps.jl/dev/source/methods/geom_relations/covers#covers","78":"/GeometryOps.jl/dev/source/methods/geom_relations/covers#What-is-covers?","79":"/GeometryOps.jl/dev/source/methods/geom_relations/covers#implementation","80":"/GeometryOps.jl/dev/source/methods/geom_relations/crosses#Crossing-checks","81":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#disjoint","82":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#What-is-disjoint?","83":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#implementation","84":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Convert-features-to-geometries","85":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Point-disjoint-geometries","86":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Lines-disjoint-geometries","87":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Rings-disjoint-geometries","88":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Polygon-disjoint-geometries","89":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Geometries-disjoint-multi-geometry/geometry-collections","90":"/GeometryOps.jl/dev/source/methods/geom_relations/disjoint#Multi-geometry/geometry-collections-coveredby-geometries","91":"/GeometryOps.jl/dev/source/methods/geom_relations/geom_geom_processors#Line-curve-interaction","92":"/GeometryOps.jl/dev/source/methods/geom_relations/intersects#Intersection-checks","93":"/GeometryOps.jl/dev/source/methods/geom_relations/intersects#What-is-intersects?","94":"/GeometryOps.jl/dev/source/methods/geom_relations/intersects#implementation","95":"/GeometryOps.jl/dev/source/methods/geom_relations/overlaps#overlaps","96":"/GeometryOps.jl/dev/source/methods/geom_relations/overlaps#What-is-overlaps?","97":"/GeometryOps.jl/dev/source/methods/geom_relations/overlaps#implementation","98":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#touches","99":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#What-is-touches?","100":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#implementation","101":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Convert-features-to-geometries","102":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Point-touches-geometries","103":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Lines-touching-geometries","104":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Rings-touch-geometries","105":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Polygons-touch-geometries","106":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Geometries-touch-multi-geometry/geometry-collections","107":"/GeometryOps.jl/dev/source/methods/geom_relations/touches#Multi-geometry/geometry-collections-cross-geometries","108":"/GeometryOps.jl/dev/source/methods/geom_relations/within#within","109":"/GeometryOps.jl/dev/source/methods/geom_relations/within#What-is-within?","110":"/GeometryOps.jl/dev/source/methods/geom_relations/within#implementation","111":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Convert-features-to-geometries","112":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Points-within-geometries","113":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Lines-within-geometries","114":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Rings-covered-by-geometries","115":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Polygons-within-geometries","116":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Geometries-within-multi-geometry/geometry-collections","117":"/GeometryOps.jl/dev/source/methods/geom_relations/within#Multi-geometry/geometry-collections-within-geometries","118":"/GeometryOps.jl/dev/source/methods/orientation#orientation","119":"/GeometryOps.jl/dev/source/methods/orientation#isclockwise","120":"/GeometryOps.jl/dev/source/methods/orientation#isconcave","121":"/GeometryOps.jl/dev/source/methods/polygonize#Polygonizing-raster-data","122":"/GeometryOps.jl/dev/source/not_implemented_yet#Not-implemented-yet","123":"/GeometryOps.jl/dev/source/transformations/correction/closed_ring#Closed-Rings","124":"/GeometryOps.jl/dev/source/transformations/correction/closed_ring#example","125":"/GeometryOps.jl/dev/source/transformations/correction/closed_ring#implementation","126":"/GeometryOps.jl/dev/source/primitives#Primitive-functions","127":"/GeometryOps.jl/dev/source/primitives#docstrings","128":"/GeometryOps.jl/dev/source/primitives#functions","129":"/GeometryOps.jl/dev/source/primitives#types","130":"/GeometryOps.jl/dev/source/primitives#implementation","131":"/GeometryOps.jl/dev/source/primitives#What-is-apply?","132":"/GeometryOps.jl/dev/source/primitives#embedding","133":"/GeometryOps.jl/dev/source/primitives#threading","134":"/GeometryOps.jl/dev/source/transformations/correction/geometry_correction#Geometry-Corrections","135":"/GeometryOps.jl/dev/source/transformations/correction/geometry_correction#interface","136":"/GeometryOps.jl/dev/source/transformations/correction/geometry_correction#Available-corrections","137":"/GeometryOps.jl/dev/source/transformations/extent#Extent-embedding","138":"/GeometryOps.jl/dev/source/transformations/correction/intersecting_polygons#Intersecting-Polygons","139":"/GeometryOps.jl/dev/source/transformations/correction/intersecting_polygons#example","140":"/GeometryOps.jl/dev/source/transformations/correction/intersecting_polygons#implementation","141":"/GeometryOps.jl/dev/source/transformations/flip#Coordinate-flipping","142":"/GeometryOps.jl/dev/source/transformations/reproject#Geometry-reprojection","143":"/GeometryOps.jl/dev/source/transformations/reproject#Method-error-handling","144":"/GeometryOps.jl/dev/source/transformations/segmentize#segmentize","145":"/GeometryOps.jl/dev/source/transformations/segmentize#examples","146":"/GeometryOps.jl/dev/source/transformations/segmentize#benchmark","147":"/GeometryOps.jl/dev/source/transformations/segmentize#implementation","148":"/GeometryOps.jl/dev/source/transformations/simplify#Geometry-simplification","149":"/GeometryOps.jl/dev/source/transformations/simplify#examples","150":"/GeometryOps.jl/dev/source/transformations/simplify#benchmark","151":"/GeometryOps.jl/dev/source/transformations/simplify#Simplify-with-RadialDistance-Algorithm","152":"/GeometryOps.jl/dev/source/transformations/simplify#Simplify-with-DouglasPeucker-Algorithm","153":"/GeometryOps.jl/dev/source/transformations/simplify#Simplify-with-VisvalingamWhyatt-Algorithm","154":"/GeometryOps.jl/dev/source/transformations/simplify#Shared-utils","155":"/GeometryOps.jl/dev/source/transformations/transform#Pointwise-transformation","156":"/GeometryOps.jl/dev/source/transformations/tuples#Tuple-conversion","157":"/GeometryOps.jl/dev/source/types#types","158":"/GeometryOps.jl/dev/source/types#TraitTarget","159":"/GeometryOps.jl/dev/source/types#BoolsAsTypes","160":"/GeometryOps.jl/dev/source/types#GEOS","161":"/GeometryOps.jl/dev/source/utils#Utility-functions","162":"/GeometryOps.jl/dev/tutorials/creating_geometry#Creating-Geometry","163":"/GeometryOps.jl/dev/tutorials/creating_geometry#creating-geometry","164":"/GeometryOps.jl/dev/tutorials/creating_geometry#plot-geometry","165":"/GeometryOps.jl/dev/tutorials/creating_geometry#geom-crs","166":"/GeometryOps.jl/dev/tutorials/creating_geometry#attributes","167":"/GeometryOps.jl/dev/tutorials/creating_geometry#save-geometry","168":"/GeometryOps.jl/dev/tutorials/spatial_joins#Spatial-joins","169":"/GeometryOps.jl/dev/tutorials/spatial_joins#Simple-example","170":"/GeometryOps.jl/dev/tutorials/spatial_joins#Real-world-example","171":"/GeometryOps.jl/dev/tutorials/spatial_joins#Enabling-custom-predicates"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[4,1,88],"1":[4,4,248],"2":[3,4,1],"3":[2,7,208],"4":[3,7,258],"5":[2,4,84],"6":[2,4,1061],"7":[3,1,55],"8":[3,1,1],"9":[2,3,107],"10":[1,3,17],"11":[2,1,74],"12":[1,1,5],"13":[1,1,128],"14":[1,2,116],"15":[5,2,72],"16":[1,1,1],"17":[1,1,53],"18":[1,1,109],"19":[1,2,35],"20":[3,1,79],"21":[1,1,1],"22":[7,1,71],"23":[13,1,101],"24":[6,1,66],"25":[5,1,72],"26":[5,1,61],"27":[1,1,72],"28":[2,1,1],"29":[3,3,50],"30":[8,3,18],"31":[1,1,3],"32":[4,1,57],"33":[1,1,268],"34":[2,1,116],"35":[4,1,4],"36":[5,4,100],"37":[1,4,246],"38":[2,1,65],"39":[1,2,211],"40":[3,2,414],"41":[1,1,110],"42":[1,1,6],"43":[5,1,91],"44":[1,1,199],"45":[3,1,609],"46":[4,1,70],"47":[1,1,327],"48":[2,1,3],"49":[4,2,57],"50":[1,2,200],"51":[3,1,214],"52":[10,1,190],"53":[2,1,250],"54":[10,1,480],"55":[11,1,25],"56":[3,1,235],"57":[10,1,283],"58":[4,1,4],"59":[5,4,128],"60":[1,4,260],"61":[1,1,3],"62":[4,1,79],"63":[1,1,79],"64":[1,1,3],"65":[4,1,68],"66":[1,1,265],"67":[1,1,3],"68":[4,1,81],"69":[1,1,128],"70":[4,1,11],"71":[3,1,56],"72":[3,1,46],"73":[4,1,48],"74":[4,1,40],"75":[5,1,40],"76":[5,1,44],"77":[1,1,3],"78":[4,1,67],"79":[1,1,78],"80":[2,1,149],"81":[1,1,3],"82":[4,1,68],"83":[1,1,110],"84":[4,1,10],"85":[3,1,57],"86":[3,1,58],"87":[3,1,47],"88":[3,1,33],"89":[5,1,39],"90":[5,1,44],"91":[3,1,432],"92":[2,1,3],"93":[4,2,80],"94":[1,2,76],"95":[1,1,3],"96":[4,1,82],"97":[1,1,244],"98":[1,1,3],"99":[4,1,70],"100":[1,1,125],"101":[4,1,11],"102":[3,1,69],"103":[3,1,52],"104":[3,1,61],"105":[3,1,40],"106":[5,1,39],"107":[5,1,42],"108":[1,1,3],"109":[4,1,72],"110":[1,1,129],"111":[4,1,11],"112":[3,1,63],"113":[3,1,53],"114":[4,1,53],"115":[3,1,38],"116":[5,1,39],"117":[5,1,42],"118":[1,1,4],"119":[1,1,21],"120":[1,1,206],"121":[3,1,511],"122":[3,1,47],"123":[2,1,54],"124":[1,2,87],"125":[1,2,83],"126":[2,1,113],"127":[1,2,1],"128":[1,3,106],"129":[1,2,12],"130":[1,2,33],"131":[4,2,114],"132":[2,2,36],"133":[1,2,536],"134":[2,1,41],"135":[1,2,112],"136":[2,2,109],"137":[2,1,71],"138":[2,1,77],"139":[1,2,70],"140":[1,2,135],"141":[2,1,56],"142":[2,1,132],"143":[3,2,77],"144":[1,1,76],"145":[1,1,147],"146":[1,1,268],"147":[1,1,188],"148":[2,1,44],"149":[1,2,67],"150":[1,2,403],"151":[4,1,75],"152":[4,1,186],"153":[4,1,85],"154":[2,1,149],"155":[2,1,111],"156":[2,1,58],"157":[1,1,38],"158":[1,1,74],"159":[1,1,82],"160":[1,1,147],"161":[2,1,136],"162":[2,1,60],"163":[4,2,287],"164":[13,2,280],"165":[9,2,199],"166":[7,2,63],"167":[4,2,140],"168":[2,1,138],"169":[2,2,137],"170":[3,2,117],"171":[3,2,68]},"averageFieldLength":[2.877906976744187,1.4534883720930232,109.88372093023256],"storedFields":{"0":{"title":"Full GeometryOps API documentation","titles":[]},"1":{"title":"apply and associated functions","titles":["Full GeometryOps API documentation"]},"2":{"title":"General geometry methods","titles":["Full GeometryOps API documentation"]},"3":{"title":"OGC methods","titles":["Full GeometryOps API documentation","General geometry methods"]},"4":{"title":"Other general methods","titles":["Full GeometryOps API documentation","General geometry methods"]},"5":{"title":"Barycentric coordinates","titles":["Full GeometryOps API documentation"]},"6":{"title":"Other methods","titles":["Full GeometryOps API documentation"]},"7":{"title":"20th April, 2024","titles":[]},"8":{"title":"29th Feb, 2024","titles":[]},"9":{"title":"To do","titles":["29th Feb, 2024"]},"10":{"title":"Done","titles":["29th Feb, 2024"]},"11":{"title":"Accurate accumulation","titles":[]},"12":{"title":"Predicates","titles":[]},"13":{"title":"Orient","titles":["Predicates"]},"14":{"title":"Dashboard","titles":["Predicates","Orient"]},"15":{"title":"Testing robust vs regular predicates","titles":["Predicates","Orient"]},"16":{"title":"Incircle","titles":["Predicates"]},"17":{"title":"Paradigms","titles":[]},"18":{"title":"apply","titles":["Paradigms"]},"19":{"title":"applyreduce","titles":["Paradigms","apply"]},"20":{"title":"fix and prepare","titles":["Paradigms"]},"21":{"title":"Peculiarities","titles":[]},"22":{"title":"What does apply return and why?","titles":["Peculiarities"]},"23":{"title":"Why do you want me to provide a target in set operations?","titles":["Peculiarities"]},"24":{"title":"_True and _False (or BoolsAsTypes)","titles":["Peculiarities"]},"25":{"title":"What is GeometryOps.jl?","titles":[]},"26":{"title":"How to navigate the docs","titles":[]},"27":{"title":"Introduction","titles":[]},"28":{"title":"Main concepts","titles":["Introduction"]},"29":{"title":"The apply paradigm","titles":["Introduction","Main concepts"]},"30":{"title":"What's this GeoInterface.Wrapper thing?","titles":["Introduction","Main concepts"]},"31":{"title":"Angles","titles":[]},"32":{"title":"What is angles?","titles":["Angles"]},"33":{"title":"Implementation","titles":["Angles"]},"34":{"title":"GeometryOps.jl","titles":[]},"35":{"title":"Area and signed area","titles":[]},"36":{"title":"What is area? What is signed area?","titles":["Area and signed area"]},"37":{"title":"Implementation","titles":["Area and signed area"]},"38":{"title":"Barycentric coordinates","titles":[]},"39":{"title":"Example","titles":["Barycentric coordinates"]},"40":{"title":"Barycentric-coordinate API","titles":["Barycentric coordinates"]},"41":{"title":"Buffer","titles":[]},"42":{"title":"Centroid","titles":[]},"43":{"title":"What is the centroid?","titles":["Centroid"]},"44":{"title":"Implementation","titles":["Centroid"]},"45":{"title":"Polygon clipping helpers","titles":[]},"46":{"title":"What is coverage?","titles":[]},"47":{"title":"Implementation","titles":[]},"48":{"title":"Polygon cutting","titles":[]},"49":{"title":"What is cut?","titles":["Polygon cutting"]},"50":{"title":"Implementation","titles":["Polygon cutting"]},"51":{"title":"Difference Polygon Clipping","titles":[]},"52":{"title":"Helper functions for Differences with Greiner and Hormann Polygon Clipping","titles":[]},"53":{"title":"Geometry Intersection","titles":[]},"54":{"title":"Helper functions for Intersections with Greiner and Hormann Polygon Clipping","titles":[]},"55":{"title":"If we want to inject adaptivity, we would do something like:","titles":[]},"56":{"title":"Union Polygon Clipping","titles":[]},"57":{"title":"Helper functions for Unions with Greiner and Hormann Polygon Clipping","titles":[]},"58":{"title":"Distance and signed distance","titles":[]},"59":{"title":"What is distance? What is signed distance?","titles":["Distance and signed distance"]},"60":{"title":"Implementation","titles":["Distance and signed distance"]},"61":{"title":"Contains","titles":[]},"62":{"title":"What is contains?","titles":["Contains"]},"63":{"title":"Implementation","titles":["Contains"]},"64":{"title":"Equals","titles":[]},"65":{"title":"What is equals?","titles":["Equals"]},"66":{"title":"Implementation","titles":["Equals"]},"67":{"title":"CoveredBy","titles":[]},"68":{"title":"What is coveredby?","titles":["CoveredBy"]},"69":{"title":"Implementation","titles":["CoveredBy"]},"70":{"title":"Convert features to geometries","titles":[]},"71":{"title":"Points coveredby geometries","titles":[]},"72":{"title":"Lines coveredby geometries","titles":[]},"73":{"title":"Rings covered by geometries","titles":[]},"74":{"title":"Polygons covered by geometries","titles":[]},"75":{"title":"Geometries coveredby multi-geometry/geometry collections","titles":[]},"76":{"title":"Multi-geometry/geometry collections coveredby geometries","titles":[]},"77":{"title":"Covers","titles":[]},"78":{"title":"What is covers?","titles":["Covers"]},"79":{"title":"Implementation","titles":["Covers"]},"80":{"title":"Crossing checks","titles":[]},"81":{"title":"Disjoint","titles":[]},"82":{"title":"What is disjoint?","titles":["Disjoint"]},"83":{"title":"Implementation","titles":["Disjoint"]},"84":{"title":"Convert features to geometries","titles":[]},"85":{"title":"Point disjoint geometries","titles":[]},"86":{"title":"Lines disjoint geometries","titles":[]},"87":{"title":"Rings disjoint geometries","titles":[]},"88":{"title":"Polygon disjoint geometries","titles":[]},"89":{"title":"Geometries disjoint multi-geometry/geometry collections","titles":[]},"90":{"title":"Multi-geometry/geometry collections coveredby geometries","titles":[]},"91":{"title":"Line-curve interaction","titles":[]},"92":{"title":"Intersection checks","titles":[]},"93":{"title":"What is intersects?","titles":["Intersection checks"]},"94":{"title":"Implementation","titles":["Intersection checks"]},"95":{"title":"Overlaps","titles":[]},"96":{"title":"What is overlaps?","titles":["Overlaps"]},"97":{"title":"Implementation","titles":["Overlaps"]},"98":{"title":"Touches","titles":[]},"99":{"title":"What is touches?","titles":["Touches"]},"100":{"title":"Implementation","titles":["Touches"]},"101":{"title":"Convert features to geometries","titles":[]},"102":{"title":"Point touches geometries","titles":[]},"103":{"title":"Lines touching geometries","titles":[]},"104":{"title":"Rings touch geometries","titles":[]},"105":{"title":"Polygons touch geometries","titles":[]},"106":{"title":"Geometries touch multi-geometry/geometry collections","titles":[]},"107":{"title":"Multi-geometry/geometry collections cross geometries","titles":[]},"108":{"title":"Within","titles":[]},"109":{"title":"What is within?","titles":["Within"]},"110":{"title":"Implementation","titles":["Within"]},"111":{"title":"Convert features to geometries","titles":[]},"112":{"title":"Points within geometries","titles":[]},"113":{"title":"Lines within geometries","titles":[]},"114":{"title":"Rings covered by geometries","titles":[]},"115":{"title":"Polygons within geometries","titles":[]},"116":{"title":"Geometries within multi-geometry/geometry collections","titles":[]},"117":{"title":"Multi-geometry/geometry collections within geometries","titles":[]},"118":{"title":"Orientation","titles":[]},"119":{"title":"isclockwise","titles":["Orientation"]},"120":{"title":"isconcave","titles":["Orientation"]},"121":{"title":"Polygonizing raster data","titles":[]},"122":{"title":"Not implemented yet","titles":[]},"123":{"title":"Closed Rings","titles":[]},"124":{"title":"Example","titles":["Closed Rings"]},"125":{"title":"Implementation","titles":["Closed Rings"]},"126":{"title":"Primitive functions","titles":[]},"127":{"title":"Docstrings","titles":["Primitive functions"]},"128":{"title":"Functions","titles":["Primitive functions","Docstrings"]},"129":{"title":"Types","titles":["Primitive functions"]},"130":{"title":"Implementation","titles":["Primitive functions"]},"131":{"title":"What is apply?","titles":["Primitive functions"]},"132":{"title":"Embedding:","titles":["Primitive functions"]},"133":{"title":"Threading","titles":["Primitive functions"]},"134":{"title":"Geometry Corrections","titles":[]},"135":{"title":"Interface","titles":["Geometry Corrections"]},"136":{"title":"Available corrections","titles":["Geometry Corrections"]},"137":{"title":"Extent embedding","titles":[]},"138":{"title":"Intersecting Polygons","titles":[]},"139":{"title":"Example","titles":["Intersecting Polygons"]},"140":{"title":"Implementation","titles":["Intersecting Polygons"]},"141":{"title":"Coordinate flipping","titles":[]},"142":{"title":"Geometry reprojection","titles":[]},"143":{"title":"Method error handling","titles":["Geometry reprojection"]},"144":{"title":"Segmentize","titles":[]},"145":{"title":"Examples","titles":["Segmentize"]},"146":{"title":"Benchmark","titles":["Segmentize"]},"147":{"title":"Implementation","titles":["Segmentize"]},"148":{"title":"Geometry simplification","titles":[]},"149":{"title":"Examples","titles":["Geometry simplification"]},"150":{"title":"Benchmark","titles":["Geometry simplification"]},"151":{"title":"Simplify with RadialDistance Algorithm","titles":[]},"152":{"title":"Simplify with DouglasPeucker Algorithm","titles":[]},"153":{"title":"Simplify with VisvalingamWhyatt Algorithm","titles":[]},"154":{"title":"Shared utils","titles":[]},"155":{"title":"Pointwise transformation","titles":[]},"156":{"title":"Tuple conversion","titles":[]},"157":{"title":"Types","titles":[]},"158":{"title":"TraitTarget","titles":["Types"]},"159":{"title":"BoolsAsTypes","titles":["Types"]},"160":{"title":"GEOS","titles":["Types"]},"161":{"title":"Utility functions","titles":[]},"162":{"title":"Creating Geometry","titles":[]},"163":{"title":"Creating and plotting geometries","titles":["Creating Geometry"]},"164":{"title":"Plot geometries on a map using GeoMakie and coordinate reference system (CRS)","titles":["Creating Geometry"]},"165":{"title":"Create geospatial geometries with embedded coordinate reference system information","titles":["Creating Geometry"]},"166":{"title":"Creating a table with attributes and geometry","titles":["Creating Geometry"]},"167":{"title":"Saving your geospatial data","titles":["Creating Geometry"]},"168":{"title":"Spatial joins","titles":[]},"169":{"title":"Simple example","titles":["Spatial joins"]},"170":{"title":"Real-world example","titles":["Spatial joins"]},"171":{"title":"Enabling custom predicates","titles":["Spatial joins"]}},"dirtCount":0,"index":[["⋮",{"2":{"164":1}}],["θ",{"2":{"163":7,"164":3,"165":5}}],["☁",{"2":{"163":1}}],["✈",{"2":{"163":1}}],["÷",{"2":{"133":2}}],["ϵ",{"2":{"54":5}}],["∘",{"2":{"54":1,"97":2,"121":2,"135":1,"150":2,"171":2}}],["⊻",{"2":{"45":1,"52":2}}],["≥",{"2":{"45":1,"91":2,"140":1,"152":1}}],["α≈1",{"2":{"54":1}}],["α≈0",{"2":{"54":1}}],["α2",{"2":{"45":4,"54":2}}],["α",{"2":{"45":3,"54":28,"91":7}}],["α1",{"2":{"45":4,"54":2}}],["β2",{"2":{"45":4,"54":2}}],["β",{"2":{"45":4,"54":28,"91":7}}],["β1",{"2":{"45":4,"54":2}}],["≤",{"2":{"45":5,"47":14,"91":6,"152":1,"154":1,"161":4}}],["^",{"2":{"164":1}}],["^3",{"2":{"164":1}}],["^n",{"2":{"120":1}}],["^2",{"2":{"44":2,"60":2}}],["^hormannpresentation",{"2":{"40":2}}],["∑λ",{"2":{"40":2}}],["∑i=2n",{"2":{"6":1}}],["`$",{"2":{"160":1}}],["`libgeos",{"2":{"160":1}}],["`linearring`",{"2":{"147":1}}],["`linearsegments`",{"2":{"147":1}}],["`linestring`",{"2":{"147":1}}],["`linestringtrait`",{"2":{"135":1}}],["`line2`",{"2":{"120":1}}],["`line1`",{"2":{"120":1}}],["`line",{"2":{"53":4}}],["`equatorial",{"2":{"146":2}}],["`extents",{"2":{"137":1}}],["`inf`",{"2":{"142":1}}],["`intersects`",{"2":{"94":1}}],["`intersectingpolygons`",{"2":{"51":1,"53":1,"56":1}}],["`prefilter",{"2":{"150":1}}],["`proj",{"2":{"142":1,"146":2}}],["`polgontrait`",{"2":{"133":1}}],["`polygontrait`",{"2":{"133":1,"135":1}}],["`polygonize`",{"2":{"121":2}}],["`polygon`",{"2":{"40":3}}],["`polys`",{"2":{"52":1}}],["`poly",{"2":{"52":3,"54":1,"57":1}}],["`pointrait`",{"2":{"150":1}}],["`pointtrait`",{"2":{"133":3,"135":1}}],["`point",{"2":{"91":3}}],["`point`",{"2":{"40":4,"60":1}}],["`point2f`",{"2":{"39":1}}],["`douglaspeucker`",{"2":{"150":1}}],["`d`",{"2":{"142":1}}],["`difference`",{"2":{"140":1}}],["`disjoint`",{"2":{"94":1}}],["`obj`",{"2":{"133":1,"155":1,"156":1}}],["`op`",{"2":{"133":2}}],["`+`",{"2":{"133":1}}],["`alg",{"2":{"160":1}}],["`alg`",{"2":{"154":1}}],["`always",{"2":{"142":1}}],["`application",{"2":{"135":1}}],["`apply`",{"2":{"133":1,"158":1}}],["`abstractgeometrytrait`",{"2":{"133":1}}],["`abstractarray`",{"2":{"133":1}}],["`abstractmatrix`",{"2":{"121":1}}],["`calc",{"2":{"130":1}}],["`crs`",{"2":{"130":1}}],["`components`",{"2":{"133":1}}],["`collect`",{"2":{"133":1}}],["`covers`",{"2":{"69":1,"79":1}}],["`coveredby`",{"2":{"69":1,"79":1}}],["`contains`",{"2":{"63":1,"110":1}}],["`union",{"2":{"121":2}}],["`unionintersectingpolygons`",{"2":{"140":1}}],["`unionintersectingpolygons",{"2":{"51":1,"52":2,"53":1,"54":2,"56":1,"57":2}}],["`ys`",{"2":{"121":1}}],["`flattening`",{"2":{"146":1}}],["`flattening",{"2":{"146":1}}],["`flatten`",{"2":{"133":1}}],["`f",{"2":{"133":1}}],["`featurecollectiontrait`",{"2":{"133":2}}],["`featurecollection`",{"2":{"121":2}}],["`featuretrait`",{"2":{"133":3}}],["`feature`s",{"2":{"121":1}}],["`f`",{"2":{"121":5,"133":6,"155":2,"160":1}}],["`false`",{"2":{"120":1,"121":1,"130":4,"142":1}}],["`fix",{"2":{"51":2,"52":2,"53":2,"54":2,"56":2,"57":2}}],["`within`",{"2":{"63":1,"110":1}}],["`weight`",{"2":{"40":1}}],["`geos`",{"2":{"160":3}}],["`geodesic`",{"2":{"146":1}}],["`geodesicsegments`",{"2":{"145":1,"146":1,"147":1}}],["`geointerface`",{"2":{"135":1}}],["`geointerface",{"2":{"133":2,"142":2}}],["`geometry`",{"2":{"133":1,"142":2}}],["`geometrycorrection`",{"2":{"125":1,"135":1,"140":2}}],["`geometrybasics",{"2":{"40":3}}],["`geom`",{"2":{"60":3,"133":1,"147":1}}],["`gi",{"2":{"121":1}}],["`g1`",{"2":{"60":1}}],["`tuple",{"2":{"161":1}}],["`tuple`s",{"2":{"156":1}}],["`tuple`",{"2":{"121":1,"156":1}}],["`time`",{"2":{"142":1}}],["`transform`",{"2":{"142":1}}],["`true`",{"2":{"69":1,"80":1,"83":2,"100":1,"110":1,"120":2,"121":1,"130":2,"142":1}}],["`threaded==true`",{"2":{"133":1}}],["`threaded`",{"2":{"130":1}}],["`tol`",{"2":{"150":2,"151":3,"152":2,"153":3,"154":4}}],["`to",{"2":{"54":1}}],["`target",{"2":{"142":3}}],["`target`",{"2":{"53":1,"133":4,"158":1}}],["`tables",{"2":{"133":1}}],["`taget`",{"2":{"51":1,"56":1}}],["`method",{"2":{"147":1}}],["`method`",{"2":{"40":3,"147":1}}],["`max",{"2":{"146":4,"147":2,"160":1}}],["`makie",{"2":{"121":1}}],["`multipointtrait`",{"2":{"133":1,"150":1}}],["`multipolygontrait`",{"2":{"133":1}}],["`multipolygon`",{"2":{"121":3}}],["`multipolygon",{"2":{"52":3,"54":3,"57":2}}],["`multipoly",{"2":{"52":7,"54":3,"57":3}}],["`minpoints`",{"2":{"121":2}}],["`number`",{"2":{"150":2,"154":3}}],["`namedtuple`",{"2":{"133":1}}],["`nothing`",{"2":{"45":1,"130":1}}],["`next",{"2":{"45":1}}],["`bool`",{"2":{"121":2}}],["`buffer`",{"2":{"41":1}}],["`barycentric",{"2":{"40":3}}],["`radialdistance`",{"2":{"150":1}}],["`ratio`",{"2":{"150":2,"154":3}}],["`reproject`",{"2":{"143":1}}],["`rebuild`",{"2":{"133":1}}],["`r`",{"2":{"40":1}}],["`rᵢ`",{"2":{"40":1}}],["`segmentize`",{"2":{"160":1}}],["`svector`",{"2":{"155":3}}],["`simplifyalg`",{"2":{"150":2}}],["`simplify",{"2":{"150":1}}],["`simplify`",{"2":{"150":2}}],["`source",{"2":{"142":3}}],["`s`",{"2":{"40":1}}],["`sᵢ`",{"2":{"40":2}}],["`s2`",{"2":{"40":1}}],["`s1`",{"2":{"40":1}}],["`hcat`",{"2":{"40":1}}],["`x`",{"2":{"133":1}}],["`xs`",{"2":{"121":1}}],["`x1",{"2":{"40":1}}],["`x1`",{"2":{"40":2}}],["`x2`",{"2":{"40":1}}],["`visvalingamwhyatt`",{"2":{"150":1}}],["`vector",{"2":{"142":1}}],["`vector`",{"2":{"121":1,"133":1}}],["`vᵢ`",{"2":{"40":1}}],["`v`",{"2":{"40":1}}],["`values`",{"2":{"40":1,"121":1}}],["`λs`",{"2":{"40":2}}],["`",{"2":{"40":2,"51":1,"52":2,"53":1,"54":3,"56":1,"57":2,"121":3,"133":1,"135":2,"142":2,"147":1,"150":3,"160":2,"161":1}}],["```jldoctest",{"2":{"50":1,"51":1,"53":1,"54":1,"56":1,"63":1,"66":1,"69":1,"79":1,"83":1,"94":1,"97":1,"100":1,"110":1,"120":1,"150":1}}],["```julia",{"2":{"6":2,"40":1,"80":1,"120":1,"133":1,"155":2,"158":1}}],["```math",{"2":{"40":1,"120":1}}],["```",{"2":{"11":1,"40":3,"50":1,"51":1,"53":1,"56":1,"63":1,"66":1,"69":1,"79":1,"83":1,"94":1,"97":1,"100":1,"110":1,"120":3,"121":11,"133":1,"150":1,"155":2,"161":1}}],["λ₁",{"2":{"40":2}}],["λn",{"2":{"38":1}}],["λ3",{"2":{"38":1}}],["λ2",{"2":{"38":2}}],["λ1",{"2":{"38":2}}],["λs",{"2":{"5":3,"6":4,"40":27}}],["π",{"2":{"33":1,"150":1}}],["δbay",{"2":{"54":3}}],["δbax",{"2":{"54":3}}],["δby",{"2":{"54":5}}],["δbx",{"2":{"54":5}}],["δb",{"2":{"54":2}}],["δay",{"2":{"54":5}}],["δax",{"2":{"54":5}}],["δa",{"2":{"54":2}}],["δintrs",{"2":{"45":2}}],["δy2",{"2":{"120":2}}],["δy1",{"2":{"120":2}}],["δyl",{"2":{"97":4}}],["δy",{"2":{"33":8,"47":3,"91":7}}],["δys",{"2":{"33":1}}],["δx2",{"2":{"120":2}}],["δx1",{"2":{"120":2}}],["δxl",{"2":{"97":4}}],["δx",{"2":{"33":9,"47":3,"91":7}}],["∈",{"2":{"14":1}}],["~",{"2":{"14":3}}],["$ratio",{"2":{"154":1}}],["$rectangle",{"2":{"146":2}}],["$number",{"2":{"154":1}}],["$name",{"2":{"34":2}}],["$min",{"2":{"154":1}}],["$douglas",{"2":{"150":1,"152":1}}],["$simplify",{"2":{"150":1,"151":1,"153":1}}],["$lg",{"2":{"146":1}}],["$lin",{"2":{"146":2}}],["$geom",{"2":{"150":8}}],["$geo",{"2":{"146":1}}],["$apply",{"2":{"133":1,"141":1,"142":1,"150":1}}],["$calc",{"2":{"130":1}}],["$crs",{"2":{"130":1,"137":1}}],["$tol",{"2":{"154":1}}],["$threaded",{"2":{"130":1}}],["$t",{"2":{"66":1,"133":4}}],["$target",{"2":{"52":1,"54":1,"57":1,"133":3}}],["$trait",{"2":{"50":1,"52":2,"54":2,"57":2}}],["$",{"2":{"13":4,"14":1,"40":4,"45":2,"121":3,"135":4,"147":1,"150":12,"160":1}}],["qy",{"2":{"13":2,"14":2}}],["qx",{"2":{"13":2,"14":2}}],["q",{"2":{"13":13,"14":12,"45":4}}],["queue",{"2":{"152":41}}],["questions",{"2":{"54":1}}],["quite",{"2":{"124":1,"170":1}}],["quick",{"2":{"4":1,"6":1,"40":1,"137":1,"149":1}}],["quality",{"2":{"6":1,"150":1}}],["quantity",{"2":{"6":1,"146":1}}],["quot",{"2":{"1":4,"6":10,"20":2,"45":8,"59":2,"60":2,"66":2,"78":4,"91":10,"131":2,"133":8,"144":6,"163":2,"169":2}}],["|=",{"2":{"91":4,"97":1}}],["||",{"2":{"33":2,"45":13,"47":8,"50":1,"53":1,"54":5,"56":1,"66":18,"80":2,"91":8,"97":1,"102":1,"121":7,"152":1,"154":3}}],["|",{"2":{"11":4,"91":1}}],["|>",{"2":{"11":8,"13":2,"133":1,"145":1,"146":1,"150":3,"170":2}}],["↩︎",{"2":{"6":1}}],["ᵢᵢᵢ₊₁ᵢᵢ₊₁ᵢᵢ₊₁tᵢ=det",{"2":{"6":1}}],["⋅",{"2":{"6":1,"40":1}}],["zone",{"2":{"164":1}}],["zoom",{"2":{"14":1}}],["zs",{"2":{"121":5}}],["zip",{"2":{"13":1,"14":1,"163":4,"164":1,"165":1}}],["zeros",{"2":{"40":1,"47":1}}],["zero",{"2":{"4":6,"6":8,"37":11,"44":3,"45":4,"47":11,"54":22,"59":1,"60":3,"120":1,"133":1,"152":4}}],["z",{"2":{"4":1,"5":1,"6":2,"40":3,"66":3,"121":3,"141":1,"155":1,"156":1}}],["0e6",{"2":{"164":6}}],["0example",{"2":{"6":1}}],["097075198097933",{"2":{"165":1}}],["09707519809793252",{"2":{"165":2}}],["091887951911644",{"2":{"165":3}}],["0999933334666654",{"2":{"163":1}}],["09801605542096",{"2":{"163":1}}],["098016055420953",{"2":{"163":3}}],["09297443860091348",{"2":{"163":4}}],["09",{"2":{"39":1}}],["08506974233813636",{"2":{"165":2}}],["08",{"2":{"39":1}}],["062749678615475",{"2":{"165":1}}],["06274967861547665",{"2":{"165":2}}],["06592462566760626",{"2":{"163":1}}],["0650624499034016",{"2":{"163":4}}],["06",{"2":{"39":1}}],["02017324484778",{"2":{"165":1}}],["020173244847778715",{"2":{"165":2}}],["027886421973952302",{"2":{"163":4}}],["02",{"2":{"39":3}}],["04500741774392",{"2":{"165":1}}],["045007417743918",{"2":{"165":2}}],["049999166670833324",{"2":{"163":1}}],["0438052480035",{"2":{"163":1}}],["043805248003498",{"2":{"163":3}}],["04",{"2":{"39":6}}],["07518688541961",{"2":{"165":1}}],["075186885419612",{"2":{"165":2}}],["071",{"2":{"145":2,"146":2}}],["07",{"2":{"39":6,"145":6,"146":6}}],["009176636029576",{"2":{"165":1}}],["0091766360295773",{"2":{"165":2}}],["003135308800957",{"2":{"165":1}}],["0031353088009582475",{"2":{"165":2}}],["0035114210915891397",{"2":{"163":4}}],["006784125578492062",{"2":{"165":2}}],["0020133807972559925",{"2":{"165":2}}],["00839489109211",{"2":{"165":3}}],["008696",{"2":{"3":1,"6":3,"53":1,"54":1,"93":1,"94":1}}],["005465967083412071",{"2":{"163":4}}],["00111595449914",{"2":{"163":1}}],["001115954499138",{"2":{"163":3}}],["0010075412835199304",{"2":{"163":4}}],["001",{"2":{"150":1}}],["00085222666982",{"2":{"165":3}}],["000577332369005",{"2":{"165":1}}],["0005773323690041465",{"2":{"165":2}}],["000510363870095e6",{"2":{"164":2}}],["00025191811248184703",{"2":{"165":2}}],["000215611503127e6",{"2":{"164":2}}],["0007260527263e6",{"2":{"164":2}}],["000342160541625e6",{"2":{"164":2}}],["000124843834609e6",{"2":{"164":2}}],["000063948817746e6",{"2":{"164":2}}],["000026987852369e6",{"2":{"164":2}}],["000008144045314",{"2":{"165":1}}],["000007998400139e6",{"2":{"164":2}}],["000000999950001e6",{"2":{"164":2}}],["00001e6",{"2":{"164":1}}],["0004397316773170068",{"2":{"163":4}}],["000",{"2":{"150":1}}],["00",{"2":{"39":2}}],["053798628882221644",{"2":{"165":2}}],["05877989361332",{"2":{"163":1}}],["058779893613323",{"2":{"163":3}}],["05416726609360478",{"2":{"163":4}}],["05",{"2":{"39":1}}],["052704767595",{"2":{"15":1}}],["037564867762832",{"2":{"165":1}}],["03756486776283019",{"2":{"165":2}}],["031245035570328428",{"2":{"165":2}}],["033518309870985",{"2":{"165":3}}],["03503632062070827",{"2":{"163":4}}],["03",{"2":{"39":4}}],["01458815628695",{"2":{"165":3}}],["016044338630866517",{"2":{"165":2}}],["01592650896568995",{"2":{"163":1}}],["01597247419241532",{"2":{"163":4}}],["01908693278165",{"2":{"163":1}}],["019086932781654",{"2":{"163":3}}],["01098781325325",{"2":{"163":1}}],["010987813253244",{"2":{"163":3}}],["011814947665167774",{"2":{"163":4}}],["01362848005",{"2":{"15":1}}],["01",{"2":{"14":1,"39":1,"145":1,"146":1,"163":1,"164":1,"165":1}}],["0^",{"2":{"13":2,"14":2}}],["0+2",{"2":{"13":2,"14":2}}],["0",{"2":{"3":35,"4":12,"6":190,"11":1,"13":5,"14":8,"15":32,"32":20,"33":3,"36":9,"37":4,"39":155,"40":2,"43":6,"44":6,"45":49,"46":13,"47":5,"49":22,"50":49,"51":42,"53":2,"54":21,"56":46,"57":2,"59":20,"60":2,"62":16,"65":13,"66":18,"68":6,"69":6,"78":6,"79":12,"80":9,"82":15,"91":37,"96":13,"97":9,"99":12,"100":11,"109":16,"120":21,"121":7,"124":24,"139":64,"140":4,"145":16,"146":13,"147":1,"150":11,"152":7,"154":4,"161":2,"163":129,"164":2,"165":46,"169":13}}],[">=",{"2":{"40":6,"80":4,"97":1,"154":1}}],[">",{"2":{"1":1,"6":6,"11":2,"13":1,"15":2,"33":1,"40":1,"45":17,"47":3,"50":5,"51":1,"52":1,"54":2,"56":1,"57":3,"59":1,"66":1,"80":8,"91":10,"97":2,"120":4,"121":12,"133":5,"135":1,"140":3,"147":2,"150":1,"152":12,"154":3,"155":1,"161":1,"170":1}}],["914930257661865",{"2":{"165":1}}],["96875496442967",{"2":{"165":1}}],["961329",{"2":{"3":1,"6":3,"53":1,"54":1,"93":1,"94":1}}],["983955661369134",{"2":{"165":1}}],["9833",{"2":{"15":1}}],["9877550012664",{"2":{"163":1}}],["9840085315131",{"2":{"163":1}}],["98271048511609",{"2":{"163":1}}],["98661575256801",{"2":{"163":1}}],["99321587442151",{"2":{"165":1}}],["99375130197483",{"2":{"163":1}}],["997986619202745",{"2":{"165":1}}],["997750168744936",{"2":{"163":1}}],["997247091122496",{"2":{"163":1}}],["99600053330489",{"2":{"163":1}}],["991002699676024",{"2":{"163":1}}],["990022362600165",{"2":{"163":1}}],["99292997455441",{"2":{"163":1}}],["99533829767195",{"2":{"163":1}}],["99865616402829",{"2":{"163":1}}],["999999967681458e6",{"2":{"164":2}}],["999997707902938e6",{"2":{"164":2}}],["999987539891298e6",{"2":{"164":2}}],["999963474314044e6",{"2":{"164":2}}],["999919535736425e6",{"2":{"164":2}}],["999974634566875",{"2":{"163":1}}],["999849768598615e6",{"2":{"164":2}}],["999748081887518",{"2":{"165":1}}],["999748243174828e6",{"2":{"164":2}}],["999750002083324",{"2":{"163":1}}],["999609061508909e6",{"2":{"164":2}}],["999426363321033e6",{"2":{"164":2}}],["999194331880103e6",{"2":{"164":2}}],["99900003333289",{"2":{"163":1}}],["999565375483215",{"2":{"163":1}}],["9im",{"2":{"91":2,"168":1}}],["97976366505997",{"2":{"163":1}}],["9783069507679",{"2":{"163":1}}],["97",{"2":{"39":1}}],["946201371117777",{"2":{"165":1}}],["94",{"2":{"39":1}}],["92",{"2":{"39":1}}],["95770326033",{"2":{"15":1}}],["95",{"2":{"13":1,"14":1}}],["900",{"2":{"146":1}}],["90063612163",{"2":{"11":2}}],["90",{"2":{"32":9,"39":1}}],["909318372607",{"2":{"11":3}}],["9",{"2":{"1":1,"6":1,"91":2,"120":12,"145":1,"155":1}}],["873633668827033",{"2":{"165":1}}],["8135804051007",{"2":{"163":1}}],["813580405100698",{"2":{"163":3}}],["88",{"2":{"39":1}}],["86641841658641",{"2":{"163":1}}],["866418416586406",{"2":{"163":3}}],["86",{"2":{"39":1}}],["868447876892",{"2":{"15":2}}],["84",{"2":{"39":1}}],["821068835162155",{"2":{"165":1}}],["82",{"2":{"39":1}}],["800",{"2":{"39":1}}],["80000",{"2":{"15":5}}],["80",{"2":{"39":1}}],["80869813739",{"2":{"15":2}}],["856614689791036e",{"2":{"15":2}}],["83572303404496",{"2":{"6":2,"53":1,"54":1}}],["8",{"2":{"1":3,"6":9,"13":1,"14":1,"51":2,"56":4,"91":1,"121":3,"145":1,"155":3,"165":2}}],["karnataka",{"2":{"170":1}}],["kbn",{"2":{"11":2}}],["kinds",{"2":{"23":1}}],["kind",{"2":{"9":1,"121":1}}],["k",{"2":{"6":1,"14":6,"40":1,"45":5,"91":5,"163":5,"165":5}}],["kernel",{"2":{"147":4}}],["keepat",{"2":{"56":1,"140":2}}],["keep",{"2":{"45":3,"121":1,"140":14,"145":1,"169":1}}],["keeping",{"2":{"6":1,"133":1,"141":1}}],["keys",{"2":{"121":4}}],["key",{"2":{"6":1,"121":4,"160":5}}],["keyword",{"2":{"6":8,"23":1,"51":1,"53":1,"56":1,"130":6,"133":1,"137":2,"146":2,"160":4,"164":1,"165":1}}],["keywords",{"2":{"1":2,"4":1,"6":10,"91":2,"121":1,"130":1,"133":1,"137":1,"141":2,"142":3,"150":8,"151":1,"152":1,"153":1,"154":1,"156":2}}],["known",{"2":{"47":2}}],["know",{"2":{"6":3,"33":2,"45":1,"47":1,"51":1,"53":1,"54":2,"56":1,"57":1,"133":1,"169":1}}],["kwargs",{"2":{"41":3,"47":1,"50":1,"51":3,"52":3,"53":4,"54":5,"56":3,"57":5,"135":2,"143":1,"146":1}}],["kwdef",{"2":{"34":1,"45":1,"146":1,"151":1,"152":1,"153":1}}],["kw",{"2":{"1":1,"6":11,"91":10,"121":20,"133":21,"141":3,"150":15,"153":1,"155":3,"156":3,"160":6}}],["json",{"2":{"167":3}}],["jstep",{"2":{"66":3}}],["jstart",{"2":{"66":7}}],["joined",{"2":{"169":4}}],["joins",{"0":{"168":1},"1":{"169":1,"170":1,"171":1},"2":{"168":3}}],["joinpath",{"2":{"150":2}}],["join",{"2":{"133":2,"168":4,"169":5,"171":1}}],["joining",{"2":{"6":2,"150":1,"168":1}}],["jpn",{"2":{"170":2}}],["jp",{"2":{"66":2}}],["jhole",{"2":{"66":2}}],["jh",{"2":{"57":5}}],["j+1",{"2":{"45":1,"121":1,"154":1}}],["j",{"2":{"45":24,"66":8,"80":9,"91":12,"120":2,"121":8,"154":2}}],["jet",{"2":{"39":1}}],["just",{"2":{"4":1,"6":1,"44":1,"45":2,"54":4,"57":1,"60":2,"121":1,"131":1,"133":3,"146":1,"168":1}}],["julialand",{"2":{"164":2}}],["julialines",{"2":{"36":1}}],["julialinearsegments",{"2":{"6":1}}],["juliahole",{"2":{"163":1}}],["juliaplot",{"2":{"164":2}}],["juliap1",{"2":{"163":1}}],["juliapoly",{"2":{"164":1}}],["juliapolygon3",{"2":{"164":1}}],["juliapolygon1",{"2":{"163":1}}],["juliapolygonize",{"2":{"6":1}}],["juliapolygon",{"2":{"6":1}}],["juliapoints",{"2":{"169":1}}],["juliapoint",{"2":{"163":1}}],["juliaxoffset",{"2":{"163":3,"165":1}}],["juliax",{"2":{"163":2}}],["juliaxrange",{"2":{"59":1}}],["julia$apply",{"2":{"156":1}}],["julia$threaded",{"2":{"137":1}}],["julia6",{"2":{"150":1}}],["julia```jldoctest",{"2":{"161":1}}],["julia```julia",{"2":{"121":1}}],["julia```",{"2":{"80":1,"158":1}}],["julia1",{"2":{"51":1,"53":1,"54":1,"56":1}}],["julia2",{"2":{"50":1}}],["juliabase",{"2":{"40":1,"60":4,"133":1,"160":1}}],["juliabarycentric",{"2":{"5":3,"6":3}}],["juliamy",{"2":{"171":1}}],["juliamultipoly",{"2":{"150":1}}],["juliamodule",{"2":{"34":1}}],["juliameanvalue",{"2":{"6":1}}],["juliafig",{"2":{"163":1,"164":1}}],["juliafalse",{"2":{"120":1}}],["juliafor",{"2":{"34":1,"133":2}}],["juliafunction",{"2":{"33":2,"40":3,"41":2,"44":1,"45":11,"47":2,"50":1,"52":1,"54":2,"57":1,"60":8,"91":6,"97":2,"102":1,"122":1,"133":5,"143":1,"146":1,"154":2}}],["juliaflexijoins",{"2":{"171":1}}],["juliaflipped",{"2":{"126":1}}],["juliaflip",{"2":{"6":1}}],["juliaflatten",{"2":{"6":1,"128":1}}],["juliagi",{"2":{"11":2}}],["juliago",{"2":{"11":1,"32":1,"36":1,"46":1,"62":1,"65":1,"68":1,"78":1,"82":1,"93":1,"96":1,"99":1,"109":1,"168":1}}],["juliageopoly1",{"2":{"165":1}}],["juliageointerface",{"2":{"161":1}}],["juliageo",{"2":{"6":2}}],["juliageodesicsegments",{"2":{"6":1}}],["juliageos",{"2":{"6":1}}],["juliaweighted",{"2":{"6":1}}],["juliawithin",{"2":{"3":1,"6":1}}],["juliaunwrap",{"2":{"6":1,"133":6}}],["juliaunion",{"2":{"6":1}}],["juliaunionintersectingpolygons",{"2":{"6":1,"136":1}}],["juliausing",{"2":{"6":1,"13":1,"14":1,"39":1,"145":2,"146":1,"149":1,"150":1,"166":1}}],["juliascatter",{"2":{"169":1}}],["juliasource",{"2":{"164":2}}],["juliasimplify",{"2":{"6":1,"150":3}}],["juliasigned",{"2":{"4":2,"6":2}}],["juliasegmentize",{"2":{"6":1}}],["julias1",{"2":{"6":1}}],["juliavisvalingamwhyatt",{"2":{"6":1}}],["juliaring3",{"2":{"164":1}}],["juliaring1",{"2":{"163":1}}],["juliar",{"2":{"163":2,"164":1,"165":1}}],["juliareconstruct",{"2":{"6":1,"128":1}}],["juliarebuild",{"2":{"6":1,"128":1}}],["juliareproject",{"2":{"1":1}}],["juliaradialdistance",{"2":{"6":1}}],["juliadf",{"2":{"166":1}}],["juliadestination",{"2":{"164":1}}],["juliadouglaspeucker",{"2":{"6":1}}],["juliadifference",{"2":{"6":1}}],["juliadiffintersectingpolygons",{"2":{"6":1,"136":1}}],["juliadistance",{"2":{"4":1,"6":1}}],["juliadisjoint",{"2":{"3":1,"6":1}}],["juliaexport",{"2":{"31":1,"35":1,"38":1,"42":1,"48":1,"51":1,"53":1,"56":1,"58":1,"61":1,"64":1,"67":1,"77":1,"81":1,"92":1,"95":1,"98":1,"108":1,"118":1,"121":1,"123":1,"126":1,"134":1,"138":1,"142":1,"144":1,"150":1,"157":1}}],["juliaend",{"2":{"60":1}}],["juliaenforce",{"2":{"6":1}}],["juliaenum",{"2":{"6":2}}],["juliaembed",{"2":{"4":1,"6":1}}],["juliaequals",{"2":{"4":15,"6":15,"45":1}}],["juliaaccuratearithmetic",{"2":{"11":2}}],["juliaabstract",{"2":{"6":3,"135":1,"136":1,"146":1,"159":1}}],["juliaangles",{"2":{"4":1,"6":1}}],["juliaarea",{"2":{"4":1,"6":1}}],["juliaapplyreduce",{"2":{"1":1,"6":1}}],["juliaapply",{"2":{"1":1,"6":1,"18":1}}],["juliacent",{"2":{"43":1}}],["juliacentroid",{"2":{"4":1,"6":3}}],["juliacut",{"2":{"6":1}}],["juliaclosedring",{"2":{"6":1,"136":1}}],["juliaconst",{"2":{"33":1,"37":1,"40":1,"45":1,"47":2,"60":1,"69":1,"83":1,"100":1,"110":1,"130":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":{"63":1,"66":1,"69":1,"79":1,"83":1,"94":1,"97":1,"100":1,"110":1,"120":1}}],["juliatraittarget",{"2":{"6":2,"158":1}}],["juliatransform",{"2":{"1":1,"6":1}}],["juliatuples",{"2":{"6":1}}],["juliat",{"2":{"6":1}}],["juliatouches",{"2":{"3":1,"6":1}}],["juliaoverlaps",{"2":{"3":9,"6":9}}],["juliainnerjoin",{"2":{"170":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":18,"11":1,"32":1,"36":1,"43":1,"46":1,"49":1,"59":1,"62":1,"65":1,"68":1,"78":1,"82":1,"93":1,"96":1,"99":1,"109":1,"124":2,"139":2,"145":1,"167":4,"169":1,"170":1}}],["julia",{"2":{"3":1,"6":4,"9":1,"15":1,"25":1,"27":1,"33":4,"34":1,"37":10,"40":8,"44":19,"45":60,"47":18,"50":10,"51":6,"52":1,"53":5,"54":29,"56":6,"57":4,"59":1,"60":4,"63":1,"66":15,"70":1,"71":5,"72":1,"73":1,"74":2,"75":1,"76":1,"79":1,"80":3,"84":1,"85":3,"86":1,"87":1,"88":1,"89":1,"90":1,"91":50,"94":1,"97":7,"101":1,"102":3,"103":1,"104":1,"105":1,"106":1,"107":1,"111":1,"112":3,"113":1,"114":1,"115":2,"116":1,"117":1,"120":9,"121":40,"122":2,"125":5,"133":63,"135":1,"137":1,"140":3,"141":1,"142":1,"146":1,"147":2,"150":1,"151":2,"152":15,"153":3,"155":1,"156":1,"157":1,"158":1,"160":4,"161":1,"162":2,"164":2,"167":2,"168":1,"169":1}}],["julia>",{"2":{"1":5,"6":7,"120":3,"155":7}}],["juliajulia>",{"2":{"1":2,"6":3}}],["jl`",{"2":{"142":1,"160":1}}],["jldoctest",{"2":{"6":1}}],["jl",{"0":{"25":1,"34":1},"2":{"1":10,"4":1,"6":13,"10":2,"11":1,"22":2,"25":2,"27":2,"33":1,"34":41,"37":1,"40":1,"41":3,"44":1,"45":1,"47":1,"50":1,"52":1,"54":1,"55":1,"57":1,"60":1,"63":1,"66":1,"76":1,"79":1,"80":1,"90":1,"91":1,"94":1,"97":1,"107":1,"117":1,"120":2,"121":1,"122":1,"125":1,"128":1,"133":3,"136":1,"137":2,"140":1,"141":1,"142":4,"143":3,"144":1,"146":3,"147":2,"150":2,"154":1,"155":6,"156":2,"159":1,"160":2,"161":1,"164":1,"168":1}}],["+5000000",{"2":{"164":1}}],["+proj=natearth2",{"2":{"164":2}}],["+=",{"2":{"37":2,"40":11,"44":6,"45":17,"47":10,"50":1,"66":1,"80":1,"91":5,"120":1,"140":2,"152":4,"161":3}}],["+",{"2":{"1":1,"6":2,"13":1,"14":1,"33":4,"37":1,"40":20,"44":10,"45":15,"47":7,"50":1,"54":10,"60":3,"66":2,"80":2,"91":6,"120":6,"121":2,"140":3,"147":2,"152":3,"153":2,"154":2,"163":6,"164":1,"165":4}}],["yticklabelsvisible",{"2":{"164":1}}],["york",{"2":{"170":1}}],["yoffset",{"2":{"163":7,"165":2}}],["your",{"0":{"167":1},"2":{"18":1,"41":1,"121":1,"126":1,"143":1,"146":1,"166":1,"167":1,"171":2}}],["you",{"0":{"23":1},"2":{"1":1,"4":1,"5":2,"6":10,"9":1,"11":1,"17":1,"18":5,"23":1,"29":2,"33":1,"37":1,"40":8,"41":1,"44":1,"51":1,"53":1,"56":1,"124":1,"126":1,"139":1,"143":1,"145":1,"146":1,"147":1,"155":1,"158":1,"164":1,"166":2,"167":3,"169":2,"170":3,"171":4}}],["y=y",{"2":{"161":1}}],["yvec",{"2":{"121":4}}],["ybounds",{"2":{"121":4}}],["yhalf",{"2":{"121":3}}],["ylast",{"2":{"60":3}}],["yfirst",{"2":{"60":5}}],["y0",{"2":{"60":5}}],["yw",{"2":{"47":4}}],["ye",{"2":{"47":4}}],["yet",{"0":{"122":1},"2":{"34":1,"40":1,"50":1,"52":1,"54":1,"57":1,"66":1,"121":1,"122":1,"135":2,"170":1}}],["y2",{"2":{"44":2,"47":18,"60":7,"80":10,"91":5,"97":4,"121":5,"147":6,"161":2}}],["y1",{"2":{"44":2,"47":22,"60":7,"80":11,"91":6,"97":5,"121":5,"147":7,"161":2}}],["yind+1",{"2":{"121":1}}],["yind",{"2":{"121":2}}],["yinterior",{"2":{"44":2}}],["yield",{"2":{"54":1,"146":1}}],["yi+yi−1",{"2":{"6":1}}],["ycentroid",{"2":{"44":13}}],["yrange",{"2":{"39":3,"59":3}}],["yautolimits",{"2":{"39":2}}],["yp2",{"2":{"33":4}}],["ys",{"2":{"6":3,"121":30}}],["ymax",{"2":{"6":1,"46":2,"47":48}}],["ymin",{"2":{"6":1,"46":2,"47":49}}],["y",{"2":{"1":2,"4":1,"6":4,"13":9,"14":10,"33":8,"37":2,"39":8,"43":1,"44":10,"45":6,"46":1,"47":8,"52":6,"54":8,"59":2,"60":7,"66":3,"80":21,"91":16,"97":7,"120":10,"126":2,"133":1,"141":4,"142":1,"147":2,"154":1,"155":2,"156":2,"161":7,"163":8,"164":2,"165":2,"168":1}}],["75",{"2":{"59":2,"62":1,"82":1,"109":1}}],["78",{"2":{"39":1}}],["74",{"2":{"39":1}}],["72",{"2":{"39":1}}],["726711609794",{"2":{"15":1}}],["76",{"2":{"39":1}}],["76085",{"2":{"15":1}}],["768946",{"2":{"3":1,"6":3,"53":1,"54":1,"93":1,"94":1}}],["70440582002419",{"2":{"163":1}}],["704405820024185",{"2":{"163":3}}],["704377648755",{"2":{"15":2}}],["700",{"2":{"14":1}}],["700454",{"2":{"6":1,"149":1,"150":1}}],["701141",{"2":{"6":1,"149":1,"150":1}}],["70",{"2":{"6":20,"39":1,"149":20,"150":20,"163":20}}],["738281",{"2":{"3":1,"6":3,"53":1,"54":1,"93":1,"94":1}}],["7",{"2":{"1":5,"6":5,"91":1,"133":1,"145":4,"146":4,"155":4,"165":1}}],["65533525026046",{"2":{"163":1}}],["655335250260467",{"2":{"163":3}}],["659942",{"2":{"6":1,"149":1,"150":1}}],["6area",{"2":{"44":2}}],["66",{"2":{"39":1}}],["668869",{"2":{"6":1,"149":1,"150":1}}],["64744840486518",{"2":{"165":3}}],["64",{"2":{"39":1,"145":2,"146":2}}],["646209",{"2":{"6":1,"149":1,"150":1}}],["629",{"2":{"164":1}}],["62",{"2":{"39":1}}],["624923",{"2":{"6":1,"149":1,"150":1}}],["61366192682",{"2":{"15":1}}],["614624",{"2":{"6":1,"149":1,"150":1}}],["605000000000004",{"2":{"145":2}}],["60",{"2":{"39":1,"145":2}}],["60000",{"2":{"15":3}}],["609817",{"2":{"6":1,"149":1,"150":1}}],["603637",{"2":{"6":2,"149":2,"150":2}}],["68",{"2":{"39":1}}],["682601",{"2":{"6":1,"149":1,"150":1}}],["683975",{"2":{"6":1,"149":1,"150":1}}],["69159119078359",{"2":{"165":3}}],["694274",{"2":{"6":1,"149":1,"150":1}}],["697021",{"2":{"6":1,"149":1,"150":1}}],["639343",{"2":{"6":1,"149":1,"150":1}}],["6",{"2":{"1":12,"3":4,"6":23,"51":3,"56":3,"91":1,"97":4,"133":3,"150":1,"155":9,"165":2}}],["51695367760999",{"2":{"165":1}}],["516953677609987",{"2":{"165":2}}],["51030066635026",{"2":{"163":4}}],["5e6",{"2":{"164":2}}],["55715336218991",{"2":{"165":1}}],["557153362189904",{"2":{"165":2}}],["55",{"2":{"163":3}}],["55494217175954",{"2":{"163":4}}],["57",{"2":{"145":4,"146":4}}],["57725",{"2":{"15":2}}],["5x",{"2":{"133":1}}],["563198",{"2":{"54":1}}],["56",{"2":{"39":1}}],["54",{"2":{"39":1,"163":19}}],["50",{"2":{"39":1,"145":4,"146":4,"163":3}}],["500000",{"2":{"164":1}}],["50000",{"2":{"15":1}}],["500",{"2":{"14":1,"164":1}}],["5d",{"2":{"25":1,"27":1}}],["52",{"2":{"39":1}}],["52521",{"2":{"15":1}}],["52709",{"2":{"15":2}}],["594711",{"2":{"6":1,"149":1,"150":1}}],["590591",{"2":{"6":1,"149":1,"150":1}}],["595397",{"2":{"6":1,"149":1,"150":1}}],["535",{"2":{"145":4}}],["5355",{"2":{"145":2}}],["53333",{"2":{"15":4}}],["53",{"2":{"6":10,"145":2,"161":10}}],["58",{"2":{"39":1}}],["58059",{"2":{"15":2}}],["587158",{"2":{"6":2,"149":2,"150":2}}],["58375366067548",{"2":{"6":2,"53":1,"54":1}}],["584961",{"2":{"3":1,"6":3,"53":1,"54":1,"93":1,"94":1}}],["5",{"2":{"1":29,"3":4,"4":8,"6":84,"13":1,"39":1,"49":5,"50":8,"51":16,"56":18,"59":8,"66":8,"91":1,"97":4,"121":1,"133":2,"145":1,"146":1,"155":27,"163":32,"164":25,"171":1}}],["4983491639274692e6",{"2":{"164":2}}],["4986507085647392e6",{"2":{"164":2}}],["497205585568957e6",{"2":{"164":2}}],["4976022389592e6",{"2":{"164":2}}],["4957639801366436e6",{"2":{"164":2}}],["4940253560034204e6",{"2":{"164":2}}],["4946113281484335e6",{"2":{"164":2}}],["491990928929295e6",{"2":{"164":2}}],["4904357734399722e6",{"2":{"164":2}}],["4926709788709967e6",{"2":{"164":2}}],["4962554647802354e6",{"2":{"164":2}}],["499984780817334e6",{"2":{"164":2}}],["4997392479570867e6",{"2":{"164":2}}],["4991939151049731e6",{"2":{"164":2}}],["4994001399837343e6",{"2":{"164":2}}],["4998500087497458e6",{"2":{"164":2}}],["49",{"2":{"121":1}}],["43541888381864",{"2":{"165":3}}],["4326",{"2":{"164":2,"165":3}}],["43787",{"2":{"15":1}}],["439295815226",{"2":{"15":1}}],["434306",{"2":{"6":1,"149":1,"150":1}}],["4896621210021754e6",{"2":{"164":2}}],["489271",{"2":{"6":4,"161":4}}],["4870405593989636e6",{"2":{"164":2}}],["4879072738504685e6",{"2":{"164":2}}],["484003",{"2":{"120":4}}],["482551",{"2":{"120":4}}],["48268",{"2":{"15":1}}],["48",{"2":{"39":1}}],["48001",{"2":{"15":1}}],["45",{"2":{"39":2,"120":12,"163":2}}],["450",{"2":{"13":1}}],["458369",{"2":{"6":2,"149":2,"150":2}}],["42004014766201",{"2":{"163":1}}],["420040147662014",{"2":{"163":3}}],["4219350464667047e",{"2":{"163":4}}],["42",{"2":{"13":1,"14":1,"39":3}}],["426283",{"2":{"6":1,"149":1,"150":1}}],["400",{"2":{"39":3}}],["40000",{"2":{"15":1}}],["40",{"2":{"14":1,"39":3}}],["406224",{"2":{"6":1,"149":1,"150":1}}],["404504",{"2":{"6":1,"149":1,"150":1}}],["41544701408748197",{"2":{"163":1}}],["41",{"2":{"39":1,"165":20}}],["41878",{"2":{"15":1}}],["414248",{"2":{"6":1,"149":1,"150":1}}],["419406",{"2":{"6":1,"149":1,"150":1}}],["4493927459900552",{"2":{"163":1}}],["44121252392",{"2":{"15":1}}],["44",{"2":{"14":1,"39":2}}],["442901",{"2":{"6":1,"149":1,"150":1}}],["446339",{"2":{"6":1,"149":1,"150":1}}],["477985",{"2":{"120":4}}],["47",{"2":{"39":3}}],["473835",{"2":{"6":1,"149":1,"150":1}}],["472117",{"2":{"6":2,"149":2,"150":2}}],["46525251631344455",{"2":{"163":1}}],["465816",{"2":{"6":1,"149":1,"150":1}}],["46",{"2":{"39":3}}],["468107",{"2":{"6":1,"149":1,"150":1}}],["464547",{"2":{"6":6,"161":6}}],["4",{"2":{"1":11,"3":4,"6":15,"9":2,"13":2,"14":1,"32":1,"47":1,"63":1,"79":1,"83":1,"91":2,"110":1,"120":1,"133":3,"145":1,"152":1,"155":8,"164":20,"167":2}}],["3585",{"2":{"145":1}}],["35",{"2":{"39":3}}],["354492",{"2":{"3":1,"6":3,"53":1,"54":1,"93":1,"94":1}}],["38042741557976",{"2":{"163":1}}],["380427415579764",{"2":{"163":3}}],["38",{"2":{"39":3}}],["3655999675063154",{"2":{"163":1}}],["36",{"2":{"39":2}}],["360",{"2":{"33":1}}],["36022",{"2":{"15":1}}],["327284472232776",{"2":{"165":3}}],["32610",{"2":{"164":3}}],["32",{"2":{"39":3}}],["37",{"2":{"39":5}}],["3497142366876638",{"2":{"163":1}}],["34",{"2":{"39":3}}],["31571636123306385",{"2":{"163":1}}],["31",{"2":{"39":2}}],["30151010318639",{"2":{"163":4}}],["30527612515520186",{"2":{"163":4}}],["300",{"2":{"59":1}}],["30",{"2":{"14":2,"39":3,"163":2}}],["3376428491230612",{"2":{"163":4}}],["3390",{"2":{"91":1}}],["33333333333",{"2":{"15":1}}],["333333333336",{"2":{"15":3}}],["33",{"2":{"6":20,"149":20,"150":20}}],["3d",{"2":{"4":1,"6":1,"40":2,"66":1,"133":1,"144":1}}],["3",{"2":{"1":13,"3":4,"5":1,"6":29,"14":2,"40":13,"43":6,"45":1,"51":6,"56":5,"63":1,"65":1,"79":1,"83":1,"91":2,"96":1,"110":1,"121":7,"133":3,"139":16,"145":4,"150":3,"152":2,"154":1,"155":11,"164":1,"165":1,"169":1}}],["39945867303846",{"2":{"165":3}}],["3995734698458635",{"2":{"163":1}}],["399918",{"2":{"6":2,"149":2,"150":2}}],["394759",{"2":{"6":1,"149":1,"150":1}}],["392466",{"2":{"6":1,"149":1,"150":1}}],["395332",{"2":{"6":1,"149":1,"150":1}}],["39",{"0":{"30":1},"2":{"0":1,"3":1,"4":5,"6":21,"7":1,"9":2,"17":2,"18":1,"19":1,"23":1,"29":1,"33":1,"36":1,"37":1,"38":1,"39":3,"40":2,"43":6,"44":3,"45":28,"47":1,"49":1,"50":1,"52":1,"53":4,"54":1,"57":2,"60":4,"66":7,"68":1,"78":2,"85":2,"91":19,"97":1,"99":2,"102":2,"121":3,"126":2,"128":3,"129":1,"133":5,"136":6,"138":1,"145":6,"146":1,"148":1,"150":2,"158":2,"159":3,"160":6,"162":1,"163":6,"164":6,"165":4,"166":4,"167":5,"168":1,"170":1,"171":2}}],["2pi",{"2":{"163":1,"164":1,"165":1}}],["2nd",{"2":{"54":6}}],["2335447787454",{"2":{"165":1}}],["233544778745394",{"2":{"165":2}}],["23",{"2":{"39":3,"91":1}}],["23699059147",{"2":{"15":1}}],["28",{"2":{"39":2}}],["28083",{"2":{"15":2}}],["2658011835867806",{"2":{"163":1}}],["26745668457025",{"2":{"163":1}}],["267456684570245",{"2":{"163":3}}],["26",{"2":{"39":5,"91":2}}],["24989584635339165",{"2":{"163":1}}],["24279488312757858",{"2":{"163":4}}],["24",{"2":{"39":7,"91":1,"165":9}}],["274364",{"2":{"51":1,"53":1,"56":1}}],["274363",{"2":{"51":1,"53":1,"56":1}}],["27",{"2":{"39":2}}],["275543",{"2":{"6":6,"161":6}}],["2d",{"2":{"25":1,"27":1,"144":1}}],["2^",{"2":{"14":1}}],["2158594260436434",{"2":{"163":1}}],["215118",{"2":{"6":4,"161":4}}],["21664550952386064",{"2":{"163":4}}],["21",{"2":{"39":4,"91":2,"165":40}}],["21427",{"2":{"11":5}}],["295828190107045",{"2":{"165":1}}],["29582819010705",{"2":{"165":2}}],["299820032397223",{"2":{"163":1}}],["29",{"2":{"39":3}}],["29th",{"0":{"8":1},"1":{"9":1,"10":1}}],["298",{"2":{"6":2,"146":2}}],["20340",{"2":{"167":1}}],["20682326747054",{"2":{"165":1}}],["206823267470536",{"2":{"165":2}}],["20093817218219",{"2":{"163":1}}],["200938172182195",{"2":{"163":3}}],["2018",{"2":{"91":1}}],["2017",{"2":{"6":1,"40":1}}],["20",{"2":{"39":3,"91":2,"163":60,"165":1}}],["2024",{"0":{"7":1,"8":1},"1":{"9":1,"10":1}}],["20th",{"0":{"7":1}}],["25",{"2":{"39":3,"62":1,"91":1,"109":1,"165":12}}],["258",{"2":{"11":1}}],["25px",{"2":{"6":2}}],["257223563`",{"2":{"146":1}}],["257223563",{"2":{"6":2,"146":1}}],["22",{"2":{"39":3,"91":1}}],["22168",{"2":{"3":1,"6":3,"53":1,"54":1,"93":1,"94":1}}],["224758",{"2":{"3":1,"6":3,"53":1,"54":1,"93":1,"94":1}}],["2",{"2":{"1":19,"3":9,"5":1,"6":49,"13":1,"14":1,"15":3,"25":2,"27":2,"33":3,"37":1,"39":6,"40":32,"43":2,"44":4,"45":10,"46":6,"47":7,"49":1,"50":2,"54":2,"56":1,"59":1,"60":3,"63":2,"66":4,"79":2,"80":2,"82":2,"83":3,"91":11,"110":2,"120":2,"121":23,"133":5,"140":1,"147":1,"150":5,"152":7,"153":7,"154":5,"155":18,"161":11,"163":7,"164":6,"165":10,"166":1}}],["1st",{"2":{"54":6}}],["198232937815632",{"2":{"165":1}}],["19823293781563178",{"2":{"165":2}}],["1999466709331708",{"2":{"163":1}}],["1998",{"2":{"51":1,"53":1,"56":1}}],["19",{"2":{"39":2,"91":2}}],["110m",{"2":{"164":2}}],["110",{"2":{"164":1}}],["11591614996189725",{"2":{"163":1}}],["11966707868197",{"2":{"163":1}}],["119667078681967",{"2":{"163":3}}],["11",{"2":{"15":2,"39":2,"91":1}}],["1145",{"2":{"51":1,"53":1,"56":1}}],["114",{"2":{"7":1}}],["16589608273778408",{"2":{"163":1}}],["165644",{"2":{"120":2}}],["16692537029320365",{"2":{"163":4}}],["166644",{"2":{"120":2}}],["163434",{"2":{"120":2}}],["169356",{"2":{"120":2}}],["164434",{"2":{"120":2}}],["16111",{"2":{"15":1}}],["16",{"2":{"13":1,"14":1,"39":2,"91":2}}],["180",{"2":{"33":1,"120":1}}],["18593721105",{"2":{"15":1}}],["18",{"2":{"13":1,"14":1,"39":3,"91":2}}],["1em",{"2":{"6":2}}],["1px",{"2":{"6":2}}],["13309630561615",{"2":{"165":3}}],["13401805979",{"2":{"15":2}}],["13",{"2":{"6":3,"39":1,"51":1,"56":2,"91":1}}],["10n",{"2":{"164":1}}],["10832215707812454",{"2":{"163":4}}],["10m",{"2":{"150":1}}],["10^9",{"2":{"13":1}}],["1000000",{"2":{"164":1}}],["1000",{"2":{"13":2,"145":2,"164":1,"169":2}}],["100",{"2":{"6":2,"14":3,"121":2}}],["10",{"2":{"6":14,"11":1,"36":1,"39":5,"49":4,"50":10,"51":2,"53":1,"56":2,"65":2,"91":3,"96":2,"146":1,"150":3,"163":1}}],["14182952335953",{"2":{"165":1}}],["14182952335952814",{"2":{"165":2}}],["14404531208901e",{"2":{"165":2}}],["1499775010124783",{"2":{"163":1}}],["1464721641710074",{"2":{"163":4}}],["14",{"2":{"3":1,"6":5,"39":2,"53":2,"54":2,"91":1,"93":1,"94":1,"145":2,"146":2}}],["15488729606723",{"2":{"165":3}}],["15",{"2":{"3":1,"6":4,"39":1,"49":1,"50":1,"53":1,"54":1,"91":1,"93":1,"94":1}}],["17893116483784577",{"2":{"165":2}}],["17289902010158",{"2":{"163":1}}],["172899020101585",{"2":{"163":3}}],["170356",{"2":{"120":2}}],["17",{"2":{"3":1,"6":3,"39":3,"53":1,"54":1,"91":2,"93":1,"94":1}}],["125",{"2":{"6":2,"53":1,"54":1}}],["127",{"2":{"3":1,"6":3,"53":1,"54":1,"93":1,"94":1,"164":1}}],["123",{"2":{"3":1,"6":3,"53":1,"54":1,"93":1,"94":1}}],["12636633117296836",{"2":{"165":2}}],["126",{"2":{"3":1,"6":3,"53":1,"54":1,"93":1,"94":1}}],["12",{"2":{"3":1,"6":3,"39":2,"53":1,"54":1,"91":1,"93":1,"94":1,"170":1}}],["124",{"2":{"3":1,"6":3,"53":1,"54":1,"93":1,"94":1}}],["1",{"2":{"1":8,"3":38,"6":63,"13":1,"14":4,"15":1,"32":4,"33":15,"36":7,"38":2,"39":11,"40":16,"43":4,"44":7,"45":72,"46":9,"47":15,"49":1,"50":10,"52":3,"54":9,"56":4,"57":11,"59":7,"60":6,"62":2,"63":6,"66":16,"68":2,"69":2,"78":2,"79":8,"80":12,"82":2,"83":5,"91":38,"97":6,"99":4,"100":5,"102":1,"109":2,"110":6,"120":16,"121":25,"124":12,"125":2,"133":9,"140":9,"146":1,"147":4,"150":8,"152":15,"153":3,"154":15,"155":6,"161":9,"163":8,"164":44,"165":12,"166":1,"169":8,"170":3}}],["human",{"2":{"167":1}}],["hypot",{"2":{"147":1}}],["h2",{"2":{"91":6}}],["h1",{"2":{"91":11}}],["hm",{"2":{"39":2}}],["h",{"2":{"33":2,"45":2,"57":8}}],["high",{"2":{"167":1}}],["highest",{"2":{"165":1}}],["hit",{"2":{"45":1,"133":5}}],["hits",{"2":{"18":1}}],["hidedecorations",{"2":{"39":2}}],["hinter",{"2":{"34":3,"41":1,"143":1,"146":1}}],["hint",{"2":{"34":3,"41":1,"146":1}}],["hinge=2",{"2":{"53":1}}],["hinge`",{"2":{"53":1}}],["hinge",{"2":{"6":1,"45":1,"54":13,"91":15}}],["hist",{"2":{"13":1}}],["histogram",{"2":{"13":1}}],["href=",{"2":{"6":2}}],["https",{"2":{"6":2,"51":1,"53":1,"54":1,"56":1,"91":2,"150":1,"152":1}}],["hcat",{"2":{"6":1}}],["hexpb",{"2":{"164":1}}],["heavily",{"2":{"133":1}}],["heatmap",{"2":{"13":5,"14":6,"39":2,"59":2,"121":1}}],["help",{"2":{"159":1}}],["helpers",{"0":{"45":1},"2":{"80":1,"97":1}}],["helper",{"0":{"52":1,"54":1,"57":1},"2":{"44":1,"45":1,"50":1}}],["helps",{"2":{"30":1}}],["held",{"2":{"1":1,"6":1,"133":1}}],["here",{"2":{"6":2,"9":1,"13":1,"14":1,"20":1,"40":1,"54":1,"80":1,"121":2,"124":1,"133":5,"146":1,"164":2,"168":2,"169":3}}],["hours",{"2":{"170":1}}],["hood",{"2":{"167":1}}],["hook",{"2":{"6":1,"150":1}}],["home",{"2":{"164":1}}],["horizontal",{"2":{"47":1,"54":1,"121":1,"150":1}}],["hormann",{"0":{"52":1,"54":1,"57":1},"2":{"6":2,"40":2,"45":3,"50":2,"51":1,"53":1,"56":1}}],["how",{"0":{"26":1},"2":{"6":2,"26":2,"36":1,"40":1,"45":1,"54":1,"66":1,"121":2,"128":1,"133":1,"141":1,"150":1,"164":1,"167":1,"168":2,"169":2,"170":1,"171":1}}],["however",{"2":{"3":1,"6":2,"33":1,"40":1,"44":1,"45":1,"54":1,"59":1,"62":1,"66":1,"79":1,"138":1}}],["hole",{"2":{"33":1,"37":3,"39":2,"40":9,"44":4,"45":58,"47":3,"51":6,"53":2,"57":15,"60":3,"72":1,"73":1,"74":1,"91":33,"121":5,"125":2,"163":1}}],["holes=",{"2":{"45":1}}],["holes",{"2":{"4":3,"5":1,"6":4,"9":2,"33":2,"36":1,"40":2,"44":1,"45":19,"50":4,"51":2,"53":2,"56":6,"57":29,"60":3,"66":3,"88":1,"91":11,"112":1,"121":17,"125":2,"163":4}}],["holding",{"2":{"6":1,"121":1,"133":2}}],["holds",{"2":{"6":1,"45":1,"148":1,"158":2}}],["hold",{"2":{"6":1,"121":1,"150":1,"159":1,"167":1}}],["halign",{"2":{"150":1}}],["half",{"2":{"46":2}}],["handling",{"0":{"143":1},"2":{"126":1}}],["handler",{"2":{"41":1,"143":1}}],["handle",{"2":{"34":1,"120":1,"131":2,"133":1,"164":1}}],["handled",{"2":{"18":1}}],["hail",{"2":{"125":1}}],["hao",{"2":{"91":1}}],["had",{"2":{"51":1,"53":1,"66":1,"145":1,"159":1}}],["happens",{"2":{"45":1}}],["happen",{"2":{"24":1}}],["have",{"2":{"3":3,"4":9,"6":17,"19":1,"23":1,"33":2,"37":3,"40":6,"41":1,"45":4,"54":1,"59":1,"60":2,"66":10,"91":5,"96":1,"97":3,"99":1,"100":1,"121":1,"122":1,"126":2,"128":2,"132":1,"133":4,"150":1,"152":1,"159":1,"160":1,"163":1,"164":1,"168":1,"169":1,"170":3}}],["haskey",{"2":{"160":1}}],["hash",{"2":{"121":1}}],["hasn",{"2":{"121":1}}],["hassle",{"2":{"1":1,"6":1,"155":1}}],["has",{"2":{"1":4,"6":4,"32":1,"36":2,"40":2,"45":2,"52":2,"54":1,"57":1,"59":1,"60":1,"66":11,"102":1,"120":1,"123":1,"133":4,"145":2,"154":1,"164":1}}],["bx",{"2":{"120":2}}],["b2y",{"2":{"54":4}}],["b2x",{"2":{"54":4}}],["b2",{"2":{"54":47,"60":3,"97":6}}],["b``",{"2":{"52":1}}],["b`",{"2":{"52":3,"54":4,"57":4}}],["bigger",{"2":{"45":1}}],["bit",{"2":{"25":1,"27":1,"154":8,"163":2}}],["b1y",{"2":{"54":7}}],["b1x",{"2":{"54":7}}],["b1",{"2":{"45":8,"54":63,"97":6}}],["building",{"2":{"163":1}}],["build",{"2":{"45":13,"50":1,"51":1,"53":1,"56":1,"128":3,"129":1,"145":2,"153":1,"154":1}}],["built",{"2":{"17":1,"20":1}}],["buffers",{"2":{"121":1}}],["buffered",{"2":{"41":2}}],["buffering",{"2":{"40":1,"41":1}}],["buffer",{"0":{"41":1},"2":{"34":2,"41":5,"44":2,"45":1,"122":1}}],["but",{"2":{"1":2,"3":5,"4":3,"6":15,"18":1,"22":1,"25":1,"27":1,"33":1,"36":1,"37":1,"47":1,"54":2,"57":2,"66":4,"68":2,"91":1,"96":1,"97":5,"99":1,"100":1,"103":2,"104":1,"109":1,"120":1,"121":1,"122":1,"128":1,"131":1,"133":16,"141":1,"142":1,"147":1,"150":1,"158":1,"160":2,"164":2,"165":2,"167":1,"168":1,"169":1,"170":2}}],["b>",{"2":{"6":4}}],["bloat",{"2":{"165":1}}],["block",{"2":{"163":1}}],["blob",{"2":{"6":2,"150":1}}],["blue",{"2":{"14":1,"49":1,"62":2,"65":2,"82":2,"96":2,"109":2,"169":2}}],["black",{"2":{"6":2,"49":1,"164":1}}],["breaks",{"2":{"140":1}}],["break",{"2":{"45":3,"47":1,"52":2,"66":4,"91":11,"97":1,"121":6,"140":2}}],["brevity",{"2":{"40":1}}],["br>",{"2":{"6":2}}],["broadcasting",{"2":{"6":1,"40":1}}],["broken",{"2":{"3":1,"6":1,"80":1}}],["balancing",{"2":{"133":2}}],["barrier",{"2":{"133":1}}],["barycentric",{"0":{"5":1,"38":1,"40":1},"1":{"39":1,"40":1},"2":{"0":6,"5":10,"6":17,"9":1,"34":1,"38":9,"39":4,"40":52}}],["basicsgeoms",{"2":{"133":1}}],["basic",{"2":{"121":1}}],["base",{"2":{"34":4,"40":15,"41":1,"45":2,"121":6,"133":5,"143":1,"146":2,"147":1,"158":1,"160":3}}],["based",{"2":{"4":2,"6":3,"19":1,"33":2,"37":2,"39":2,"44":1,"47":1,"60":2,"66":1,"69":1,"83":1,"91":2,"97":1,"100":1,"110":1,"158":1,"167":1,"168":1,"169":1}}],["backs",{"2":{"50":4}}],["backwards",{"2":{"45":1,"52":1,"54":1,"57":1}}],["backing",{"2":{"45":1}}],["backend",{"2":{"41":2,"160":1}}],["back",{"2":{"6":1,"18":1,"22":1,"23":1,"50":4,"160":1}}],["b",{"2":{"3":2,"4":7,"6":13,"45":206,"47":9,"51":26,"52":18,"53":26,"54":77,"55":3,"56":27,"57":39,"66":29,"91":2,"97":22,"166":1}}],["box",{"2":{"46":2,"47":3,"169":1}}],["bounce",{"2":{"45":8,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1}}],["bouncings",{"2":{"45":1}}],["bouncing",{"2":{"45":13,"52":3,"54":4,"57":4}}],["bound",{"2":{"55":1}}],["bounding",{"2":{"45":1,"46":2,"47":3}}],["boundscheck",{"2":{"40":14}}],["bounds",{"2":{"6":1,"121":4}}],["boundaries",{"2":{"3":2,"6":2,"78":2,"82":1,"83":1,"91":2,"93":1,"94":1,"121":1}}],["boundary",{"2":{"3":7,"6":7,"59":1,"62":1,"63":1,"68":1,"69":3,"72":4,"79":2,"80":9,"83":2,"85":1,"86":6,"87":3,"91":18,"99":2,"100":4,"102":3,"103":5,"104":3,"105":3,"109":1,"110":3}}],["bold",{"2":{"41":1,"143":1,"146":1}}],["border",{"2":{"6":8}}],["both",{"2":{"3":5,"6":6,"45":2,"54":4,"56":1,"57":1,"59":1,"63":1,"66":3,"80":4,"83":1,"91":2,"97":1,"104":1,"110":1,"145":1,"147":1}}],["booltype",{"2":{"133":3,"147":1,"159":3}}],["booleans",{"2":{"45":1,"91":2}}],["boolean",{"2":{"24":2,"45":1,"52":1,"54":1,"57":1,"133":1,"159":1,"168":1}}],["boolsastypes",{"0":{"24":1,"159":1},"2":{"147":2,"159":6}}],["bools",{"2":{"10":1}}],["bool",{"2":{"3":17,"4":14,"6":40,"45":3,"63":1,"66":17,"69":1,"79":2,"80":13,"83":1,"91":2,"94":1,"97":10,"100":2,"110":1,"120":7,"121":6,"147":2,"159":2,"161":5}}],["bypred",{"2":{"171":1}}],["by",{"0":{"73":1,"74":1,"114":1},"2":{"1":3,"3":2,"4":8,"6":30,"7":1,"17":1,"18":2,"19":1,"22":1,"24":1,"25":1,"26":1,"27":1,"32":1,"33":6,"36":1,"37":1,"40":4,"41":1,"43":5,"44":4,"45":14,"46":1,"47":6,"49":1,"50":6,"51":1,"53":1,"54":5,"56":4,"57":3,"60":5,"63":1,"66":8,"68":1,"69":1,"73":2,"74":2,"75":1,"76":2,"78":1,"90":2,"91":10,"120":2,"121":4,"128":2,"133":7,"136":2,"138":1,"140":3,"141":1,"142":2,"143":1,"144":1,"146":3,"147":1,"148":1,"150":1,"151":1,"152":3,"153":1,"155":1,"163":1,"164":1,"165":1,"167":1,"168":2,"169":1,"170":2,"171":1}}],["berlin",{"2":{"170":1}}],["bearing",{"2":{"120":4}}],["beauty",{"2":{"9":1}}],["better",{"2":{"80":1,"133":2,"150":1}}],["between",{"2":{"4":4,"6":18,"23":1,"33":2,"40":13,"45":1,"47":18,"51":1,"52":4,"53":1,"54":11,"56":2,"57":4,"60":8,"66":1,"91":4,"97":4,"121":1,"146":3,"147":1,"151":2,"152":2,"153":1,"164":1,"168":2,"169":1}}],["been",{"2":{"52":1,"121":1,"126":2,"159":1}}],["because",{"2":{"45":1,"126":1,"157":1}}],["become",{"2":{"22":1}}],["being",{"2":{"33":1,"54":1,"91":1,"97":1,"138":1}}],["behind",{"2":{"25":1,"26":1,"27":1,"39":1,"126":1}}],["behaviour",{"2":{"6":1,"18":1,"23":1,"150":1}}],["best",{"2":{"19":1,"133":2,"150":1}}],["beware",{"2":{"18":1}}],["benchmarking",{"2":{"146":1,"150":1}}],["benchmarkgroup",{"2":{"146":2,"150":3}}],["benchmark",{"0":{"146":1,"150":1},"2":{"146":1,"150":1}}],["benchmarktools",{"2":{"13":1,"146":1,"150":1}}],["benchmarks",{"2":{"9":2}}],["beginning",{"2":{"47":1,"163":1}}],["begin+1",{"2":{"40":5}}],["begin",{"2":{"9":1,"40":7,"133":2,"151":1,"167":1}}],["before",{"2":{"6":4,"40":1,"51":1,"53":1,"54":1,"56":1,"150":1,"164":1}}],["below",{"2":{"6":2,"17":1,"41":1,"135":1,"152":1,"153":1,"154":1,"167":1}}],["be",{"2":{"1":7,"3":3,"4":11,"5":4,"6":65,"7":1,"9":1,"13":2,"20":3,"23":2,"24":1,"25":3,"26":1,"27":3,"33":8,"37":7,"38":2,"39":1,"40":10,"41":2,"43":1,"44":3,"45":14,"46":1,"47":2,"50":1,"51":7,"52":4,"53":7,"54":12,"56":6,"57":5,"59":2,"60":4,"66":15,"69":6,"78":2,"79":1,"83":6,"91":21,"97":2,"100":6,"110":6,"112":1,"113":1,"114":1,"115":1,"120":2,"121":1,"124":1,"125":1,"128":2,"131":2,"132":2,"133":12,"134":1,"135":3,"136":4,"137":1,"138":2,"140":2,"142":3,"143":1,"144":1,"146":8,"147":2,"150":10,"152":1,"154":3,"155":1,"159":1,"160":2,"163":2,"165":1,"168":4}}],["xticklabelsvisible",{"2":{"164":1}}],["xticklabelrotation",{"2":{"13":2}}],["xoffset",{"2":{"163":4,"165":1}}],["x=x",{"2":{"161":1}}],["x`",{"2":{"133":1}}],["xvec",{"2":{"121":4}}],["xbounds",{"2":{"121":4}}],["xhalf",{"2":{"121":3}}],["xlast",{"2":{"60":3}}],["xfirst",{"2":{"60":5}}],["x0",{"2":{"60":5}}],["xn",{"2":{"47":4}}],["xind+1",{"2":{"121":1}}],["xind",{"2":{"121":2}}],["xinterior",{"2":{"44":2}}],["xi−xi−1",{"2":{"6":1}}],["xcentroid",{"2":{"44":13}}],["xrange",{"2":{"39":3,"59":2}}],["xautolimits",{"2":{"39":2}}],["xp2",{"2":{"33":5}}],["x2",{"2":{"6":3,"40":4,"44":2,"47":18,"60":8,"80":10,"91":5,"97":4,"121":5,"147":6,"161":2}}],["x26",{"2":{"6":4,"33":2,"37":6,"40":1,"41":4,"45":58,"47":36,"51":4,"52":4,"54":24,"57":2,"60":3,"66":14,"75":2,"76":2,"80":48,"89":2,"90":2,"91":170,"97":22,"102":2,"106":2,"107":2,"116":2,"117":2,"120":4,"121":12,"135":2,"140":6,"143":2,"146":2,"152":10,"153":2,"161":4,"168":1}}],["x1",{"2":{"6":4,"40":3,"44":2,"47":22,"60":8,"80":11,"91":6,"97":5,"121":5,"147":7,"161":2}}],["xs",{"2":{"6":3,"47":4,"121":30,"161":4}}],["xmax",{"2":{"6":1,"46":2,"47":48}}],["xmin",{"2":{"6":1,"46":2,"47":49}}],["x3c",{"2":{"5":1,"6":36,"33":4,"34":1,"37":2,"40":66,"45":17,"47":11,"50":3,"51":1,"53":1,"54":6,"56":1,"59":1,"60":13,"66":2,"80":33,"91":13,"97":10,"120":1,"121":4,"125":2,"128":2,"133":19,"136":3,"140":5,"146":2,"151":2,"152":6,"153":3,"154":9,"158":4,"159":2,"171":1}}],["xy`",{"2":{"142":1}}],["xy",{"2":{"1":4,"40":1,"142":3}}],["x",{"2":{"1":4,"4":1,"6":6,"7":1,"9":5,"11":6,"13":11,"14":10,"15":4,"33":9,"37":2,"39":8,"43":1,"44":10,"45":21,"46":1,"47":8,"50":6,"52":9,"54":18,"57":9,"59":2,"60":7,"66":3,"80":21,"91":16,"97":7,"120":11,"121":2,"126":2,"133":17,"135":2,"137":2,"141":4,"142":1,"147":2,"150":2,"152":2,"154":1,"155":2,"156":2,"159":4,"161":33,"163":6,"164":2,"165":2,"168":1,"170":2}}],["=>",{"2":{"133":2}}],["=float64",{"2":{"44":3,"53":1,"56":1}}],["=false",{"2":{"33":1}}],["===",{"2":{"80":8,"120":4}}],["==",{"2":{"9":1,"19":1,"33":4,"37":2,"40":9,"41":2,"44":1,"45":34,"47":30,"52":1,"54":20,"56":2,"57":1,"59":1,"66":16,"91":44,"97":2,"120":3,"121":18,"125":1,"133":1,"135":1,"140":1,"143":1,"146":2,"150":1,"154":3}}],["=",{"2":{"1":5,"3":17,"4":7,"5":2,"6":62,"11":1,"13":19,"14":33,"15":18,"32":4,"33":56,"34":4,"36":6,"37":25,"39":35,"40":110,"41":3,"43":6,"44":36,"45":323,"46":6,"47":96,"49":7,"50":29,"51":21,"52":30,"53":18,"54":143,"56":21,"57":77,"59":15,"60":52,"62":7,"63":3,"65":7,"66":40,"68":4,"69":23,"70":3,"71":7,"72":14,"73":14,"74":4,"75":2,"76":2,"78":5,"79":3,"80":57,"82":7,"83":18,"84":3,"85":11,"86":17,"87":9,"88":3,"89":2,"90":2,"91":189,"93":3,"94":3,"96":7,"97":40,"99":3,"100":22,"101":3,"102":9,"103":14,"104":10,"105":6,"106":2,"107":2,"109":7,"110":22,"111":3,"112":11,"113":14,"114":14,"115":4,"116":2,"117":2,"120":32,"121":106,"124":2,"125":4,"126":1,"130":4,"133":90,"135":9,"137":1,"139":3,"140":30,"143":2,"145":16,"146":21,"147":18,"148":2,"149":5,"150":60,"151":11,"152":49,"153":7,"154":43,"155":2,"156":1,"158":6,"159":2,"160":3,"161":42,"163":45,"164":19,"165":13,"166":3,"167":4,"169":12,"170":6,"171":2}}],["utm",{"2":{"164":1}}],["utility",{"0":{"161":1},"2":{"40":1,"133":2}}],["utils",{"0":{"154":1},"2":{"34":1}}],["u2",{"2":{"91":4}}],["u1",{"2":{"91":4}}],["update",{"2":{"45":6,"121":10}}],["updated",{"2":{"45":6,"133":3}}],["updates",{"2":{"40":1}}],["up",{"2":{"45":2,"54":1,"91":1,"104":1,"131":1,"139":1,"152":2,"163":2}}],["upper",{"2":{"6":1,"121":1,"169":1}}],["uv",{"2":{"40":1}}],["u>",{"2":{"6":2}}],["u>geometryops",{"2":{"6":2}}],["usage",{"2":{"170":1}}],["usa",{"2":{"150":15,"170":3}}],["us",{"2":{"37":1,"164":1,"170":1}}],["usually",{"2":{"6":1,"26":2,"128":1,"133":1,"167":1}}],["usual",{"2":{"6":1,"125":1,"136":1}}],["usecases",{"2":{"25":1,"27":1}}],["uses",{"2":{"6":1,"91":1,"142":1,"146":1,"150":1,"167":1}}],["users",{"2":{"34":1,"126":1,"138":1}}],["user",{"2":{"6":12,"23":1,"44":1,"51":3,"53":3,"56":3,"151":1,"152":1,"153":1,"168":1}}],["useful",{"2":{"6":10,"40":1,"121":1,"144":1,"147":1,"150":2,"160":1}}],["used",{"2":{"1":1,"5":1,"6":8,"33":1,"37":1,"38":1,"40":1,"44":2,"45":7,"47":1,"50":1,"54":1,"59":1,"60":1,"66":1,"97":1,"121":2,"123":1,"128":1,"133":3,"147":1,"150":1,"152":2,"157":2,"158":1,"164":1,"167":1,"168":2,"169":1}}],["use",{"2":{"1":2,"4":1,"5":1,"6":9,"11":1,"20":1,"23":1,"26":1,"40":1,"45":1,"57":1,"80":2,"97":1,"121":1,"122":1,"125":1,"130":1,"133":7,"141":1,"145":1,"147":1,"150":1,"152":2,"160":3,"163":1,"167":1,"168":2,"171":2}}],["using",{"0":{"164":1},"2":{"1":4,"4":1,"5":3,"6":12,"11":4,"13":4,"14":1,"15":1,"32":1,"33":1,"34":7,"36":2,"37":2,"39":4,"40":7,"41":3,"43":2,"44":1,"45":5,"46":2,"47":1,"49":2,"50":1,"52":3,"54":4,"55":1,"57":3,"59":2,"60":2,"62":2,"63":1,"65":2,"66":1,"68":2,"69":1,"76":1,"78":2,"79":1,"80":1,"82":2,"83":1,"90":1,"91":1,"93":2,"94":1,"96":2,"97":1,"99":2,"100":1,"107":1,"109":2,"110":1,"117":1,"120":1,"121":5,"122":1,"125":1,"126":2,"131":1,"133":4,"136":1,"137":2,"140":1,"141":1,"142":1,"143":3,"145":1,"146":5,"147":1,"150":2,"152":1,"154":1,"155":4,"156":2,"160":2,"161":1,"162":4,"163":1,"165":1,"166":2,"168":1,"169":4,"170":2}}],["until",{"2":{"121":3,"131":1,"152":1,"160":1}}],["unprocessed",{"2":{"45":1}}],["unknown",{"2":{"45":4,"47":15}}],["unknown=3",{"2":{"45":1}}],["unmatched",{"2":{"45":9,"47":26}}],["understand",{"2":{"157":1}}],["under",{"2":{"37":2,"167":1}}],["undergrad",{"2":{"9":1}}],["undef",{"2":{"33":2,"45":1,"151":1,"152":1,"154":2,"161":2}}],["unless",{"2":{"22":1,"45":1,"52":2,"54":2,"57":2}}],["unlike",{"2":{"18":1,"157":1}}],["unstable",{"2":{"13":1,"133":1,"159":1}}],["unneeded",{"2":{"6":3,"45":1,"51":2,"53":2,"56":2}}],["unnecessary",{"2":{"6":3,"121":1,"151":1,"152":1,"153":1}}],["universal",{"2":{"164":1}}],["united",{"2":{"150":1}}],["unify",{"2":{"25":1,"27":1}}],["unique",{"2":{"6":2,"54":3,"136":2,"140":2}}],["unioning",{"2":{"57":1}}],["unionintersectingpolygons",{"2":{"0":1,"6":8,"51":1,"52":2,"53":1,"54":2,"56":1,"57":2,"136":2,"138":2,"139":1,"140":4}}],["unions",{"0":{"57":1},"2":{"18":1,"158":1}}],["union",{"0":{"56":1},"2":{"0":1,"1":2,"3":2,"4":4,"6":22,"11":3,"23":2,"33":2,"34":1,"37":1,"40":1,"44":4,"45":7,"47":1,"53":2,"56":18,"57":30,"60":1,"66":8,"71":2,"72":4,"73":1,"75":2,"76":1,"85":2,"86":6,"89":2,"90":1,"97":4,"102":2,"103":4,"104":1,"106":2,"107":1,"112":2,"113":4,"114":1,"116":2,"117":1,"120":1,"121":5,"126":1,"131":3,"133":6,"136":1,"138":1,"140":9,"147":4,"150":2,"151":3,"152":3,"153":3,"158":4,"161":1}}],["unchanged",{"2":{"1":1,"6":2,"133":1,"150":1}}],["unwrap",{"2":{"0":1,"6":3,"128":1,"133":16}}],["nselected",{"2":{"154":3}}],["nmax",{"2":{"154":2}}],["nice",{"2":{"152":1}}],["nvkelso",{"2":{"150":1}}],["null",{"2":{"146":1}}],["numeric",{"2":{"11":1}}],["numbers",{"2":{"6":1,"7":1,"38":2,"40":1,"146":1}}],["number=6",{"2":{"6":1,"149":1,"150":1}}],["number",{"2":{"6":11,"40":1,"45":2,"50":1,"59":1,"66":2,"91":2,"144":1,"145":1,"147":1,"150":2,"151":4,"152":7,"153":4,"154":12}}],["nfeature",{"2":{"133":2}}],["n+1",{"2":{"124":1}}],["nkeys",{"2":{"121":8}}],["nc",{"2":{"91":13}}],["ncoord",{"2":{"66":2}}],["nl",{"2":{"91":11}}],["nhole",{"2":{"45":2,"51":2,"53":2,"56":2,"57":1,"66":2}}],["nbpts",{"2":{"45":2}}],["nbsp",{"2":{"1":4,"3":9,"4":8,"5":3,"6":87,"128":3,"135":1,"136":4}}],["ngeom",{"2":{"44":1,"133":2,"161":1}}],["nt",{"2":{"160":2}}],["ntasks",{"2":{"133":6}}],["nthreads",{"2":{"133":3}}],["nthe",{"2":{"41":1,"143":1,"146":1}}],["ntuple",{"2":{"40":3,"147":1}}],["n2",{"2":{"40":8,"66":10}}],["n1",{"2":{"40":8,"66":9}}],["np2",{"2":{"80":4}}],["npolygon",{"2":{"52":1,"66":3,"140":2}}],["npoints",{"2":{"33":6,"45":5,"91":3,"146":6,"152":7}}],["npoint",{"2":{"6":1,"33":2,"36":1,"37":1,"47":2,"60":1,"66":6,"80":6,"91":6,"102":1,"120":2,"125":1,"146":3,"147":1,"150":14,"154":1,"161":13}}],["npts",{"2":{"45":6,"152":3}}],["np",{"2":{"37":2,"60":5}}],["n",{"2":{"6":1,"9":1,"38":2,"40":36,"41":2,"45":51,"50":10,"56":4,"57":4,"91":11,"102":2,"120":6,"121":5,"124":1,"140":25,"143":2,"146":2,"147":3,"150":2,"154":7,"161":32}}],["naive",{"2":{"55":1}}],["napts",{"2":{"45":3}}],["navigate",{"0":{"26":1}}],["natearth2",{"2":{"164":1}}],["natural",{"2":{"150":2,"164":2,"168":1}}],["naturalearth",{"2":{"11":2,"164":1}}],["nature",{"2":{"121":1}}],["native",{"2":{"6":1,"122":1,"160":4,"167":1}}],["nan",{"2":{"9":1}}],["named",{"2":{"133":1}}],["namedtuple",{"2":{"22":2,"133":2,"160":2}}],["name",{"2":{"6":1,"34":2,"150":1,"160":1,"166":1,"167":2,"170":1}}],["names",{"2":{"6":1,"34":3,"133":6,"160":1}}],["nodestatus",{"2":{"121":6}}],["nodes",{"2":{"45":1,"121":4}}],["node",{"2":{"45":26,"121":17}}],["north",{"2":{"47":12}}],["nor",{"2":{"41":1,"143":1,"146":1}}],["normalized",{"2":{"40":1}}],["normalize",{"2":{"40":1}}],["norm",{"2":{"6":1,"40":22}}],["now",{"2":{"6":1,"13":1,"25":1,"27":1,"36":1,"39":2,"40":4,"41":1,"45":1,"50":1,"57":1,"60":1,"120":1,"121":2,"139":1,"144":1,"145":3,"146":1,"150":1,"163":5,"164":6,"165":2,"166":1,"167":3,"169":2}}],["no",{"2":{"6":6,"33":1,"40":2,"45":4,"51":1,"52":1,"53":1,"54":14,"56":1,"66":2,"69":3,"83":3,"91":2,"100":2,"102":1,"104":1,"105":2,"110":2,"112":1,"113":3,"114":3,"115":1,"121":2,"122":1,"126":1,"133":3,"144":1,"146":2,"147":1,"150":1,"160":1,"167":1}}],["nonzero",{"2":{"147":1}}],["none",{"2":{"6":4,"45":1,"50":1,"51":1,"53":1,"56":1,"57":1,"80":4,"82":1}}],["nondimensional",{"2":{"6":1,"146":1}}],["nonintersecting",{"2":{"6":1,"23":1,"136":1,"140":1}}],["non",{"2":{"3":2,"6":2,"22":1,"38":2,"45":15,"51":2,"52":1,"53":1,"54":4,"56":1,"57":2,"59":1,"97":2,"104":1,"131":1,"159":1}}],["note",{"2":{"4":4,"6":10,"19":1,"29":1,"33":1,"37":2,"40":1,"43":2,"44":2,"45":3,"47":1,"50":2,"52":3,"54":5,"57":3,"60":1,"66":5,"91":1,"96":1,"97":1,"142":1,"147":1,"151":1,"152":2,"153":1,"159":1,"164":2,"165":1}}],["not",{"0":{"122":1},"2":{"1":2,"3":8,"4":1,"6":18,"18":1,"19":1,"22":1,"24":1,"33":4,"34":1,"37":1,"40":4,"41":1,"43":1,"45":18,"50":1,"53":1,"54":7,"57":3,"62":2,"63":1,"65":2,"66":4,"68":2,"69":2,"78":1,"79":2,"83":3,"85":5,"86":3,"87":2,"88":2,"91":5,"96":1,"97":2,"100":1,"109":2,"110":2,"112":1,"120":4,"121":2,"122":1,"124":2,"131":1,"132":1,"133":10,"135":2,"139":3,"141":1,"142":1,"143":1,"144":1,"146":2,"147":1,"157":1,"158":1,"159":1,"160":2,"164":1,"165":1,"168":1}}],["nothing`",{"2":{"52":2,"54":2,"57":2}}],["nothing",{"2":{"1":34,"4":1,"6":42,"15":3,"45":4,"50":1,"52":2,"53":1,"54":2,"57":2,"66":1,"91":1,"120":9,"121":3,"124":24,"133":8,"135":1,"139":60,"143":1,"147":1,"150":2,"151":6,"152":6,"153":6,"154":1,"155":32,"161":7,"163":252,"164":16,"165":20}}],["ne",{"2":{"150":1,"164":2}}],["net",{"2":{"135":2}}],["ness",{"2":{"133":1}}],["nesting",{"2":{"131":2}}],["nestedloopfast",{"2":{"171":1}}],["nested",{"2":{"1":2,"4":1,"6":5,"18":1,"33":1,"131":2,"133":4,"150":1,"156":1}}],["never",{"2":{"131":1,"151":1}}],["neumann",{"2":{"121":1}}],["neither",{"2":{"57":1}}],["neighborhood",{"2":{"121":2}}],["neighbor",{"2":{"45":27}}],["neighboring",{"2":{"6":6,"45":1,"150":1,"151":1,"152":1,"153":2}}],["nearly",{"2":{"167":1}}],["nearest",{"2":{"45":1,"54":2}}],["neatly",{"2":{"17":1}}],["nedge",{"2":{"45":2,"161":13}}],["nextnode",{"2":{"121":27}}],["nextnodes",{"2":{"121":6}}],["next",{"2":{"44":1,"45":81,"47":3,"50":4,"91":14,"121":3,"140":13,"152":5}}],["necessarily",{"2":{"6":1,"120":1,"141":1}}],["necessary",{"2":{"6":1,"131":1,"150":1}}],["newfeature",{"2":{"133":2}}],["newnodes",{"2":{"121":2}}],["new",{"2":{"6":1,"41":1,"45":58,"47":9,"51":3,"52":1,"57":16,"91":2,"121":4,"132":1,"133":19,"135":2,"136":1,"138":1,"140":19,"147":8,"151":1,"152":2,"153":1,"165":1,"166":1,"170":1}}],["negative",{"2":{"4":3,"6":3,"36":2,"37":1,"38":2,"59":2,"60":3}}],["needs",{"2":{"44":1}}],["needing",{"2":{"4":1,"6":1,"17":1,"137":1}}],["need",{"2":{"1":1,"3":1,"4":2,"5":1,"6":5,"40":2,"43":1,"45":2,"52":1,"66":4,"78":1,"79":1,"91":1,"121":2,"126":1,"137":1,"154":1,"155":1,"164":1,"165":2,"171":2}}],["needed",{"2":{"1":2,"6":4,"33":1,"40":1,"45":4,"47":1,"51":1,"53":1,"56":1,"60":2,"91":5,"121":1,"133":2,"135":1,"142":3,"165":1}}],["gdal",{"2":{"167":1}}],["gml",{"2":{"167":1}}],["gpkg",{"2":{"167":3}}],["gadm",{"2":{"170":4}}],["ga",{"2":{"164":3}}],["gaps",{"2":{"121":1}}],["global",{"2":{"164":1}}],["gft",{"2":{"162":1,"164":2}}],["gc",{"2":{"135":6}}],["gb",{"2":{"34":1,"133":10}}],["g",{"2":{"33":3,"37":3,"41":1,"44":3,"47":3,"60":6,"131":1,"133":6,"150":2,"161":2,"167":1}}],["guarantee",{"2":{"19":1,"30":1}}],["guaranteed",{"2":{"1":1,"6":1,"33":1,"133":1}}],["grand",{"2":{"170":1}}],["grained",{"2":{"145":1}}],["graphics",{"2":{"6":1,"40":1}}],["great",{"2":{"163":1,"165":1,"167":1}}],["greater",{"2":{"6":1,"120":1,"147":1}}],["greiner",{"0":{"52":1,"54":1,"57":1},"2":{"45":3,"50":2,"51":1,"53":1,"56":1}}],["green",{"2":{"14":1,"164":1}}],["grouped",{"2":{"163":1}}],["groups",{"2":{"6":1,"121":1}}],["grouping",{"2":{"1":1,"6":1,"133":2}}],["grid",{"2":{"6":1,"39":1,"47":4}}],["g2",{"2":{"3":5,"6":5,"63":4,"69":12,"70":6,"71":9,"72":6,"73":6,"74":3,"75":4,"76":2,"79":3,"80":21,"83":10,"84":6,"85":10,"86":8,"87":4,"88":2,"89":4,"90":2,"100":10,"101":6,"102":10,"103":6,"104":5,"105":4,"106":4,"107":2,"110":10,"111":6,"112":9,"113":6,"114":6,"115":3,"116":4,"117":2}}],["g1",{"2":{"3":5,"4":1,"6":6,"63":4,"69":12,"70":6,"71":9,"72":6,"73":6,"74":3,"75":2,"76":4,"79":3,"80":21,"83":9,"84":6,"85":10,"86":8,"87":4,"88":2,"89":2,"90":4,"100":10,"101":6,"102":9,"103":6,"104":5,"105":4,"106":2,"107":4,"110":10,"111":6,"112":9,"113":6,"114":6,"115":3,"116":2,"117":4}}],["generic",{"2":{"22":1}}],["generation",{"2":{"150":2}}],["generated",{"2":{"33":1,"34":1,"37":1,"40":1,"41":1,"44":1,"45":1,"47":1,"50":1,"52":1,"54":1,"55":1,"57":1,"60":1,"63":1,"66":1,"76":1,"79":1,"80":1,"90":1,"91":1,"94":1,"97":1,"107":1,"117":1,"120":1,"121":1,"122":1,"125":1,"133":1,"136":1,"137":1,"140":1,"141":1,"143":1,"147":1,"150":1,"154":1,"155":1,"156":1,"160":1,"161":1,"169":1}}],["generate",{"2":{"7":1,"13":2,"150":1,"169":2}}],["generalization",{"2":{"38":1}}],["generalized",{"2":{"6":1,"38":3,"40":1}}],["generalise",{"2":{"6":4,"150":1}}],["generally",{"2":{"6":2,"160":3}}],["general",{"0":{"2":1,"4":1},"1":{"3":1,"4":1},"2":{"18":1,"20":1,"25":1,"27":1,"126":1,"143":1}}],["getfeature",{"2":{"133":5,"161":5}}],["getcolumn",{"2":{"133":4}}],["getgeom",{"2":{"75":1,"76":1,"89":1,"90":1,"97":2,"106":1,"107":1,"116":1,"117":1,"133":6,"150":3,"161":6}}],["getring",{"2":{"45":1}}],["getindex",{"2":{"40":2}}],["gethole",{"2":{"33":1,"37":1,"44":1,"45":4,"47":1,"50":1,"51":2,"53":2,"57":6,"60":1,"66":2,"91":5,"125":1,"163":1}}],["getexterior",{"2":{"33":1,"37":1,"40":1,"44":1,"45":3,"47":1,"50":1,"51":2,"53":2,"56":3,"57":6,"60":1,"66":2,"91":5,"120":1,"121":1,"125":1,"163":1}}],["getpolygon",{"2":{"52":3,"54":2,"57":2,"66":3}}],["getpoint",{"2":{"32":1,"33":5,"36":2,"37":1,"40":1,"43":1,"44":6,"45":3,"46":2,"47":3,"49":3,"59":1,"60":6,"62":4,"65":4,"66":13,"68":1,"78":1,"80":7,"82":4,"91":28,"93":2,"96":4,"97":2,"99":2,"102":2,"109":4,"120":5,"125":3,"145":4,"147":2,"154":1,"161":3,"163":2}}],["getproperty",{"2":{"13":2,"14":1}}],["get",{"2":{"6":1,"13":1,"36":1,"41":1,"45":9,"51":1,"52":1,"53":1,"54":2,"56":2,"121":4,"133":4,"143":1,"146":3,"150":1,"151":1,"153":1,"154":2,"160":5,"161":1,"163":2,"170":2}}],["geoparquet",{"2":{"167":4}}],["geopoly1",{"2":{"165":1,"166":1}}],["geopoly2",{"2":{"165":1,"166":1}}],["geoaxis",{"2":{"164":4}}],["geographic",{"2":{"164":1,"167":1}}],["geographiclib",{"2":{"6":1,"146":1}}],["geointeface",{"2":{"131":1}}],["geointerace",{"2":{"22":1}}],["geointerfacemakie",{"2":{"149":1,"169":1,"170":1}}],["geointerface",{"0":{"30":1},"2":{"1":20,"3":9,"4":2,"6":41,"11":1,"13":1,"14":1,"15":1,"22":3,"25":1,"27":1,"30":1,"32":1,"33":1,"34":7,"36":1,"37":1,"40":23,"43":1,"44":1,"45":1,"46":1,"47":1,"49":1,"50":1,"51":1,"53":1,"54":1,"56":1,"59":1,"60":11,"62":1,"63":2,"65":1,"66":2,"68":1,"69":2,"78":1,"79":2,"80":1,"82":1,"83":3,"93":1,"94":2,"96":1,"97":2,"99":1,"100":2,"109":1,"110":2,"120":5,"121":1,"124":9,"128":3,"131":3,"133":6,"135":1,"136":1,"137":1,"139":23,"142":2,"145":1,"146":1,"149":1,"150":2,"155":13,"156":1,"161":1,"162":1,"163":122,"164":5,"165":9,"169":1,"170":1}}],["geo",{"2":{"121":1,"146":4,"164":2}}],["geotable",{"2":{"29":1}}],["geojson",{"2":{"11":1,"150":5,"162":1,"164":4,"167":3}}],["geodataframes",{"2":{"167":3}}],["geod",{"2":{"6":2,"146":3}}],["geodesic`",{"2":{"146":2}}],["geodesic",{"2":{"6":5,"34":1,"145":6,"146":8,"147":1}}],["geodesicsegments",{"2":{"0":1,"6":2,"144":1,"145":3,"146":6,"147":2}}],["geoformattypes",{"2":{"1":2,"142":2,"162":1,"164":2,"165":8}}],["geomakie",{"0":{"164":1},"2":{"162":2,"164":5}}],["geomfromgeos",{"2":{"146":1}}],["geomtype",{"2":{"133":2}}],["geoms",{"2":{"6":1,"91":1,"128":1,"133":18}}],["geom2",{"2":{"3":8,"4":1,"6":9,"60":6,"66":1,"80":6,"83":1,"94":3,"97":6,"100":1,"110":2}}],["geom1",{"2":{"3":8,"4":1,"6":9,"60":6,"66":1,"80":4,"83":1,"94":3,"97":6,"100":1,"110":2}}],["geometrical",{"2":{"168":1}}],["geometric",{"2":{"25":2,"27":2,"43":1}}],["geometries",{"0":{"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"107":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"163":1,"164":1,"165":1},"2":{"1":6,"3":8,"4":14,"6":61,"18":3,"20":1,"22":3,"25":2,"27":2,"29":4,"32":1,"33":3,"37":4,"44":1,"47":2,"50":1,"51":5,"53":5,"54":4,"56":5,"59":1,"60":4,"63":1,"65":1,"66":7,"68":1,"69":1,"80":2,"83":2,"91":1,"93":1,"94":1,"96":2,"97":3,"99":2,"100":2,"110":2,"112":1,"126":1,"128":4,"130":1,"132":2,"133":13,"137":1,"142":2,"144":3,"145":1,"146":4,"147":1,"148":1,"151":1,"152":1,"153":1,"156":1,"161":1,"162":5,"164":1,"165":2,"166":2,"167":1,"168":5,"169":1,"171":1}}],["geometry=",{"2":{"166":1}}],["geometrybasics",{"2":{"34":3,"39":2,"40":10,"59":1,"69":1,"100":1,"110":1}}],["geometrycolumns",{"2":{"133":3}}],["geometrycollections",{"2":{"168":1}}],["geometrycollection",{"2":{"23":1,"170":1}}],["geometrycollectiontrait",{"2":{"23":1,"75":1,"76":1,"89":1,"90":1,"106":1,"107":1,"116":1,"117":1}}],["geometrycorrections",{"2":{"135":1}}],["geometrycorrection",{"2":{"0":1,"6":11,"125":2,"134":2,"135":13,"136":11,"140":4}}],["geometry",{"0":{"2":1,"53":1,"75":2,"76":2,"89":2,"90":2,"106":2,"107":2,"116":2,"117":2,"134":1,"142":1,"148":1,"162":1,"166":1},"1":{"3":1,"4":1,"135":1,"136":1,"143":1,"149":1,"150":1,"163":1,"164":1,"165":1,"166":1,"167":1},"2":{"1":10,"3":24,"4":12,"6":70,"9":1,"11":2,"18":4,"20":1,"23":3,"29":1,"33":7,"34":1,"37":4,"41":4,"44":3,"46":1,"47":4,"50":4,"59":4,"60":6,"62":5,"63":2,"66":8,"68":4,"69":5,"70":4,"71":1,"75":3,"76":4,"78":4,"79":4,"80":3,"82":2,"83":5,"84":4,"85":2,"86":2,"89":3,"90":4,"91":2,"93":2,"97":3,"99":3,"100":4,"101":4,"102":2,"106":3,"107":4,"109":4,"110":5,"111":4,"116":3,"117":4,"119":1,"124":1,"125":1,"126":3,"128":2,"131":2,"133":43,"134":2,"135":23,"136":6,"137":1,"141":1,"142":6,"144":3,"145":1,"146":5,"147":8,"150":6,"161":6,"163":1,"164":1,"165":4,"166":2,"167":2,"168":1,"169":7,"170":4,"171":2}}],["geometryopsprojext",{"2":{"142":1,"143":1,"146":1,"147":1}}],["geometryopslibgeosext",{"2":{"41":1}}],["geometryops",{"0":{"0":1,"25":1,"34":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":115,"1":6,"3":18,"4":9,"5":3,"6":112,"7":2,"11":1,"13":1,"14":1,"15":1,"17":2,"25":1,"26":4,"27":1,"32":1,"34":1,"36":1,"39":5,"41":1,"43":1,"46":1,"49":1,"50":1,"51":1,"53":1,"54":1,"56":1,"59":1,"62":1,"63":2,"65":1,"66":1,"68":1,"69":2,"78":1,"79":2,"80":2,"82":1,"83":2,"93":1,"94":1,"96":1,"97":1,"99":1,"100":2,"109":1,"110":2,"120":3,"121":2,"124":1,"128":4,"133":1,"135":1,"136":4,"139":1,"143":1,"145":1,"146":2,"149":1,"150":2,"155":1,"157":1,"160":2,"161":1,"162":1,"163":3,"168":1,"169":2,"170":2}}],["geom",{"2":{"1":7,"4":21,"6":48,"18":3,"33":25,"34":12,"37":17,"44":28,"45":16,"47":6,"50":15,"51":8,"52":2,"53":12,"54":10,"56":9,"57":9,"60":28,"66":45,"69":4,"80":1,"83":4,"91":3,"97":1,"100":4,"110":4,"120":3,"121":1,"126":2,"128":3,"133":91,"140":11,"141":4,"147":13,"150":36,"154":3,"155":7,"156":4,"161":13,"170":6}}],["geospatial",{"0":{"165":1,"167":1},"2":{"162":5,"164":1,"165":3,"167":5}}],["geoscontext",{"2":{"146":1}}],["geosdensify",{"2":{"146":3}}],["geos",{"0":{"160":1},"2":{"0":1,"6":5,"41":4,"148":5,"150":2,"157":1,"160":12}}],["got",{"2":{"154":3}}],["goes",{"2":{"6":2,"120":2}}],["good",{"2":{"6":1,"40":1,"160":2,"165":1}}],["going",{"2":{"4":4,"6":5,"47":2,"66":5,"120":1,"121":1,"162":1}}],["go",{"2":{"1":5,"3":17,"4":2,"6":43,"11":9,"13":1,"14":1,"15":6,"18":1,"32":1,"34":2,"36":1,"40":1,"43":2,"46":1,"49":2,"50":2,"51":2,"53":2,"54":2,"56":2,"59":6,"62":2,"63":2,"65":1,"66":2,"68":1,"69":2,"78":2,"79":2,"80":1,"82":1,"83":2,"93":1,"94":2,"96":1,"97":2,"99":1,"100":2,"109":2,"110":2,"120":6,"121":2,"124":3,"126":1,"128":1,"133":3,"139":3,"145":7,"146":8,"149":2,"150":49,"155":3,"160":1,"161":2,"162":1,"163":3,"165":1,"167":1,"168":9,"169":2,"170":5,"171":1}}],["gtrait",{"2":{"60":2}}],["gt",{"2":{"1":1,"6":2,"9":2,"10":1,"11":5,"45":3,"120":3}}],["gif",{"2":{"152":1}}],["githack",{"2":{"150":1}}],["github",{"2":{"6":2}}],["gives",{"2":{"170":1}}],["give",{"2":{"91":1,"167":1}}],["given",{"2":{"4":7,"6":21,"18":2,"29":1,"32":1,"33":1,"37":2,"44":3,"45":8,"47":3,"50":5,"51":1,"52":2,"53":1,"54":2,"56":1,"57":2,"60":8,"62":1,"63":1,"66":4,"69":1,"78":1,"79":1,"83":1,"91":7,"93":1,"94":1,"100":1,"102":1,"110":1,"126":1,"135":4,"136":1,"139":1,"144":2,"146":2,"147":2,"153":1}}],["gis",{"2":{"5":1,"6":1,"25":1,"27":1,"40":1}}],["gi",{"2":{"1":13,"3":42,"4":31,"6":124,"11":8,"13":15,"14":15,"15":8,"18":2,"32":3,"33":30,"34":1,"36":5,"37":21,"39":1,"43":5,"44":38,"45":34,"46":5,"47":17,"49":6,"50":13,"51":19,"52":16,"53":25,"54":24,"56":17,"57":36,"59":8,"60":42,"62":7,"63":3,"65":7,"66":99,"68":3,"69":4,"70":6,"71":12,"72":10,"73":7,"74":4,"75":8,"76":6,"78":3,"79":3,"80":21,"82":7,"83":2,"84":3,"85":12,"86":14,"87":4,"88":2,"89":8,"90":6,"91":59,"93":5,"94":3,"96":7,"97":51,"99":5,"100":3,"101":6,"102":15,"103":10,"104":7,"105":4,"106":8,"107":6,"109":7,"110":2,"111":6,"112":12,"113":10,"114":7,"115":4,"116":8,"117":6,"120":32,"121":15,"124":2,"125":10,"126":4,"128":2,"133":111,"135":9,"137":1,"139":3,"140":8,"141":5,"145":6,"146":6,"147":12,"149":2,"150":34,"154":4,"155":9,"156":5,"158":9,"161":55,"162":1,"163":21,"164":2,"165":2,"169":5,"170":2}}],["o",{"2":{"133":24}}],["odd",{"2":{"91":1}}],["own",{"2":{"57":1,"126":2}}],["occur",{"2":{"54":1}}],["occurs",{"2":{"54":1}}],["occupied",{"2":{"36":1}}],["old",{"2":{"45":8,"133":3}}],["ourselves",{"2":{"146":1}}],["our",{"2":{"24":1,"146":1,"163":4,"164":3,"169":1}}],["out=3",{"2":{"91":1}}],["out=4",{"2":{"53":1}}],["out`",{"2":{"53":1,"91":1}}],["out",{"2":{"6":3,"45":12,"47":23,"54":6,"57":4,"59":5,"69":4,"80":1,"83":3,"91":102,"97":2,"100":4,"110":4,"120":1,"133":1,"147":1,"160":2}}],["outside",{"2":{"3":2,"4":1,"6":3,"45":3,"47":1,"52":2,"54":4,"57":3,"59":2,"60":1,"68":1,"79":1,"82":1,"91":12,"97":3,"115":1}}],["outputs",{"2":{"45":1}}],["output",{"2":{"3":8,"4":1,"6":18,"18":1,"23":1,"50":2,"51":1,"53":1,"54":1,"56":1,"57":2,"63":1,"66":1,"69":1,"79":1,"83":1,"94":1,"97":1,"100":1,"110":1,"120":2,"150":1,"154":1,"161":1}}],["outermost",{"2":{"133":1}}],["outer",{"2":{"1":1,"6":1,"131":1,"133":2,"168":1,"169":1}}],["omit",{"2":{"6":1,"146":1}}],["obtain",{"2":{"133":1}}],["obtained",{"2":{"23":1}}],["observable",{"2":{"14":2}}],["obs",{"2":{"14":10}}],["obviously",{"2":{"4":1,"6":1,"137":1}}],["objects",{"2":{"1":4,"4":1,"6":17,"128":3,"131":5,"133":8,"137":1,"144":1,"150":2,"156":1}}],["object",{"2":{"1":4,"4":1,"5":1,"6":8,"20":1,"40":1,"59":1,"91":4,"128":1,"131":5,"133":3,"137":1,"142":3,"146":1,"150":1,"156":1}}],["obj",{"2":{"1":4,"4":1,"6":17,"128":3,"133":10,"137":1,"141":2,"146":3,"150":3,"155":1,"156":1}}],["others",{"2":{"41":1,"140":1}}],["otherwise",{"2":{"4":2,"6":3,"41":1,"45":1,"52":1,"54":1,"60":2,"121":1,"141":1,"143":1,"146":1,"161":1}}],["other",{"0":{"4":1,"6":1},"2":{"3":4,"6":12,"33":1,"45":5,"51":1,"53":1,"54":1,"56":2,"57":3,"60":2,"62":1,"66":2,"71":1,"91":8,"93":1,"96":1,"97":4,"99":2,"100":2,"103":1,"112":1,"121":1,"128":1,"131":1,"133":1,"136":2,"138":1,"140":2,"150":2,"152":2,"157":1,"158":1,"160":1,"164":1,"168":1,"171":1}}],["ogc",{"0":{"3":1}}],["over=3",{"2":{"53":1}}],["over`",{"2":{"53":1}}],["overflow",{"2":{"50":1}}],["overhead",{"2":{"22":1,"133":2}}],["override",{"2":{"6":1,"40":1}}],["overlapping",{"2":{"45":11,"54":4,"57":6}}],["overlap",{"2":{"3":4,"6":4,"9":1,"45":2,"54":8,"57":2,"69":1,"78":1,"91":2,"96":5,"97":6,"110":1,"138":1}}],["overlaps",{"0":{"95":1,"96":1},"1":{"96":1,"97":1},"2":{"0":10,"3":5,"6":13,"34":1,"54":1,"95":1,"96":3,"97":30,"121":1,"168":1}}],["over",{"2":{"1":1,"6":3,"36":2,"37":1,"44":3,"45":5,"47":1,"53":1,"54":11,"57":1,"69":1,"80":1,"83":1,"91":15,"97":2,"100":1,"110":1,"133":22,"163":3}}],["ops",{"2":{"133":1}}],["optimisation",{"2":{"91":1}}],["optimise",{"2":{"80":1}}],["options",{"2":{"14":1,"45":1}}],["optional",{"2":{"4":5,"6":6,"33":1,"37":2,"47":1,"60":2}}],["open",{"2":{"45":1,"124":1,"164":1}}],["operates",{"2":{"123":1,"133":1,"138":1}}],["operate",{"2":{"18":1,"29":1,"133":1}}],["operations",{"0":{"23":1},"2":{"23":1,"26":1,"54":1,"57":1,"126":1}}],["operation",{"2":{"6":3,"45":1,"126":1,"136":2,"140":2,"160":2}}],["opposite",{"2":{"3":5,"6":5,"45":2,"52":1,"54":2,"57":1,"63":2,"69":1,"79":2,"94":2,"110":1}}],["op",{"2":{"1":3,"6":3,"19":2,"44":1,"133":35}}],["on=2",{"2":{"91":1}}],["on`",{"2":{"91":1}}],["once",{"2":{"80":1,"97":1,"121":1}}],["onto",{"2":{"60":1}}],["ones",{"2":{"139":1}}],["oneunit",{"2":{"40":1}}],["one",{"2":{"1":1,"3":9,"6":14,"23":1,"33":4,"37":2,"39":1,"40":1,"44":1,"45":5,"47":3,"51":1,"52":1,"53":1,"54":32,"56":2,"57":2,"59":2,"68":1,"75":1,"80":1,"82":1,"91":18,"96":1,"97":18,"99":2,"100":2,"103":3,"104":2,"105":2,"106":1,"107":1,"109":1,"110":1,"116":1,"120":1,"121":5,"133":1,"139":1,"142":1,"146":1,"154":1,"155":1,"164":1,"168":1}}],["on",{"0":{"164":1},"2":{"1":2,"4":3,"6":11,"9":1,"18":1,"20":1,"23":2,"25":3,"27":3,"29":2,"33":5,"37":3,"39":1,"40":2,"44":3,"45":28,"47":8,"50":1,"51":1,"52":5,"53":1,"54":4,"56":1,"57":2,"59":1,"60":3,"66":2,"68":1,"69":7,"71":2,"72":3,"73":3,"74":1,"80":4,"83":6,"85":4,"86":1,"87":1,"91":125,"97":9,"100":7,"102":2,"110":7,"112":2,"113":1,"114":1,"121":3,"123":1,"125":1,"126":1,"128":1,"133":15,"136":1,"138":1,"144":1,"146":1,"152":1,"159":2,"162":1,"164":3,"165":1,"167":1,"168":4,"169":1,"170":2,"171":2}}],["only",{"2":{"0":1,"5":1,"6":10,"23":1,"37":2,"39":2,"40":1,"41":1,"44":2,"45":4,"47":3,"50":1,"51":1,"53":1,"54":1,"56":1,"60":2,"66":3,"96":3,"97":1,"99":1,"121":2,"133":2,"139":1,"144":1,"145":1,"147":2,"157":1,"160":2,"165":1,"170":1,"171":1}}],["often",{"2":{"164":1}}],["offers",{"2":{"163":1}}],["offer",{"2":{"146":1}}],["offset",{"2":{"33":8,"66":1}}],["off",{"2":{"4":1,"6":1,"45":4,"66":1,"91":6,"133":1}}],["of",{"2":{"1":7,"3":29,"4":66,"5":5,"6":193,"7":2,"9":4,"17":3,"18":5,"19":1,"20":2,"22":1,"23":2,"24":2,"25":1,"26":1,"27":1,"29":3,"32":1,"33":38,"36":5,"37":28,"38":9,"39":1,"40":13,"41":1,"43":3,"44":12,"45":84,"46":5,"47":31,"50":5,"51":12,"52":13,"53":10,"54":48,"56":9,"57":20,"59":6,"60":18,"62":4,"63":5,"65":2,"66":19,"68":6,"69":18,"71":1,"72":5,"73":5,"74":1,"75":2,"76":1,"79":5,"80":1,"82":3,"83":14,"85":1,"86":1,"87":1,"89":2,"90":1,"91":85,"93":1,"94":3,"96":1,"97":13,"99":2,"100":15,"102":3,"103":7,"104":5,"105":1,"106":2,"107":1,"109":4,"110":18,"112":3,"113":6,"114":6,"115":4,"116":1,"117":1,"119":2,"120":3,"121":19,"122":2,"123":1,"124":1,"126":3,"128":1,"131":5,"132":2,"133":27,"136":2,"138":4,"140":4,"141":3,"142":1,"144":2,"145":2,"146":5,"147":2,"150":8,"152":4,"153":2,"154":1,"156":1,"158":2,"160":4,"161":2,"163":6,"164":4,"165":2,"166":1,"167":4,"168":3,"169":4,"170":2}}],["org",{"2":{"51":1,"53":1,"56":1,"91":2,"152":1}}],["organise",{"2":{"10":1}}],["orange",{"2":{"49":1,"59":1,"62":2,"65":2,"82":2,"96":2,"109":2}}],["oro",{"2":{"11":2}}],["originate",{"2":{"57":1}}],["originals",{"2":{"22":1}}],["original",{"2":{"6":4,"18":1,"22":1,"45":10,"50":5,"51":1,"53":1,"57":4,"131":1,"133":3,"135":1,"141":2,"147":1,"149":4,"150":1}}],["orient",{"0":{"13":1},"1":{"14":1,"15":1},"2":{"13":7,"14":12,"45":15,"54":53}}],["orientation",{"0":{"118":1},"1":{"119":1,"120":1},"2":{"6":2,"10":1,"34":1,"37":1,"45":10,"47":2,"51":1,"53":2,"54":2,"56":1,"91":16,"119":1,"150":1}}],["ordered",{"2":{"36":1}}],["order",{"2":{"1":4,"3":1,"4":2,"6":6,"33":1,"36":1,"37":2,"40":1,"45":4,"54":1,"57":1,"60":2,"63":1,"66":3,"69":1,"79":1,"94":1,"133":2,"142":2,"150":1,"168":1}}],["or",{"0":{"24":1},"2":{"1":11,"3":3,"4":10,"6":53,"18":1,"20":1,"22":1,"23":1,"25":1,"27":1,"29":2,"33":4,"34":1,"37":1,"40":1,"41":1,"43":2,"44":4,"45":24,"46":1,"50":1,"51":1,"52":3,"53":2,"54":9,"56":1,"57":2,"59":2,"60":4,"62":1,"66":3,"69":1,"71":2,"72":1,"73":1,"74":1,"75":1,"76":1,"82":2,"85":2,"86":3,"87":2,"88":1,"89":1,"90":1,"91":26,"93":2,"94":1,"96":1,"97":2,"99":1,"100":1,"106":1,"107":1,"110":1,"112":2,"116":1,"117":1,"119":2,"120":3,"121":7,"123":1,"125":1,"126":3,"128":1,"130":2,"132":1,"133":9,"135":5,"136":2,"142":2,"143":1,"144":2,"146":2,"147":2,"148":1,"150":3,"152":2,"154":2,"156":1,"158":3,"161":2,"168":1,"170":2}}],["est",{"2":{"170":1}}],["essentially",{"2":{"158":1}}],["especially",{"2":{"6":1,"18":1,"23":1,"121":1}}],["effects",{"2":{"133":3}}],["efficiently",{"2":{"20":1}}],["efficient",{"2":{"6":1,"40":1,"51":2,"53":2,"56":2,"125":1}}],["e2",{"2":{"91":4}}],["e1",{"2":{"91":8}}],["euclid",{"2":{"47":2,"60":11,"91":1,"151":1}}],["euclidean",{"2":{"4":1,"6":1,"40":13,"60":6,"147":1}}],["everything",{"2":{"150":1}}],["every",{"2":{"45":1,"66":2,"131":1,"160":1}}],["evenly",{"2":{"169":1}}],["eventually",{"2":{"45":1}}],["even",{"2":{"37":2,"47":1,"54":1,"60":1,"66":1,"124":1,"126":1,"138":1}}],["evaluated",{"2":{"168":1}}],["eval",{"2":{"34":2,"133":2}}],["epsg",{"2":{"164":5,"165":8}}],["eps",{"2":{"33":2,"54":14}}],["eponymous",{"2":{"6":1,"146":1}}],["e",{"2":{"9":1,"22":1,"41":1,"121":1,"131":1,"133":2,"163":2,"164":1,"167":1}}],["eltype",{"2":{"121":4}}],["elements",{"2":{"75":1,"76":1,"89":1,"90":1,"97":1,"106":1,"107":1,"116":1,"117":1}}],["element",{"2":{"6":6,"32":1,"45":4,"50":2,"51":1,"53":1,"54":1,"56":3,"145":1,"164":1}}],["elsewhere",{"2":{"50":1}}],["elseif",{"2":{"45":5,"47":7,"51":1,"53":1,"54":14,"56":2,"57":1,"80":3,"91":10,"120":1,"121":2,"140":1,"152":2,"154":2}}],["else",{"2":{"3":6,"6":6,"33":1,"40":2,"45":19,"47":9,"50":1,"52":2,"54":9,"56":1,"57":9,"80":2,"91":17,"97":8,"121":20,"125":1,"133":8,"141":1,"143":1,"150":2,"152":4,"154":2,"155":1,"156":1,"160":1}}],["etc",{"2":{"6":1,"20":2,"36":1,"158":1,"167":1}}],["empty",{"2":{"4":2,"6":6,"33":2,"45":2,"51":1,"53":1,"54":2,"56":1,"121":2}}],["embedding",{"0":{"132":1,"137":1}}],["embedded",{"0":{"165":1},"2":{"121":1,"132":3,"162":1,"165":1}}],["embed",{"2":{"0":2,"4":1,"6":1,"132":1,"137":2}}],["errors",{"2":{"34":1,"54":1,"147":1}}],["error",{"0":{"143":1},"2":{"4":1,"6":4,"7":1,"18":1,"34":6,"40":1,"41":4,"45":2,"54":2,"55":1,"66":2,"121":1,"131":1,"135":2,"143":3,"146":5,"154":4,"160":3,"161":1}}],["edgekeys",{"2":{"121":3}}],["edge",{"2":{"3":1,"4":3,"6":4,"20":1,"34":1,"37":1,"43":1,"45":25,"47":13,"51":1,"53":1,"54":6,"56":1,"60":4,"66":1,"71":2,"86":2,"87":1,"91":7,"97":21,"112":2,"113":1,"114":1,"121":7,"161":2}}],["edges`",{"2":{"54":1}}],["edges",{"2":{"0":1,"4":2,"6":9,"45":12,"47":8,"52":3,"54":10,"57":3,"60":3,"62":1,"65":2,"66":1,"71":1,"72":3,"73":7,"74":3,"82":1,"85":3,"88":1,"91":3,"97":20,"109":1,"112":1,"121":22,"161":29}}],["earlier",{"2":{"163":3}}],["earth",{"2":{"6":2,"25":1,"27":1,"146":2,"150":2,"164":2,"168":1}}],["easiest",{"2":{"166":1}}],["easier",{"2":{"157":1,"159":1}}],["easily",{"2":{"126":1}}],["east",{"2":{"47":9}}],["easy",{"2":{"1":1,"6":1,"138":1,"155":1}}],["eachindex",{"2":{"33":1,"120":1,"121":3,"133":2,"151":1,"154":1}}],["each",{"2":{"3":2,"4":3,"6":6,"9":1,"18":2,"20":1,"33":4,"37":2,"38":4,"40":1,"45":5,"47":1,"54":3,"60":1,"66":2,"69":1,"83":1,"91":6,"96":1,"97":3,"100":1,"110":1,"120":1,"121":1,"133":1,"138":2,"150":1,"166":1,"167":1,"169":2,"170":2,"171":1}}],["equatorial",{"2":{"6":6,"146":4}}],["equality",{"2":{"45":1,"54":1,"168":1}}],["equal",{"2":{"3":2,"4":16,"6":19,"33":6,"54":1,"59":1,"60":4,"65":3,"66":22,"71":1,"85":1,"91":15,"96":1,"97":2,"102":2,"112":1,"124":1}}],["equals",{"0":{"64":1,"65":1},"1":{"65":1,"66":1},"2":{"0":17,"4":3,"6":19,"33":2,"34":1,"45":4,"50":2,"54":8,"60":1,"64":1,"65":2,"66":50,"71":1,"85":1,"91":10,"97":2,"102":3,"112":1,"168":1}}],["equivalent",{"2":{"3":1,"4":4,"6":6,"37":1,"45":1,"54":1,"57":1,"66":5,"69":1,"91":1}}],["enable",{"2":{"171":1}}],["enabled",{"2":{"168":1}}],["enabling",{"0":{"171":1}}],["enclosed",{"2":{"91":1}}],["encode",{"2":{"24":1}}],["encompasses",{"2":{"18":1,"91":1}}],["encounters",{"2":{"18":1}}],["en",{"2":{"91":1,"152":1}}],["envelope",{"2":{"54":2}}],["envelopes",{"2":{"54":2}}],["enough",{"2":{"45":1}}],["entirely",{"2":{"91":1}}],["entire",{"2":{"47":1,"91":4}}],["entry",{"2":{"45":11,"52":3,"54":4,"57":3,"121":1}}],["ent",{"2":{"45":19,"50":2}}],["enter",{"2":{"45":4}}],["ensuring",{"2":{"6":1,"144":1,"147":1}}],["ensure",{"2":{"6":3,"40":1,"51":1,"53":1,"56":1,"123":2,"134":1}}],["ensures",{"2":{"6":3,"125":1,"136":3,"140":2}}],["enumerate",{"2":{"13":2,"33":1,"45":10,"47":1,"50":1,"52":1,"57":2,"91":1,"121":2,"140":2,"154":1}}],["enum",{"2":{"6":2,"45":3,"53":3,"91":3}}],["endpt",{"2":{"152":3}}],["endpoints",{"2":{"45":3,"47":1,"52":1,"54":6,"57":1,"60":2,"91":11,"97":2,"99":1}}],["endpoint=3",{"2":{"45":1}}],["endpointtype",{"2":{"45":2}}],["endpoint",{"2":{"3":1,"6":2,"45":27,"53":1,"54":16,"60":2,"68":1,"91":3,"97":2,"150":4,"152":4,"163":1}}],["ending",{"2":{"45":1,"47":1}}],["end",{"2":{"1":1,"6":1,"9":1,"13":4,"14":3,"33":18,"34":4,"37":8,"40":35,"41":3,"44":10,"45":130,"47":43,"50":9,"51":8,"52":12,"53":5,"54":31,"55":1,"56":6,"57":24,"60":19,"66":20,"75":2,"76":2,"80":20,"89":2,"90":2,"91":104,"97":21,"102":1,"106":2,"107":2,"112":1,"116":2,"117":2,"120":9,"121":44,"122":4,"123":1,"125":5,"126":1,"133":49,"135":3,"140":18,"141":4,"142":1,"143":2,"146":8,"147":8,"150":7,"151":6,"152":30,"153":3,"154":27,"155":4,"156":4,"158":1,"159":3,"160":4,"161":19}}],["enforce",{"2":{"0":1,"6":2,"160":3}}],["exits",{"2":{"45":1}}],["exit",{"2":{"45":32,"50":2,"52":3,"54":3,"57":2}}],["existingnodes",{"2":{"121":3}}],["existing",{"2":{"45":3,"56":1,"121":1,"164":2,"166":1}}],["exists",{"2":{"45":1,"47":1,"54":1}}],["exist",{"2":{"6":1,"45":1,"54":3,"160":1}}],["excluding",{"2":{"88":1,"91":1,"112":2}}],["exclude",{"2":{"80":9}}],["exclusively",{"2":{"104":1}}],["exclusive",{"2":{"47":1,"54":2}}],["exc",{"2":{"41":2,"143":2,"146":2}}],["excellent",{"2":{"23":1}}],["except",{"2":{"18":1,"19":1}}],["excess",{"2":{"5":1,"6":1,"40":1}}],["exp10",{"2":{"146":1,"150":2}}],["expressed",{"2":{"38":2}}],["express",{"2":{"38":1}}],["experimental",{"2":{"34":3}}],["expect",{"2":{"1":1,"93":1,"142":1}}],["explain",{"2":{"26":1}}],["explanations",{"2":{"26":3}}],["explicitly",{"2":{"6":1,"18":1,"24":1,"33":2,"37":1,"40":1,"41":1,"60":2,"66":1,"143":1,"146":1,"147":1}}],["export",{"2":{"38":1,"144":1,"165":1,"167":1}}],["exposes",{"2":{"17":1}}],["exponential",{"2":{"9":1}}],["ext2",{"2":{"91":3}}],["ext1",{"2":{"91":3}}],["ext",{"2":{"39":15,"45":10,"47":2,"50":3,"51":8,"53":8,"54":18,"56":8,"57":14,"80":7,"91":7}}],["extrema",{"2":{"121":1,"161":1}}],["extreem",{"2":{"33":10}}],["extract",{"2":{"121":1,"133":3,"150":1}}],["extra",{"2":{"6":3,"45":1,"56":1,"144":1,"146":2,"147":1}}],["external",{"2":{"37":1,"91":2}}],["exteriors",{"2":{"9":1,"53":2,"56":2,"121":1}}],["exterior",{"2":{"3":4,"4":2,"6":10,"33":1,"36":1,"37":1,"39":1,"40":36,"44":2,"45":4,"51":2,"56":3,"57":14,"60":1,"62":1,"63":1,"66":2,"69":3,"79":1,"83":2,"91":9,"100":2,"109":1,"110":3,"113":3,"114":3,"120":6,"121":6,"125":3,"134":1,"136":1,"137":1,"163":2}}],["extending",{"2":{"97":1}}],["extended",{"2":{"60":1}}],["extensions",{"2":{"167":1}}],["extension",{"2":{"1":1,"6":1,"40":1,"41":1,"68":1,"122":1,"142":3,"143":2,"146":1,"147":1,"148":1,"167":1}}],["extent=true",{"2":{"137":1}}],["extent=nothing",{"2":{"133":1}}],["extent=",{"2":{"133":3}}],["extent=false",{"2":{"133":1,"150":1}}],["extent=gi",{"2":{"121":3}}],["extent`",{"2":{"130":1,"137":1}}],["extents",{"2":{"4":3,"6":3,"34":5,"47":1,"54":3,"91":5,"97":1,"121":3,"133":2,"137":2,"161":2}}],["extent",{"0":{"137":1},"2":{"0":2,"1":4,"4":3,"6":11,"24":1,"34":2,"39":1,"46":1,"47":1,"54":10,"91":4,"97":2,"121":12,"130":3,"132":4,"133":28,"137":2,"150":1,"159":1,"161":7}}],["exactly",{"2":{"154":1}}],["exactpredicates",{"2":{"7":1,"13":2,"14":2,"34":1}}],["exact",{"2":{"3":5,"6":5,"7":2,"12":1,"13":1,"45":36,"47":6,"50":7,"51":5,"53":5,"54":7,"55":1,"56":5,"57":7,"63":2,"69":3,"71":1,"72":3,"73":3,"74":1,"79":2,"80":1,"83":2,"85":1,"86":3,"87":2,"88":1,"91":24,"94":2,"97":3,"100":2,"102":1,"103":3,"104":1,"105":1,"110":3,"112":1,"113":3,"114":3,"115":1,"121":1,"139":1}}],["examples",{"0":{"145":1,"149":1},"2":{"3":8,"4":1,"6":11,"26":2,"63":1,"66":1,"69":1,"79":1,"80":1,"83":1,"97":1,"100":1,"110":1,"120":2,"161":1}}],["example",{"0":{"39":1,"124":1,"139":1,"169":1,"170":1},"2":{"1":3,"3":2,"6":13,"11":1,"20":1,"23":2,"32":1,"36":1,"39":1,"43":1,"44":1,"46":1,"49":1,"50":1,"51":1,"53":1,"54":1,"56":1,"59":1,"62":1,"65":1,"66":1,"68":1,"78":1,"80":1,"82":1,"91":1,"93":1,"94":1,"96":1,"99":1,"109":1,"120":1,"121":8,"124":1,"126":1,"133":2,"134":1,"138":1,"139":1,"141":1,"149":1,"150":2,"155":1,"160":1,"169":1,"171":1}}],["either",{"2":{"1":2,"3":1,"6":4,"22":1,"25":1,"27":1,"45":9,"51":1,"53":1,"54":2,"56":1,"57":1,"59":1,"69":1,"91":5,"93":1,"99":1,"100":1,"110":1,"121":1,"133":3,"135":1,"168":1}}],["lj",{"2":{"121":2}}],["lrs",{"2":{"150":2}}],["lr",{"2":{"121":3}}],["lp",{"2":{"91":2}}],["lstart",{"2":{"91":2}}],["ls",{"2":{"91":12}}],["ll",{"2":{"17":1,"39":1,"145":2,"150":1,"164":1,"166":1}}],["l",{"2":{"14":4,"40":6,"80":2,"91":32}}],["lgeos",{"2":{"150":1}}],["lg",{"2":{"13":1,"14":1,"15":2,"146":9,"150":17}}],["l305",{"2":{"6":1}}],["loudly",{"2":{"133":1}}],["log10",{"2":{"146":2,"150":4}}],["log",{"2":{"128":3,"129":1,"145":2}}],["location",{"2":{"45":1,"91":6}}],["local",{"2":{"33":3,"37":1,"45":4,"52":1,"57":1,"121":1}}],["loose",{"2":{"123":1}}],["lookup",{"2":{"121":1,"133":1}}],["looks",{"2":{"43":1}}],["look",{"2":{"36":2,"121":2,"124":1,"145":1}}],["looping",{"2":{"121":1}}],["loop",{"2":{"33":1,"40":2,"44":3,"45":8,"47":1,"54":1,"57":1,"91":5,"121":3,"152":1}}],["lower",{"2":{"6":1,"7":1,"121":1,"169":1}}],["lon",{"2":{"6":2,"145":1,"146":2}}],["longitude",{"2":{"164":2}}],["long",{"2":{"6":1,"54":1,"146":1,"170":1}}],["longer",{"2":{"6":3,"144":1,"146":2,"147":1}}],["lots",{"2":{"164":1}}],["lot",{"2":{"6":1,"23":1,"33":1,"37":1,"44":1,"47":1,"60":1,"66":1,"97":1,"126":1,"145":1,"160":2}}],["load",{"2":{"133":2,"150":1,"162":2}}],["loading",{"2":{"41":1,"143":1,"146":1}}],["loads",{"2":{"5":1,"6":1,"40":1}}],["loaded",{"2":{"1":1,"41":3,"142":1,"143":2,"146":2}}],["laptop",{"2":{"170":1}}],["land",{"2":{"164":8}}],["layers",{"2":{"131":1}}],["label",{"2":{"14":4,"15":2,"59":1,"121":3,"145":2,"149":2,"150":2}}],["labels",{"2":{"13":2,"121":1}}],["lazily",{"2":{"6":1,"128":1,"133":1}}],["latitude",{"2":{"164":2}}],["later",{"2":{"37":1,"121":1}}],["lat",{"2":{"6":3,"145":1,"146":3}}],["larger",{"2":{"45":1,"56":1,"154":1}}],["large",{"2":{"6":8,"40":1,"150":2,"167":1,"170":1}}],["lastindex",{"2":{"154":1}}],["last",{"2":{"4":3,"6":3,"9":1,"33":11,"37":2,"39":2,"45":9,"47":4,"60":7,"66":5,"91":20,"102":1,"121":8,"124":1,"140":2,"152":1}}],["lt",{"2":{"6":6,"54":4,"145":1}}],["len",{"2":{"152":7}}],["length",{"2":{"0":1,"5":1,"6":5,"9":1,"18":1,"40":32,"42":1,"43":1,"44":22,"45":11,"47":1,"50":2,"51":2,"53":1,"54":1,"56":1,"57":1,"91":1,"121":10,"133":3,"140":2,"145":1,"151":1,"152":1,"153":1,"154":7}}],["legend",{"2":{"150":4}}],["le",{"2":{"91":10}}],["leaf",{"2":{"133":4}}],["leaving",{"2":{"124":1}}],["leading",{"2":{"163":1}}],["lead",{"2":{"54":1,"124":1}}],["least",{"2":{"3":4,"6":4,"45":1,"54":1,"57":2,"91":14,"97":6,"100":1,"103":3,"104":2,"105":2,"106":1,"107":1,"110":1,"116":1,"120":1}}],["leftover",{"2":{"45":1}}],["left=1",{"2":{"45":1}}],["left",{"2":{"40":1,"45":5,"120":1,"121":2,"152":17,"154":5,"168":1}}],["lets",{"2":{"37":1}}],["let",{"2":{"36":1,"43":1,"91":1,"121":3,"145":1,"163":6,"164":4,"165":3,"166":2,"167":2,"171":1}}],["levels",{"2":{"6":1,"121":1,"131":1,"158":1}}],["level",{"2":{"6":1,"7":1,"9":1,"18":2,"20":1,"29":1,"123":1,"125":1,"131":1,"133":2,"135":4,"136":1,"138":1,"140":2,"165":2}}],["less",{"2":{"3":1,"6":7,"33":1,"37":1,"40":1,"44":1,"47":1,"60":1,"66":1,"80":1,"97":1,"121":1,"150":1,"151":1}}],["l289",{"2":{"6":1}}],["l2",{"2":{"3":4,"4":4,"6":8,"62":8,"65":4,"66":12,"79":2,"82":5,"96":4,"99":3,"100":2,"109":8}}],["l195",{"2":{"6":1}}],["l177",{"2":{"6":1}}],["l1",{"2":{"3":6,"4":4,"6":10,"62":8,"65":4,"66":12,"68":4,"69":2,"78":4,"79":2,"82":5,"96":4,"99":3,"100":2,"109":8}}],["li",{"2":{"121":2}}],["lie",{"2":{"54":1}}],["lies",{"2":{"45":3,"169":1}}],["limitations",{"2":{"54":1}}],["limits",{"2":{"39":1}}],["limited",{"2":{"6":1,"144":1,"147":1}}],["library",{"2":{"50":1,"167":1}}],["libraries",{"2":{"37":1,"138":1,"167":1}}],["libgeos",{"2":{"6":2,"13":1,"14":1,"15":1,"23":1,"37":1,"41":5,"122":1,"146":7,"150":4,"160":2}}],["little",{"2":{"26":1}}],["literate",{"2":{"26":1,"33":1,"34":1,"37":1,"40":1,"41":1,"44":1,"45":1,"47":1,"50":1,"52":1,"54":1,"55":1,"57":1,"60":1,"63":1,"66":1,"76":1,"79":1,"80":1,"90":1,"91":1,"94":1,"97":1,"107":1,"117":1,"120":1,"121":1,"122":1,"125":1,"133":1,"136":1,"137":1,"140":1,"141":1,"143":1,"147":1,"154":1,"155":1,"156":1,"160":1,"161":1}}],["lift",{"2":{"14":2}}],["lin",{"2":{"146":5}}],["linrange",{"2":{"13":2,"14":5,"39":2,"59":1,"121":2,"146":1,"150":2}}],["linering",{"2":{"164":1}}],["linewidth",{"2":{"36":1,"163":1}}],["linesegment",{"2":{"120":2,"147":1}}],["lines",{"0":{"72":1,"86":1,"103":1,"113":1},"2":{"3":1,"4":4,"6":5,"45":3,"49":1,"54":9,"59":1,"62":3,"65":4,"66":4,"68":1,"69":1,"78":2,"80":1,"82":3,"91":2,"93":3,"96":4,"97":2,"99":4,"109":3,"110":1,"121":3,"148":1,"163":4}}],["linestrings",{"2":{"4":2,"6":2,"9":1,"66":2,"119":1,"123":1,"163":1}}],["linestringtrait",{"2":{"3":2,"4":4,"6":9,"11":3,"33":1,"44":4,"53":2,"60":2,"66":8,"71":1,"72":4,"73":1,"80":6,"85":1,"86":5,"97":4,"102":1,"103":4,"104":1,"112":1,"113":4,"114":1,"131":1,"135":2,"136":1,"147":2,"158":2}}],["linestring",{"2":{"3":5,"4":6,"6":15,"18":1,"20":1,"33":2,"44":2,"60":4,"62":2,"63":1,"65":2,"66":2,"71":1,"72":3,"79":2,"82":2,"83":1,"85":1,"86":4,"91":2,"96":2,"102":1,"103":3,"104":1,"109":2,"110":1,"112":1,"113":4,"114":1,"120":7,"133":4,"161":3,"163":5}}],["linetrait",{"2":{"3":2,"4":4,"6":6,"33":1,"45":2,"50":2,"53":2,"60":2,"66":8,"71":1,"72":4,"73":1,"85":1,"86":5,"97":4,"102":1,"103":4,"104":1,"112":1,"113":4,"114":1}}],["line2",{"2":{"3":3,"6":7,"53":2,"54":2,"80":5,"93":3,"94":2,"97":3,"120":5}}],["line1",{"2":{"3":4,"6":8,"53":2,"54":2,"80":5,"93":3,"94":2,"97":5,"120":5}}],["linea",{"2":{"1":1,"6":1,"155":1}}],["linearmap",{"2":{"150":1}}],["linearalgebra",{"2":{"34":1}}],["linear",{"2":{"4":7,"6":10,"9":1,"37":2,"40":1,"43":1,"44":3,"47":1,"54":1,"60":5,"66":8,"73":1,"91":2,"103":1,"104":2,"113":1,"119":1,"125":3,"133":2,"145":5,"146":3,"147":4}}],["linearr",{"2":{"1":1,"6":1,"155":1}}],["linearrings",{"2":{"9":1,"87":1,"121":6,"123":1,"163":1}}],["linearringtrait",{"2":{"4":4,"6":6,"11":3,"33":3,"37":2,"44":4,"45":4,"53":2,"60":2,"66":8,"71":1,"72":1,"73":4,"85":1,"86":2,"87":3,"102":1,"103":1,"104":4,"112":1,"113":1,"114":4,"135":1,"147":2,"150":1,"158":2}}],["linearring",{"2":{"1":10,"3":2,"4":1,"6":15,"33":2,"44":2,"45":1,"60":1,"71":1,"73":3,"85":1,"86":1,"87":2,"91":2,"97":4,"102":1,"103":1,"104":3,"112":1,"114":4,"120":1,"121":3,"123":1,"124":6,"125":1,"133":5,"139":13,"150":1,"155":8,"163":24,"164":6,"165":8,"169":2}}],["linearsegments",{"2":{"0":1,"6":4,"144":1,"145":1,"146":3,"147":5}}],["line",{"0":{"91":1},"2":{"0":1,"3":13,"4":9,"6":52,"23":1,"32":2,"33":7,"43":3,"44":10,"45":12,"47":8,"49":6,"50":18,"53":8,"54":67,"57":6,"60":11,"63":2,"66":5,"68":2,"69":1,"71":2,"72":11,"73":8,"78":1,"80":11,"83":2,"85":1,"86":9,"87":4,"91":141,"93":2,"94":2,"96":3,"97":12,"99":2,"100":2,"102":1,"103":10,"104":3,"110":2,"112":2,"113":10,"114":7,"120":6,"121":2,"147":1,"150":1,"151":1,"152":4,"153":1,"161":3,"163":3}}],["lineorientation",{"2":{"0":1,"6":2,"53":2}}],["lists",{"2":{"20":1,"45":3,"97":1}}],["listed",{"2":{"6":1,"33":1,"150":1}}],["list",{"2":{"6":16,"9":1,"33":20,"45":233,"50":20,"51":14,"52":8,"53":13,"54":5,"56":13,"57":1,"170":2}}],["likely",{"2":{"131":1}}],["like",{"0":{"55":1},"2":{"1":2,"6":9,"17":1,"18":2,"19":1,"20":1,"23":1,"24":1,"29":1,"37":1,"39":1,"40":1,"43":1,"47":1,"51":1,"53":1,"56":1,"59":1,"60":1,"66":1,"126":2,"133":2,"135":2,"136":1,"144":1,"145":1,"158":2,"164":2}}],["image",{"2":{"121":1}}],["impossible",{"2":{"50":1,"96":1}}],["important",{"2":{"145":1}}],["import",{"2":{"1":3,"6":5,"13":2,"14":2,"15":1,"32":1,"34":5,"36":1,"41":1,"43":1,"46":1,"50":1,"51":1,"53":1,"54":1,"56":1,"59":1,"62":1,"63":1,"65":1,"66":1,"68":1,"69":1,"78":1,"79":1,"80":1,"82":1,"83":1,"93":1,"94":1,"96":1,"97":1,"99":1,"100":1,"109":1,"110":1,"120":3,"133":2,"143":1,"146":2,"149":2,"150":3,"155":2,"161":1,"162":5}}],["implements",{"2":{"160":1}}],["implementing",{"2":{"6":1,"150":1}}],["implement",{"2":{"6":1,"17":1,"23":1,"33":1,"37":1,"40":1,"44":1,"47":1,"60":1,"66":1,"69":1,"83":1,"97":1,"100":1,"110":1,"126":1,"134":1,"135":3,"136":1}}],["implementation",{"0":{"33":1,"37":1,"44":1,"47":1,"50":1,"60":1,"63":1,"66":1,"69":1,"79":1,"83":1,"94":1,"97":1,"100":1,"110":1,"125":1,"130":1,"140":1,"147":1},"2":{"6":1,"33":3,"37":3,"40":1,"44":3,"47":3,"56":1,"60":3,"63":1,"66":3,"69":2,"79":1,"83":2,"94":1,"97":3,"100":2,"110":2,"121":2,"122":1,"142":1,"150":1,"160":1}}],["implementations",{"2":{"6":1,"69":1,"83":1,"100":1,"110":1,"122":1,"148":1,"160":3}}],["implemented",{"0":{"122":1},"2":{"1":1,"6":2,"34":1,"37":1,"40":3,"50":2,"52":2,"54":2,"57":2,"60":2,"122":1,"126":2,"135":2,"142":1,"148":1}}],["improvements",{"2":{"9":2,"10":1}}],["improve",{"2":{"4":1,"6":1,"137":1}}],["i=2",{"2":{"120":1}}],["ipoints",{"2":{"91":4}}],["ip",{"2":{"66":2}}],["ipt",{"2":{"45":8}}],["ihole",{"2":{"66":2}}],["ih",{"2":{"57":20}}],["i2",{"2":{"47":2}}],["i1",{"2":{"47":2}}],["ii",{"2":{"45":8}}],["io",{"2":{"41":5,"143":5,"146":5}}],["i+1",{"2":{"40":8,"121":1,"152":2,"154":1}}],["i",{"2":{"9":1,"13":4,"22":1,"33":14,"37":1,"40":16,"45":28,"47":4,"52":2,"56":2,"57":4,"60":2,"66":8,"80":7,"91":28,"120":14,"121":17,"133":14,"147":2,"151":3,"152":12,"154":28,"161":2,"163":2,"164":1,"170":3}}],["id",{"2":{"166":1}}],["identical",{"2":{"133":1,"139":1}}],["identity",{"2":{"121":4,"133":2,"137":1}}],["ideal",{"2":{"121":1}}],["idea",{"2":{"6":1,"20":1,"25":1,"27":1,"40":1,"126":1}}],["idx`",{"2":{"45":1}}],["idx",{"2":{"33":6,"45":167,"47":9,"50":23,"51":5,"53":5,"56":2,"140":34,"152":51}}],["id=",{"2":{"6":2}}],["ignored",{"2":{"6":1,"121":1}}],["ignore",{"2":{"6":1,"121":2}}],["i>",{"2":{"6":2}}],["i>method",{"2":{"6":2}}],["innerjoin",{"2":{"169":1,"170":1}}],["inner",{"2":{"91":6,"133":3,"168":1}}],["inline",{"2":{"91":4,"120":1,"133":21,"159":2}}],["in=1",{"2":{"91":1}}],["in`",{"2":{"91":1}}],["inject",{"0":{"55":1},"2":{"143":1}}],["inaccuracies",{"2":{"54":1}}],["ind",{"2":{"170":2}}],["individual",{"2":{"165":1}}],["indicate",{"2":{"133":1}}],["indicates",{"2":{"20":1}}],["indices",{"2":{"45":4,"133":4,"154":16}}],["indeed",{"2":{"124":1}}],["index",{"2":{"40":8,"45":11,"91":1,"133":1,"152":1}}],["inds",{"2":{"121":3}}],["inplace",{"2":{"40":1}}],["inputs",{"2":{"6":1,"45":1,"63":1,"66":1,"79":1,"94":1,"154":1}}],["input",{"2":{"6":12,"33":1,"50":1,"51":1,"53":1,"54":1,"56":1,"121":1,"126":1,"146":3,"147":2,"151":1,"152":1,"153":1,"164":1}}],["inbounds",{"2":{"40":16,"60":5,"91":1}}],["inspiration",{"2":{"50":1}}],["inspired",{"2":{"49":1,"50":2}}],["inside",{"2":{"33":3,"43":1,"45":3,"47":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":2,"59":3,"60":1,"71":1,"91":1,"109":1,"112":1,"121":2}}],["insertion",{"2":{"45":1}}],["insert",{"2":{"33":1,"152":1}}],["instability",{"2":{"24":2}}],["instantiating",{"2":{"20":1}}],["instead",{"2":{"18":1,"24":1}}],["instructs",{"2":{"6":1,"160":2}}],["investigate",{"2":{"121":1}}],["invalid",{"2":{"20":1,"52":2,"124":1,"138":1,"139":1}}],["invoke",{"2":{"20":1}}],["involved",{"2":{"126":1}}],["involve",{"2":{"20":1}}],["involving",{"2":{"6":3,"51":1,"53":1,"56":1}}],["invocation",{"2":{"18":1}}],["init=nothing",{"2":{"133":1}}],["init=typemax",{"2":{"60":2}}],["init=zero",{"2":{"37":1,"47":1}}],["initial",{"2":{"54":2,"146":1}}],["initially",{"2":{"45":1}}],["initialize",{"2":{"40":3,"44":2,"45":1,"54":1}}],["init",{"2":{"19":1,"33":1,"34":1,"44":2,"133":30,"146":4}}],["incorrect",{"2":{"123":1,"124":1}}],["increase",{"2":{"45":1,"91":1}}],["increasing",{"2":{"6":1,"150":1}}],["increment",{"2":{"40":5}}],["including",{"2":{"33":1,"45":2,"54":1,"60":1,"71":1,"72":1,"73":1,"74":1,"91":2}}],["include",{"2":{"33":1,"34":40,"45":1,"60":2,"150":2,"159":1,"165":2,"166":1}}],["included",{"2":{"6":2,"57":2,"136":2,"140":2,"165":1}}],["includes",{"2":{"4":2,"6":2,"57":1,"60":2,"66":1,"91":1}}],["incircle",{"0":{"16":1}}],["ing",{"2":{"1":1,"6":2,"40":1,"155":1}}],["intr",{"2":{"45":28,"47":9,"50":16,"54":8}}],["intr2",{"2":{"45":2,"54":14}}],["intr1",{"2":{"45":3,"54":21,"91":2}}],["intrs",{"2":{"45":10,"54":5}}],["introduction",{"0":{"27":1},"1":{"28":1,"29":1,"30":1}}],["introducing",{"2":{"24":1}}],["introduces",{"2":{"24":1}}],["int",{"2":{"45":6,"57":7,"80":7,"147":1,"150":1,"152":5,"153":1,"154":1}}],["integrate",{"2":{"37":1}}],["integrating",{"2":{"37":1}}],["integrals",{"2":{"36":1}}],["integral",{"2":{"36":1}}],["intended",{"2":{"6":1,"135":2,"136":1}}],["intermediate",{"2":{"47":1}}],["inter2",{"2":{"47":15}}],["inter1",{"2":{"47":23}}],["interpreted",{"2":{"40":1}}],["interpolation",{"2":{"5":1,"6":1,"39":1,"40":2,"144":1}}],["interpolated",{"2":{"5":3,"6":3,"40":17,"144":1}}],["interpolate",{"2":{"0":2,"5":2,"6":4,"38":1,"39":2,"40":25}}],["interest",{"2":{"40":1,"60":1}}],["internal",{"2":{"39":1}}],["internals",{"2":{"24":1}}],["inter",{"2":{"6":3,"45":21,"50":1,"51":1,"53":5,"54":4}}],["interface",{"0":{"135":1},"2":{"6":2,"20":1,"133":1,"134":1,"135":4,"136":1,"150":1,"164":1}}],["interacted",{"2":{"91":1}}],["interaction",{"0":{"91":1},"2":{"91":2}}],["interactions",{"2":{"45":1,"57":3,"91":15}}],["interactive",{"2":{"13":1,"14":1}}],["interacting",{"2":{"6":1,"53":1,"91":2}}],["interacts",{"2":{"3":1,"6":1,"91":3,"99":1,"100":1,"103":3,"104":1,"105":1}}],["interact",{"2":{"3":2,"6":2,"56":1,"57":1,"82":1,"91":5,"94":1,"99":1,"100":1,"102":1,"103":2,"104":2,"105":1}}],["interior",{"2":{"3":6,"6":7,"33":9,"36":1,"40":7,"44":5,"45":1,"57":18,"62":1,"63":1,"68":1,"69":3,"72":5,"73":1,"74":2,"78":2,"79":1,"80":1,"83":2,"85":2,"86":6,"87":3,"91":15,"99":1,"100":3,"103":1,"104":2,"105":2,"109":1,"110":3,"115":2,"120":2,"125":1,"136":1}}],["interiors",{"2":{"3":6,"6":7,"40":20,"62":1,"63":1,"68":1,"78":1,"79":1,"82":1,"83":1,"88":1,"91":5,"93":1,"94":1,"99":1,"100":1,"102":1,"103":2,"104":1,"109":1,"110":1,"113":3,"114":3}}],["intersectingpolygons",{"2":{"6":3}}],["intersecting",{"0":{"138":1},"1":{"139":1,"140":1},"2":{"6":4,"34":1,"45":2,"57":2,"136":4,"138":1,"140":4}}],["intersections",{"0":{"54":1},"2":{"45":2,"47":2,"52":1,"53":2,"54":1,"57":1,"91":2}}],["intersection",{"0":{"53":1,"92":1},"1":{"93":1,"94":1},"2":{"0":2,"3":3,"6":19,"9":1,"15":4,"23":1,"34":1,"45":38,"47":6,"50":3,"51":4,"52":4,"53":15,"54":73,"56":2,"57":2,"80":2,"91":6,"93":1,"97":5}}],["intersect",{"2":{"3":8,"6":11,"45":4,"47":3,"51":2,"53":1,"54":1,"56":1,"57":5,"62":1,"63":2,"68":1,"69":1,"79":1,"83":1,"86":1,"88":1,"91":4,"93":2,"97":1,"109":1,"110":2,"113":3,"114":3,"139":1,"140":4}}],["intersects",{"0":{"93":1},"2":{"0":2,"3":3,"6":6,"34":1,"45":1,"54":2,"57":2,"80":2,"92":1,"93":4,"94":4,"97":5,"115":1,"140":2,"168":1}}],["into",{"2":{"5":1,"6":7,"17":1,"26":1,"33":1,"37":1,"40":1,"44":4,"45":2,"50":1,"51":1,"53":1,"91":1,"121":4,"128":1,"133":6,"140":1,"150":1,"158":1,"161":2,"163":2,"168":1}}],["int64",{"2":{"1":6,"6":6,"124":6,"151":1,"152":1,"154":1,"155":6,"163":14}}],["info",{"2":{"144":1}}],["information",{"0":{"165":1},"2":{"6":1,"29":1,"40":1,"45":2,"46":1,"54":1,"91":1,"162":1,"165":3,"167":2}}],["infinity",{"2":{"91":1,"97":1}}],["inf",{"2":{"1":1,"9":1,"50":2,"151":1,"154":3}}],["in",{"0":{"23":1},"2":{"1":6,"3":3,"4":1,"5":4,"6":49,"7":1,"9":2,"13":6,"14":2,"17":2,"18":4,"20":1,"23":3,"24":2,"25":1,"26":3,"27":1,"29":1,"30":1,"33":7,"34":2,"36":1,"37":3,"38":2,"40":22,"41":1,"43":2,"44":5,"45":72,"47":31,"50":6,"51":9,"52":3,"53":5,"54":29,"56":11,"57":28,"59":6,"60":6,"62":2,"63":1,"65":1,"66":17,"69":10,"72":1,"73":1,"74":1,"75":1,"76":1,"79":1,"80":7,"83":9,"85":1,"86":1,"87":1,"89":1,"90":1,"91":135,"93":2,"94":1,"96":1,"97":11,"99":1,"100":11,"104":1,"106":1,"107":1,"109":1,"110":10,"113":3,"114":3,"116":1,"117":1,"120":4,"121":10,"122":3,"126":1,"128":3,"131":2,"132":1,"133":12,"134":1,"135":1,"136":2,"137":1,"138":1,"140":7,"141":2,"142":3,"143":1,"144":2,"145":2,"146":14,"147":7,"148":1,"150":5,"151":2,"152":4,"153":1,"154":5,"155":2,"156":1,"157":4,"158":1,"159":1,"160":4,"161":8,"162":1,"163":2,"164":6,"167":2,"168":4,"169":3,"170":1,"171":1}}],["itererable",{"2":{"161":1}}],["iter",{"2":{"133":31}}],["iterate",{"2":{"40":2,"131":1,"133":5}}],["iteration",{"2":{"37":1}}],["iterators",{"2":{"13":1,"40":1,"45":5,"47":3,"53":1,"57":2,"121":1,"133":11,"140":6,"147":1}}],["iterator",{"2":{"6":2,"45":4,"53":2,"128":2,"133":2}}],["iterabletype",{"2":{"133":10}}],["iterable",{"2":{"4":1,"6":3,"18":1,"37":1,"47":1,"128":1,"133":37,"163":1}}],["iterables",{"2":{"1":2,"6":2,"22":1,"133":6}}],["ith",{"2":{"45":3,"57":7}}],["itself",{"2":{"47":1,"120":1,"131":1}}],["its",{"2":{"5":1,"6":10,"18":1,"36":1,"40":1,"45":2,"47":4,"57":1,"72":1,"128":1,"133":1,"134":1,"150":1,"151":1,"152":1,"153":3,"168":1}}],["it",{"2":{"1":4,"4":1,"6":19,"9":1,"18":11,"19":2,"20":1,"22":1,"29":3,"30":1,"32":1,"33":1,"36":2,"37":3,"39":1,"41":1,"44":2,"45":2,"46":1,"47":2,"51":1,"52":1,"53":1,"54":4,"56":1,"57":3,"60":3,"66":1,"68":2,"71":3,"85":3,"91":14,"96":1,"97":1,"102":2,"112":3,"119":1,"120":2,"121":4,"124":1,"125":1,"126":3,"128":3,"131":3,"132":1,"133":15,"134":1,"136":1,"138":1,"142":5,"145":2,"146":1,"150":1,"152":1,"157":1,"158":2,"159":1,"160":7,"164":3,"165":3,"167":3,"170":2,"171":2}}],["iff",{"2":{"133":1}}],["if",{"0":{"55":1},"2":{"1":5,"3":17,"4":19,"5":1,"6":73,"18":1,"22":2,"32":1,"33":15,"36":1,"37":6,"40":5,"41":3,"44":1,"45":95,"47":36,"50":8,"51":13,"52":12,"53":9,"54":44,"56":10,"57":22,"59":2,"60":8,"62":1,"63":1,"65":2,"66":35,"68":1,"69":2,"71":4,"72":3,"73":3,"74":2,"75":1,"76":1,"78":1,"79":1,"80":9,"82":1,"83":3,"85":5,"86":4,"87":2,"88":2,"89":1,"90":1,"91":132,"93":1,"94":1,"96":4,"97":16,"99":1,"100":2,"102":4,"103":3,"104":2,"105":2,"106":1,"107":1,"109":1,"110":2,"112":5,"113":3,"114":3,"115":1,"116":1,"117":1,"120":5,"121":35,"125":1,"128":1,"131":1,"133":21,"135":1,"136":2,"137":1,"138":1,"140":12,"141":1,"142":3,"143":2,"146":6,"147":2,"150":1,"152":12,"154":12,"155":1,"156":1,"159":1,"160":2,"164":1,"167":1,"169":2,"170":1}}],["isolate",{"2":{"150":1}}],["isodd",{"2":{"50":1}}],["istable",{"2":{"133":2}}],["isequal",{"2":{"121":1}}],["iseven",{"2":{"91":1}}],["isempty",{"2":{"37":1,"40":4,"47":1,"51":1,"52":2,"53":1,"121":1,"135":1,"152":1}}],["isparallel",{"2":{"91":1,"120":8}}],["is3d",{"2":{"66":1,"133":1,"141":1,"155":1,"156":1,"161":10}}],["issue",{"2":{"45":1}}],["issues",{"2":{"25":1,"27":1}}],["isa",{"2":{"18":1,"40":9,"133":4,"161":1}}],["isnothing",{"2":{"41":1,"45":9,"50":1,"52":2,"54":2,"57":2,"66":1,"121":1,"143":1,"146":1,"150":1,"151":1,"152":5,"153":1,"154":6}}],["isn",{"2":{"6":1,"37":1,"45":4,"47":1,"50":1,"52":1,"54":3,"57":2,"60":3,"66":1,"68":1,"91":9,"97":1,"150":1,"160":1}}],["isconcave",{"0":{"120":1},"2":{"0":1,"6":2,"118":1,"120":3}}],["isclockwise",{"0":{"119":1},"2":{"0":1,"6":2,"47":1,"118":1,"120":5,"121":2}}],["is",{"0":{"25":1,"32":1,"36":2,"43":1,"46":1,"49":1,"59":2,"62":1,"65":1,"68":1,"78":1,"82":1,"93":1,"96":1,"99":1,"109":1,"131":1},"2":{"0":1,"1":10,"3":8,"4":43,"5":1,"6":105,"9":3,"11":1,"13":1,"14":1,"18":3,"19":1,"20":1,"22":3,"23":2,"25":2,"27":2,"32":1,"33":19,"36":7,"37":19,"38":2,"39":2,"40":15,"41":3,"43":2,"44":5,"45":82,"46":3,"47":22,"49":1,"50":2,"51":4,"52":13,"53":4,"54":40,"56":7,"57":20,"59":8,"60":23,"62":2,"63":3,"66":13,"68":4,"69":4,"71":7,"72":3,"73":3,"74":1,"75":1,"76":1,"79":3,"80":3,"82":1,"83":5,"85":9,"86":4,"87":2,"88":1,"89":1,"90":1,"91":91,"94":2,"96":3,"97":12,"100":4,"102":2,"109":4,"110":5,"112":8,"113":3,"114":3,"115":1,"116":2,"117":1,"119":2,"120":7,"121":11,"122":1,"123":7,"124":2,"125":1,"126":2,"128":1,"131":3,"132":1,"133":24,"134":3,"135":2,"136":1,"138":4,"139":1,"140":2,"141":1,"142":7,"143":2,"144":3,"145":3,"146":9,"147":6,"149":1,"150":4,"151":1,"152":2,"153":1,"155":2,"157":1,"158":1,"159":1,"160":3,"163":4,"164":5,"165":3,"166":1,"167":3,"168":2,"169":5,"170":2}}],["cpu",{"2":{"170":1}}],["cy",{"2":{"120":2}}],["cyan",{"2":{"41":1,"143":1,"146":1}}],["cx",{"2":{"120":2}}],["cdot",{"2":{"120":1}}],["cs",{"2":{"91":9}}],["cshape",{"2":{"43":3}}],["cw",{"2":{"47":2}}],["cb",{"2":{"39":1,"121":1}}],["cgrad",{"2":{"39":1}}],["cgal",{"2":{"39":1}}],["c",{"2":{"37":1,"43":1,"47":4,"50":5,"55":3,"91":24,"146":1}}],["chunks",{"2":{"133":8}}],["chunk",{"2":{"133":12}}],["choose",{"2":{"121":2}}],["chose",{"2":{"24":1,"121":1}}],["changes",{"2":{"45":1}}],["changed",{"2":{"45":1}}],["change",{"2":{"24":1,"45":1}}],["chain=2",{"2":{"45":1}}],["chain=1",{"2":{"45":1}}],["chain",{"2":{"45":66,"52":3,"54":4,"57":4}}],["chains",{"2":{"20":1,"45":1}}],["chairmarks",{"2":{"13":1,"146":1,"150":1}}],["children",{"2":{"150":1}}],["child",{"2":{"6":2,"128":2,"133":7}}],["checkargs",{"2":{"151":1,"152":1,"153":1,"154":1}}],["checking",{"2":{"66":1,"152":1}}],["checks",{"0":{"80":1,"92":1},"1":{"93":1,"94":1},"2":{"41":1,"45":1,"54":1,"62":1,"65":1,"68":1,"78":1,"82":1,"91":5,"93":1,"96":1,"97":1,"99":1,"109":1,"169":1}}],["check",{"2":{"4":1,"6":1,"7":1,"44":1,"45":8,"47":3,"50":1,"51":1,"54":4,"55":1,"56":1,"66":8,"91":11,"121":5,"128":3,"129":1,"137":1,"139":1,"145":2,"152":1,"154":1}}],["checked",{"2":{"4":1,"6":1,"45":1,"54":1,"91":1,"137":1}}],["clear",{"2":{"46":1}}],["clearly",{"2":{"32":1,"36":1,"59":1}}],["clamped",{"2":{"54":18}}],["clamp",{"2":{"33":1,"54":1}}],["classified",{"2":{"45":1}}],["classify",{"2":{"45":4}}],["class",{"2":{"6":1,"121":1}}],["clipping",{"0":{"45":1,"51":1,"52":1,"54":1,"56":1,"57":1},"2":{"6":1,"9":1,"34":8,"45":9,"50":3,"51":1,"53":1,"56":1,"138":1}}],["closure",{"2":{"133":2}}],["closing",{"2":{"33":1}}],["close",{"2":{"33":5,"45":2,"47":1,"50":1,"54":1,"60":9,"121":1,"124":1,"125":4}}],["closest",{"2":{"4":3,"6":3,"54":2,"59":1,"60":6}}],["closed2",{"2":{"66":2}}],["closed1",{"2":{"66":2}}],["closed",{"0":{"123":1},"1":{"124":1,"125":1},"2":{"4":4,"6":11,"9":1,"33":6,"34":1,"37":3,"44":3,"45":1,"47":1,"54":1,"57":3,"66":21,"71":2,"72":5,"73":5,"85":2,"86":5,"87":3,"91":52,"103":5,"104":1,"112":3,"113":5,"114":5,"120":1,"121":1,"123":1,"124":1,"125":2,"134":1,"136":1,"163":1}}],["closedring",{"2":{"0":1,"6":1,"123":1,"124":1,"125":4,"134":1,"135":1,"136":1}}],["clockwise",{"2":{"4":1,"6":4,"9":1,"36":1,"37":1,"47":7,"119":2,"120":3,"121":1}}],["ceil",{"2":{"147":1}}],["ce",{"2":{"91":11}}],["certainly",{"2":{"54":1}}],["certain",{"2":{"17":1,"18":1,"26":1,"29":1}}],["central",{"2":{"45":1}}],["centroids",{"2":{"43":1,"44":1}}],["centroid",{"0":{"42":1,"43":1},"1":{"43":1,"44":1},"2":{"0":4,"4":2,"6":6,"34":1,"42":3,"43":4,"44":38,"126":1,"150":4}}],["cent",{"2":{"43":2}}],["centered",{"2":{"45":1}}],["center",{"2":{"6":1,"43":1,"121":1}}],["cells",{"2":{"121":1}}],["cell",{"2":{"6":4,"46":3,"47":28,"121":2}}],["c2",{"2":{"6":3,"15":2,"60":3,"66":14,"121":21}}],["c1",{"2":{"6":3,"15":2,"60":4,"66":13,"121":26}}],["ctor",{"2":{"1":1,"6":1,"155":1}}],["ca96624a56bd078437bca8184e78163e5039ad19",{"2":{"150":1}}],["categorize",{"2":{"50":1}}],["categorical",{"2":{"39":1}}],["came",{"2":{"50":1}}],["case",{"2":{"33":1,"38":2,"44":1,"45":1,"51":1,"54":2,"57":1,"91":16,"133":1,"171":1}}],["cases",{"2":{"6":1,"40":1,"50":2,"91":3,"131":1,"133":5}}],["cause",{"2":{"18":1,"23":1,"152":1}}],["careful",{"2":{"40":1,"131":1}}],["care",{"2":{"17":1}}],["carried",{"2":{"6":1,"160":1}}],["cairomakie",{"2":{"13":1,"32":1,"36":1,"39":2,"43":1,"46":1,"49":1,"59":1,"62":1,"65":1,"68":1,"78":1,"82":1,"93":1,"96":1,"99":1,"109":1,"145":1,"146":1,"150":1,"162":1,"169":1,"170":1}}],["california",{"2":{"170":1}}],["callable",{"2":{"121":4,"135":1}}],["calling",{"2":{"45":2,"133":1}}],["calls",{"2":{"45":1,"54":1,"57":1,"60":1,"69":1,"83":1,"100":1,"110":1,"131":1,"133":1,"147":1}}],["call",{"2":{"18":1,"24":1,"37":1,"44":1,"133":4,"148":1}}],["called",{"2":{"6":2,"44":3,"45":1,"125":1,"133":1,"135":1,"136":1,"160":1,"164":1}}],["calculation",{"2":{"54":1}}],["calculations",{"2":{"6":1,"25":2,"27":2,"54":1,"146":1}}],["calculating",{"2":{"4":1,"6":1,"18":1,"45":1,"137":1}}],["calculated",{"2":{"6":1,"43":2,"47":1,"54":2,"60":1,"133":4}}],["calculates",{"2":{"4":2,"6":6,"37":1,"40":2,"47":1,"54":2,"56":1,"60":2,"146":1,"153":1}}],["calculate",{"2":{"1":2,"5":1,"6":6,"11":1,"33":3,"40":3,"44":1,"47":1,"54":1,"91":1,"121":1,"130":1,"133":3}}],["calc",{"2":{"1":2,"6":4,"24":1,"33":4,"130":1,"132":1,"133":15,"137":1,"150":2,"159":1}}],["cache",{"2":{"6":1,"40":1}}],["cant",{"2":{"66":1,"121":1,"161":1}}],["cannot",{"2":{"3":3,"4":2,"6":5,"37":1,"66":1,"71":1,"74":1,"97":2,"100":1,"102":2,"104":1,"115":1}}],["can",{"2":{"1":1,"4":2,"6":16,"7":2,"9":1,"13":1,"14":1,"24":1,"26":1,"33":1,"34":1,"37":1,"38":2,"39":1,"40":3,"41":1,"44":1,"45":3,"47":1,"51":3,"53":3,"54":1,"56":3,"57":1,"62":1,"65":1,"66":3,"68":1,"80":1,"82":1,"91":23,"93":2,"96":2,"97":3,"99":1,"103":1,"104":1,"109":1,"112":1,"113":1,"114":1,"121":1,"122":1,"124":2,"125":1,"126":1,"128":1,"132":1,"133":7,"136":1,"137":1,"138":2,"139":1,"143":1,"145":1,"146":2,"150":2,"160":1,"163":6,"164":1,"165":3,"167":3,"168":3,"169":3}}],["creation",{"2":{"163":1,"165":1}}],["creating",{"0":{"162":1,"163":1,"166":1},"1":{"163":1,"164":1,"165":1,"166":1,"167":1},"2":{"91":1}}],["creates",{"2":{"7":1,"45":3}}],["create",{"0":{"165":1},"2":{"6":2,"13":2,"14":1,"45":1,"50":1,"54":2,"121":2,"133":1,"136":2,"138":3,"140":2,"162":2,"163":4,"164":5,"165":3,"166":1,"167":1,"169":1}}],["created",{"2":{"4":2,"6":2,"45":1,"60":3}}],["criteria",{"2":{"69":2,"83":2,"100":2,"110":2,"152":3}}],["cropping",{"2":{"39":2}}],["cross=1",{"2":{"53":1}}],["cross`",{"2":{"53":1}}],["crossings",{"2":{"45":3,"91":1}}],["crossing",{"0":{"80":1},"2":{"6":2,"45":81,"51":1,"52":7,"53":3,"54":7,"56":1,"57":6,"69":1,"80":1,"91":1,"110":1}}],["cross",{"0":{"107":1},"2":{"6":1,"9":1,"33":3,"45":13,"50":14,"51":2,"52":1,"53":2,"54":10,"55":4,"56":2,"57":1,"69":1,"80":2,"83":1,"91":17,"97":2,"100":1,"110":1,"120":3}}],["crosses",{"2":{"0":2,"3":2,"6":3,"34":1,"45":1,"50":1,"80":26,"91":2,"168":1}}],["crc",{"2":{"6":1,"40":1}}],["crs2",{"2":{"164":2}}],["crs1",{"2":{"164":2,"165":1}}],["crs`",{"2":{"142":6}}],["crs=nothing",{"2":{"133":1,"137":1,"150":1}}],["crs=gi",{"2":{"133":7}}],["crs",{"0":{"164":1},"2":{"1":16,"4":2,"6":10,"121":10,"130":2,"132":3,"133":27,"137":1,"142":7,"150":1,"162":1,"164":13,"165":7,"167":1}}],["customize",{"2":{"133":2}}],["custom",{"0":{"171":1},"2":{"6":1,"40":1,"171":2}}],["curr^2",{"2":{"33":2}}],["curr",{"2":{"33":8,"45":114,"50":9,"57":3,"140":26}}],["currentnode",{"2":{"121":8}}],["current",{"2":{"33":1,"40":8,"45":3,"50":2,"52":1,"54":1,"57":6,"121":2,"140":3}}],["currently",{"2":{"5":1,"6":3,"23":1,"40":1,"45":1,"50":1,"52":2,"121":1,"133":1}}],["curve",{"0":{"91":1},"2":{"3":1,"4":7,"6":18,"33":6,"37":7,"45":5,"47":3,"53":7,"59":1,"60":22,"66":6,"69":2,"71":4,"72":9,"73":9,"83":1,"85":4,"86":6,"87":3,"91":152,"97":1,"100":1,"103":6,"105":3,"110":1,"112":4,"113":6,"114":6}}],["curves",{"2":{"0":1,"3":1,"6":5,"37":3,"47":3,"54":1,"59":1,"60":1,"66":13,"74":1,"91":1,"97":1,"115":1,"150":2}}],["cutpolygon",{"2":{"49":1}}],["cuts",{"2":{"49":1}}],["cutting",{"0":{"48":1},"1":{"49":1,"50":1},"2":{"45":1,"50":2}}],["cut",{"0":{"49":1},"2":{"0":1,"6":6,"34":1,"40":1,"48":1,"49":5,"50":22,"91":1}}],["cos",{"2":{"163":3,"164":1,"165":2}}],["copy",{"2":{"135":1,"154":1}}],["coors1",{"2":{"120":2}}],["coors2",{"2":{"120":3}}],["coord",{"2":{"147":6}}],["coords",{"2":{"50":9,"147":8}}],["coordinatetransformations",{"2":{"1":2,"6":2,"150":1,"155":2,"162":1,"163":5,"165":2}}],["coordinate",{"0":{"40":1,"141":1,"164":1,"165":1},"2":{"1":4,"5":5,"6":7,"25":1,"27":1,"39":2,"40":10,"133":1,"142":4,"147":1,"162":3,"164":1}}],["coordinates",{"0":{"5":1,"38":1},"1":{"39":1,"40":1},"2":{"0":4,"1":1,"4":2,"5":7,"6":20,"37":2,"38":8,"40":25,"45":2,"46":1,"50":2,"51":1,"53":1,"56":1,"60":1,"66":2,"126":1,"141":2,"142":1,"145":1,"146":3,"164":2}}],["co",{"2":{"91":2}}],["corner",{"2":{"47":4,"121":1}}],["corners",{"2":{"47":1}}],["correspondent",{"2":{"120":1}}],["correspond",{"2":{"45":1}}],["corresponding",{"2":{"33":3,"52":2}}],["correctly",{"2":{"145":1}}],["corrected",{"2":{"135":1}}],["correctness",{"2":{"123":1,"160":1}}],["correcting",{"2":{"20":1,"135":1}}],["corrections",{"0":{"134":1,"136":1},"1":{"135":1,"136":1},"2":{"124":1,"135":6,"139":1}}],["correction",{"2":{"6":10,"34":4,"51":1,"52":2,"53":1,"54":2,"56":1,"57":2,"123":1,"125":2,"134":2,"135":8,"136":7,"138":1,"140":2}}],["correct",{"2":{"6":3,"24":1,"33":1,"37":1,"44":1,"45":1,"47":1,"51":1,"53":1,"56":1,"60":1,"66":1,"69":1,"83":1,"97":1,"100":1,"110":1,"123":1,"124":2,"134":1}}],["cov",{"2":{"47":16}}],["cover",{"2":{"71":1,"75":1}}],["covering",{"2":{"6":2,"78":1,"136":2,"140":2}}],["covered",{"0":{"73":1,"74":1,"114":1},"2":{"3":1,"6":1,"52":1,"57":1,"68":1,"69":1,"73":2,"74":2,"75":1,"76":2,"78":1,"90":2,"91":3,"140":1}}],["coveredby",{"0":{"67":1,"68":1,"71":1,"72":1,"75":1,"76":1,"90":1},"1":{"68":1,"69":1},"2":{"0":2,"3":4,"6":4,"34":1,"45":1,"67":1,"68":3,"69":10,"70":6,"71":13,"72":15,"73":13,"74":5,"75":2,"76":2,"79":3,"168":1}}],["covers",{"0":{"77":1,"78":1},"1":{"78":1,"79":1},"2":{"0":2,"3":5,"6":5,"34":1,"77":1,"78":4,"79":5,"121":1,"168":1}}],["coverages",{"2":{"6":1,"47":1}}],["coverage",{"0":{"46":1},"2":{"0":1,"6":2,"34":1,"46":3,"47":16}}],["code",{"2":{"7":1,"10":1,"26":5,"40":1,"69":1,"83":1,"91":1,"100":1,"110":1,"120":1,"157":1,"159":1,"170":1}}],["coarse",{"2":{"6":1,"144":1,"147":1}}],["colname",{"2":{"133":3}}],["col",{"2":{"133":3}}],["column",{"2":{"22":1,"133":16,"166":2,"168":2}}],["colored",{"2":{"169":1}}],["colors",{"2":{"169":2}}],["color=",{"2":{"164":2}}],["colorrange",{"2":{"39":2,"59":1}}],["colorbar",{"2":{"39":1,"59":1,"121":1}}],["colormap",{"2":{"14":1,"39":3,"59":1}}],["color",{"2":{"6":3,"36":1,"39":2,"40":1,"41":1,"43":1,"49":3,"59":2,"62":4,"65":4,"68":1,"78":1,"82":4,"96":4,"109":4,"143":1,"146":1,"163":1,"164":1,"169":5}}],["collect",{"2":{"11":3,"13":1,"32":1,"36":2,"40":1,"43":1,"46":2,"49":2,"59":1,"121":3,"133":3,"145":4,"161":2}}],["collections",{"0":{"75":1,"76":1,"89":1,"90":1,"106":1,"107":1,"116":1,"117":1},"2":{"1":2,"6":10,"22":1,"132":1,"133":7,"150":2,"167":1}}],["collection",{"2":{"1":1,"4":7,"6":13,"18":2,"29":2,"33":2,"37":3,"47":2,"60":2,"75":2,"76":2,"89":2,"90":2,"106":2,"107":2,"116":2,"117":2,"126":1,"133":3,"150":1,"156":1,"161":1}}],["collinear",{"2":{"3":1,"6":2,"45":5,"51":2,"53":3,"54":12,"56":2,"96":1,"97":2}}],["commonly",{"2":{"167":1}}],["common",{"2":{"65":1,"147":1,"162":1,"164":1,"165":1}}],["commented",{"2":{"120":1}}],["comments",{"2":{"91":1}}],["comment",{"2":{"30":1}}],["combos",{"2":{"52":1,"54":1,"57":1}}],["combines",{"2":{"44":1}}],["combine",{"2":{"44":2,"45":5,"140":1}}],["combined",{"2":{"6":1,"45":4,"57":1,"136":1,"140":2,"163":1}}],["combination",{"2":{"6":1,"45":1,"128":1,"133":1}}],["coming",{"2":{"47":1}}],["com",{"2":{"6":2,"54":1,"150":1}}],["compilation",{"2":{"159":1}}],["compiled",{"2":{"24":1}}],["compiler",{"2":{"24":1,"133":2,"159":2}}],["complex",{"2":{"126":1,"150":1,"168":1}}],["complexity",{"2":{"6":1,"126":1,"147":1}}],["complete",{"2":{"37":1}}],["completely",{"2":{"1":1,"3":4,"6":5,"45":2,"52":1,"57":1,"62":2,"63":1,"69":1,"78":1,"79":1,"91":1,"110":1,"133":1}}],["component",{"2":{"6":1,"37":3,"44":11,"47":8,"54":1,"128":1,"133":3}}],["components",{"2":{"6":2,"43":1,"44":2,"128":2,"133":24}}],["composed",{"2":{"4":4,"6":5,"66":5,"163":2}}],["comprised",{"2":{"6":3,"51":1,"53":1,"56":1}}],["computing",{"2":{"41":1}}],["computational",{"2":{"6":1,"40":1}}],["computation",{"2":{"6":6,"40":1,"44":1,"51":1,"53":1,"56":1,"151":2,"152":2,"153":2}}],["computer",{"2":{"6":1,"40":1}}],["compute",{"2":{"4":1,"6":1,"37":1,"40":1,"147":1}}],["computed",{"2":{"4":4,"6":5,"33":1,"37":3,"40":3,"47":1}}],["compact",{"2":{"170":3}}],["comparisons",{"2":{"168":1}}],["comparing",{"2":{"57":1,"66":1}}],["compares",{"2":{"121":1}}],["compared",{"2":{"66":1}}],["compare",{"2":{"3":1,"4":1,"6":2,"33":1,"57":1,"66":2,"97":1}}],["compatibility",{"2":{"37":1}}],["compatible",{"2":{"1":3,"6":1,"22":1,"25":1,"27":1,"33":1,"37":1,"40":2,"44":1,"47":1,"60":1,"63":1,"66":1,"69":1,"79":1,"83":1,"94":1,"97":1,"100":1,"110":1,"131":1,"133":1,"142":2}}],["couple",{"2":{"166":1}}],["course",{"2":{"132":1}}],["country",{"2":{"170":8}}],["countries",{"2":{"11":1,"150":1}}],["counted",{"2":{"54":2}}],["counters",{"2":{"40":8}}],["counter",{"2":{"6":1,"45":7,"91":1,"119":1,"120":1}}],["counterclockwise",{"2":{"4":1,"6":1,"9":1,"36":2,"37":1}}],["count",{"2":{"45":16,"121":1,"154":1}}],["couldn",{"2":{"9":1,"159":1}}],["could",{"2":{"4":1,"6":1,"37":3,"54":4,"57":1,"60":1,"91":2,"142":1}}],["conditions",{"2":{"168":1}}],["connected",{"2":{"91":5}}],["connect",{"2":{"47":11}}],["connecting",{"2":{"33":1,"152":1,"163":2}}],["connections",{"2":{"6":2,"136":2,"140":2}}],["convention",{"2":{"43":1}}],["convenience",{"2":{"40":1,"160":1}}],["convexhull",{"2":{"122":1}}],["convex",{"2":{"33":3,"120":1}}],["conversely",{"2":{"45":1}}],["conversion",{"0":{"156":1},"2":{"22":1}}],["converted",{"2":{"22":1,"40":3}}],["converts",{"2":{"6":1,"161":1}}],["convert",{"0":{"70":1,"84":1,"101":1,"111":1},"2":{"6":3,"40":6,"59":1,"121":2,"146":1,"150":3,"156":1,"160":1,"161":1}}],["context",{"2":{"146":4,"164":2}}],["contents",{"2":{"123":1,"133":1}}],["contours",{"2":{"121":1}}],["contour",{"2":{"121":4}}],["continue",{"2":{"37":1,"45":7,"47":1,"52":2,"54":1,"91":1,"135":1,"140":3,"154":1,"170":1}}],["contributions",{"2":{"25":1,"27":1}}],["controlled",{"2":{"24":1}}],["control",{"2":{"23":1}}],["containing",{"2":{"46":1,"169":1}}],["contain",{"2":{"3":1,"6":1,"26":1,"57":1,"62":1,"97":1,"163":1}}],["contained",{"2":{"3":1,"6":1,"9":1,"57":4,"63":1,"78":1,"96":1,"97":1,"133":1,"169":1}}],["contains",{"0":{"61":1,"62":1},"1":{"62":1,"63":1},"2":{"0":2,"3":4,"6":4,"26":1,"34":1,"45":1,"57":1,"61":1,"62":5,"63":4,"131":1,"139":1,"168":1,"169":1}}],["constprop",{"2":{"80":1}}],["constants",{"2":{"45":1}}],["const",{"2":{"34":4,"45":1,"69":4,"83":3,"100":4,"110":4,"130":3,"133":1,"150":4}}],["constrained",{"2":{"6":3,"51":1,"53":1,"56":1}}],["constructing",{"2":{"165":1}}],["construct",{"2":{"158":1}}],["constructors",{"2":{"6":2,"158":2}}],["constructed",{"2":{"1":1,"20":1,"142":1}}],["consistent",{"2":{"45":1,"126":1}}],["consistency",{"2":{"22":1}}],["considered",{"2":{"33":1,"40":1}}],["consider",{"2":{"32":1,"36":1,"43":1,"46":1,"47":3,"49":1,"59":2,"62":1,"65":1,"68":1,"78":1,"82":1,"91":3,"93":1,"96":1,"99":1,"109":1}}],["concepts",{"0":{"28":1},"1":{"29":1,"30":1},"2":{"26":1}}],["concieve",{"2":{"9":1}}],["concavehull",{"2":{"122":1}}],["concave",{"2":{"6":1,"33":2,"43":2,"120":2}}],["vw",{"2":{"150":3}}],["von",{"2":{"121":1}}],["v2",{"2":{"91":9}}],["v1",{"2":{"91":9}}],["v`",{"2":{"40":2}}],["vcat",{"2":{"33":1,"40":1,"133":1}}],["vararg",{"2":{"40":1}}],["vary",{"2":{"33":1}}],["variables",{"2":{"24":1,"40":8,"63":1,"79":1,"94":1}}],["variable",{"2":{"24":1,"52":2}}],["vals",{"2":{"152":9}}],["valign",{"2":{"150":1}}],["validated",{"2":{"52":2,"54":2,"57":2}}],["validate",{"2":{"9":1}}],["valid",{"2":{"1":1,"6":8,"44":1,"51":2,"53":2,"54":3,"56":2,"121":1,"123":3,"124":1,"138":1,"139":1,"154":1,"155":1}}],["val",{"2":{"33":2,"45":2,"54":8,"91":30,"97":4}}],["values=",{"2":{"121":2}}],["values=sort",{"2":{"121":1}}],["values",{"2":{"1":1,"5":3,"6":16,"33":2,"39":3,"40":40,"44":2,"45":5,"47":5,"54":1,"60":2,"91":4,"121":19,"133":2,"152":2,"154":1,"159":1}}],["value",{"2":{"0":1,"4":7,"5":2,"6":15,"14":1,"24":1,"33":1,"36":2,"37":4,"40":45,"45":5,"47":2,"54":7,"59":1,"60":3,"121":6,"152":11,"160":2,"168":1}}],["vs",{"0":{"15":1},"2":{"12":1,"54":2}}],["vᵢ",{"2":{"6":1}}],["v0",{"2":{"6":2}}],["v",{"2":{"5":2,"6":6,"14":4,"40":23,"60":8}}],["visvalingam",{"2":{"148":1}}],["visvalingamwhyatt",{"0":{"153":1},"2":{"0":1,"6":3,"150":4,"153":5}}],["visualized",{"2":{"124":1}}],["visualize",{"2":{"93":1,"164":1}}],["visa",{"2":{"45":1}}],["visited",{"2":{"45":4}}],["view",{"2":{"45":2,"121":1,"140":1,"152":3,"170":1}}],["viewport",{"2":{"14":1}}],["views",{"2":{"1":1,"45":1,"56":1,"142":1}}],["via",{"2":{"6":1,"41":1,"122":1,"143":1,"146":1,"160":2}}],["vect",{"2":{"133":2}}],["vectypes",{"2":{"40":5}}],["vector",{"2":{"1":12,"4":6,"5":1,"6":46,"18":1,"23":1,"29":1,"32":1,"33":10,"40":14,"45":7,"50":6,"51":4,"52":1,"53":2,"54":3,"56":4,"91":1,"97":2,"120":3,"121":4,"124":8,"125":1,"126":1,"133":6,"139":22,"144":1,"145":1,"147":1,"150":1,"151":1,"152":4,"153":1,"154":2,"155":10,"161":15,"163":18,"164":6,"165":9}}],["vectors",{"2":{"1":1,"4":2,"6":5,"22":1,"33":4,"40":3,"45":1,"60":1,"119":1,"121":1,"133":2,"150":1}}],["ve",{"2":{"17":1,"147":1}}],["vein",{"2":{"7":1}}],["version",{"2":{"160":1}}],["versa",{"2":{"45":1}}],["vert",{"2":{"154":21}}],["verts",{"2":{"150":2}}],["vertical",{"2":{"39":1,"47":1,"54":1,"121":1}}],["vertices",{"2":{"6":7,"9":1,"38":4,"40":5,"45":1,"50":2,"71":1,"73":5,"82":1,"85":3,"88":1,"91":1,"112":1,"124":1,"144":2,"145":1,"146":3,"147":3,"150":1,"153":1}}],["vertex",{"2":{"5":1,"6":2,"33":1,"38":2,"40":2,"45":19,"54":12,"71":2,"86":2,"87":1,"91":1,"112":3}}],["very",{"2":{"0":1,"145":1,"170":2}}],["ty",{"2":{"121":3}}],["typing",{"2":{"41":1,"143":1,"146":1}}],["typically",{"2":{"38":1,"166":1}}],["typemax",{"2":{"60":1,"121":9}}],["typeof",{"2":{"19":1,"40":3,"133":2,"158":1,"171":1}}],["type2",{"2":{"6":2,"66":4}}],["type1",{"2":{"6":2,"66":5}}],["types",{"0":{"129":1,"157":1},"1":{"158":1,"159":1,"160":1},"2":{"6":4,"23":1,"24":1,"34":1,"40":3,"47":1,"50":1,"91":3,"150":1,"157":3,"159":1,"168":1}}],["type",{"2":{"4":11,"5":1,"6":61,"11":1,"22":2,"23":1,"24":2,"30":2,"33":9,"37":11,"39":1,"40":8,"44":8,"45":21,"47":8,"50":6,"51":7,"52":6,"53":8,"54":19,"56":7,"57":5,"60":28,"66":2,"128":2,"133":42,"134":1,"135":6,"136":6,"141":1,"146":1,"147":1,"150":3,"156":1,"158":3,"159":5,"160":1,"161":3}}],["tx",{"2":{"121":3}}],["tᵢ",{"2":{"40":1}}],["temporary",{"2":{"45":1}}],["term",{"2":{"37":1}}],["terms",{"2":{"6":1,"40":1}}],["teach",{"2":{"26":1}}],["technically",{"2":{"23":1,"123":1}}],["technique",{"2":{"11":1}}],["tell",{"2":{"18":1,"91":1,"159":1,"171":1}}],["test",{"2":{"45":1,"150":2,"160":1}}],["testing",{"0":{"15":1}}],["tests",{"2":{"9":2}}],["tutorial",{"2":{"162":1,"168":1}}],["tutorials",{"2":{"26":2}}],["tups",{"2":{"125":4}}],["tuplepoint",{"2":{"34":3,"161":1}}],["tuple",{"0":{"156":1},"2":{"4":1,"6":19,"34":2,"40":2,"44":3,"45":5,"47":3,"50":1,"54":31,"91":17,"120":2,"121":5,"124":6,"133":2,"139":13,"145":1,"150":2,"152":1,"154":2,"161":6,"163":99,"169":2}}],["tuples",{"2":{"0":1,"6":2,"34":1,"41":1,"44":1,"45":1,"50":1,"51":3,"52":1,"53":2,"54":1,"56":4,"57":5,"125":2,"140":2,"150":2,"156":2,"170":2}}],["turf",{"2":{"120":1}}],["turned",{"2":{"121":1,"133":1}}],["turning",{"2":{"121":8}}],["turn",{"2":{"6":1,"121":1}}],["t2",{"2":{"6":5,"40":47,"70":1,"80":2,"101":1,"111":1}}],["t1",{"2":{"6":6,"40":51,"80":2}}],["t=float64",{"2":{"4":1,"6":3,"44":3}}],["two",{"2":{"3":5,"4":10,"6":23,"23":2,"33":2,"36":1,"40":1,"44":1,"45":6,"47":3,"51":2,"53":1,"54":14,"56":4,"57":3,"60":5,"62":2,"63":1,"65":3,"66":12,"68":1,"78":1,"79":1,"80":1,"82":1,"91":2,"93":2,"94":2,"96":4,"97":5,"99":3,"100":1,"109":2,"121":3,"135":2,"136":1,"139":2,"140":2,"145":1,"160":1,"163":1,"168":3,"169":3}}],["task",{"2":{"133":6}}],["tasks",{"2":{"133":10}}],["taskrange",{"2":{"133":10}}],["tags",{"2":{"45":4}}],["taget",{"2":{"6":2}}],["taylor",{"2":{"6":1,"40":1}}],["table2",{"2":{"168":1}}],["table1",{"2":{"168":3}}],["tables",{"2":{"22":4,"34":1,"133":11}}],["table",{"0":{"166":1},"2":{"6":1,"18":1,"29":2,"133":12,"150":1,"166":1,"167":1,"168":1}}],["taking",{"2":{"6":3,"44":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"138":1}}],["takes",{"2":{"45":3,"168":1}}],["taken",{"2":{"20":1,"39":1}}],["take",{"2":{"1":1,"6":2,"29":1,"45":3,"51":1,"52":1,"53":1,"54":1,"57":1,"120":2,"121":2,"126":1,"142":1}}],["target=nothing",{"2":{"51":1,"53":1,"56":1}}],["target=gi",{"2":{"45":1}}],["targets",{"2":{"23":1,"33":2,"37":3,"47":3,"60":3}}],["target",{"0":{"23":1},"2":{"1":14,"6":28,"15":3,"22":2,"23":2,"40":1,"44":2,"45":1,"51":5,"52":11,"53":6,"54":10,"56":4,"57":13,"121":1,"126":1,"128":4,"131":5,"132":1,"133":142,"140":2,"142":3,"150":2,"158":3}}],["tilted",{"2":{"47":1}}],["tie",{"2":{"33":1}}],["timings",{"2":{"13":5}}],["timing",{"2":{"13":2}}],["times",{"2":{"4":1,"6":1,"137":1}}],["time",{"2":{"1":5,"13":3,"24":1,"39":1,"121":1,"142":4,"160":1,"163":1,"164":1,"165":2,"169":1,"170":1}}],["title",{"2":{"13":2,"39":2,"121":1,"146":1,"150":2}}],["tip",{"2":{"1":1,"5":1,"6":1,"40":1,"142":1,"168":1}}],["tree",{"2":{"168":1}}],["treating",{"2":{"150":1}}],["treated",{"2":{"91":5,"163":1}}],["treats",{"2":{"37":1,"60":1}}],["trials",{"2":{"146":2,"150":2}}],["triangles",{"2":{"38":1}}],["triangle",{"2":{"6":1,"38":4,"153":4,"169":1}}],["trivially",{"2":{"126":1}}],["try",{"2":{"55":3,"121":1,"131":1,"133":9,"170":1}}],["tr",{"2":{"37":3}}],["trues",{"2":{"140":3}}],["true",{"0":{"24":1},"2":{"1":5,"3":25,"4":3,"6":42,"33":7,"37":1,"39":2,"41":1,"45":30,"47":6,"50":1,"51":1,"52":2,"53":1,"54":1,"56":2,"57":3,"60":4,"62":1,"63":1,"66":21,"68":2,"69":6,"71":1,"72":1,"73":4,"75":1,"76":1,"78":2,"79":1,"80":9,"82":2,"83":2,"85":1,"86":1,"87":3,"89":1,"90":1,"91":78,"93":3,"94":1,"96":2,"97":18,"99":2,"100":6,"103":1,"104":1,"106":1,"107":1,"109":2,"110":7,"112":1,"113":1,"114":4,"116":1,"117":1,"120":4,"121":5,"133":8,"140":1,"143":1,"146":1,"150":1,"159":2,"168":1,"171":1}}],["traditional",{"2":{"121":1}}],["traverse",{"2":{"45":1}}],["traced",{"2":{"45":1}}],["traces",{"2":{"45":1}}],["trace",{"2":{"45":2,"51":1,"53":1,"56":1}}],["track",{"2":{"45":3,"140":2}}],["tracing",{"2":{"6":1,"45":4,"47":1,"52":5,"54":2,"57":2}}],["transverse",{"2":{"164":1}}],["translate",{"2":{"39":2}}],["translation",{"2":{"1":2,"6":2,"150":2,"155":2,"163":3,"165":1}}],["transformations",{"2":{"34":10}}],["transformation",{"0":{"155":1},"2":{"6":1,"121":1,"134":1,"142":1,"162":1}}],["transform",{"2":{"0":2,"1":6,"6":3,"15":2,"34":1,"126":1,"142":2,"150":1,"155":4,"163":4,"165":1}}],["trait`",{"2":{"133":1}}],["trait2",{"2":{"60":10,"66":2,"85":2,"86":2,"97":2,"102":2,"104":2,"105":2}}],["trait1",{"2":{"60":12,"66":2,"85":2,"86":2,"97":2,"102":2,"104":2,"105":2}}],["traits",{"2":{"6":2,"18":1,"97":1,"131":2,"135":2,"150":2,"158":3}}],["trait",{"2":{"1":5,"3":2,"4":2,"6":17,"18":7,"20":1,"22":1,"33":2,"34":1,"37":5,"40":6,"44":7,"47":2,"50":3,"51":2,"52":2,"53":6,"54":4,"56":2,"57":2,"60":7,"66":11,"69":3,"80":2,"83":3,"91":4,"97":10,"100":3,"110":3,"120":1,"126":1,"128":2,"131":3,"133":49,"135":9,"136":1,"147":1,"150":2,"158":8,"161":7,"163":1}}],["traittarget",{"0":{"158":1},"2":{"0":1,"1":2,"6":8,"33":1,"37":1,"44":1,"47":1,"51":2,"52":4,"53":3,"54":4,"56":2,"57":4,"60":1,"126":2,"129":1,"133":10,"147":1,"150":1,"157":1,"158":20}}],["thus",{"2":{"33":1,"37":1,"45":3,"52":1,"54":1,"57":1}}],["those",{"2":{"33":1,"45":1,"54":1,"71":1,"112":1}}],["though",{"2":{"20":1,"124":1}}],["thing",{"0":{"30":1}}],["things",{"2":{"9":1}}],["this",{"0":{"30":1},"2":{"0":1,"1":1,"3":1,"4":6,"5":1,"6":27,"7":1,"18":1,"23":3,"24":2,"25":2,"27":2,"29":1,"32":2,"33":6,"34":1,"36":2,"37":9,"39":3,"40":11,"41":2,"43":1,"44":4,"45":26,"46":1,"47":4,"49":1,"50":5,"52":1,"54":5,"55":1,"56":1,"57":2,"59":4,"60":6,"62":1,"63":2,"66":4,"68":3,"69":3,"76":1,"78":1,"79":2,"80":1,"83":3,"90":1,"91":3,"94":2,"96":1,"97":4,"100":3,"107":1,"109":1,"110":3,"117":1,"119":1,"120":3,"121":8,"122":2,"123":3,"125":3,"126":2,"131":2,"133":17,"134":1,"135":6,"136":7,"137":2,"138":4,"140":3,"141":2,"142":4,"143":3,"144":3,"145":5,"146":5,"147":4,"148":2,"150":3,"154":9,"155":1,"156":1,"157":3,"158":2,"159":3,"160":2,"161":1,"162":1,"163":2,"164":4,"165":3,"166":3,"167":1,"168":3,"169":3,"170":3,"171":1}}],["three",{"2":{"26":1,"38":1,"54":1}}],["thread",{"2":{"133":6}}],["threading",{"0":{"133":1},"2":{"133":7,"159":1}}],["threads",{"2":{"1":1,"6":1,"133":10}}],["threaded=",{"2":{"133":8}}],["threaded=true",{"2":{"133":1}}],["threaded=false",{"2":{"37":1,"44":4,"47":2,"60":8,"133":2,"137":1,"150":1}}],["threaded==true",{"2":{"1":1,"6":1,"133":1}}],["threaded",{"2":{"1":3,"4":1,"6":7,"24":1,"33":2,"37":1,"44":3,"47":3,"60":5,"130":1,"133":47,"137":1,"147":6,"150":1,"159":2}}],["through",{"2":{"6":4,"33":1,"40":1,"45":3,"47":1,"49":1,"50":2,"69":1,"91":5,"110":1,"121":1,"131":1,"133":1,"136":2,"140":2,"152":1,"160":1,"163":1}}],["thrown",{"2":{"131":1}}],["throws",{"2":{"6":1,"160":1}}],["throw",{"2":{"4":1,"6":1,"57":1,"66":1,"121":1,"133":5}}],["than",{"2":{"1":1,"3":1,"6":11,"11":1,"45":2,"71":1,"80":1,"97":1,"112":1,"120":1,"121":2,"132":1,"133":1,"136":2,"138":1,"139":1,"140":2,"144":1,"146":2,"147":1,"151":1,"160":2}}],["that",{"2":{"1":1,"3":3,"4":8,"6":43,"9":1,"17":1,"18":4,"19":3,"20":1,"22":3,"25":1,"26":1,"27":1,"33":4,"36":2,"37":4,"40":4,"41":2,"43":2,"44":3,"45":17,"46":3,"47":5,"51":4,"52":5,"53":4,"54":14,"56":3,"57":5,"60":2,"62":4,"63":1,"65":1,"66":11,"68":2,"69":1,"79":1,"82":1,"83":1,"91":3,"93":1,"94":1,"96":2,"97":10,"99":2,"100":2,"102":2,"109":3,"110":1,"112":3,"120":1,"121":4,"123":3,"124":2,"125":1,"126":1,"128":2,"133":4,"134":3,"135":2,"136":4,"138":2,"139":3,"140":4,"142":1,"144":2,"145":2,"146":3,"147":2,"150":2,"152":1,"154":1,"158":1,"159":1,"160":1,"164":4,"165":1,"166":2,"167":3,"168":1,"169":2}}],["theorem",{"2":{"60":1}}],["themselves",{"2":{"40":1}}],["them",{"2":{"6":1,"25":1,"27":1,"45":1,"121":2,"122":2,"124":2,"128":1,"133":1,"138":1,"139":1,"150":1,"163":1,"165":1,"167":3}}],["thereof",{"2":{"126":1}}],["therefore",{"2":{"59":1,"123":1}}],["there",{"2":{"6":3,"22":1,"33":1,"40":2,"41":1,"45":3,"47":1,"50":2,"52":1,"54":6,"55":1,"57":1,"91":1,"97":2,"121":3,"122":1,"124":1,"126":1,"133":4,"145":1,"154":1,"158":1,"160":1,"164":2,"167":3}}],["then",{"2":{"6":5,"18":1,"22":1,"29":1,"33":3,"40":2,"45":6,"47":1,"51":1,"53":2,"54":6,"55":2,"56":2,"57":2,"91":1,"121":2,"131":1,"133":3,"138":1,"146":2,"150":1,"164":1,"168":1,"169":1}}],["their",{"2":{"3":1,"4":1,"6":2,"40":1,"43":2,"57":1,"60":2,"88":1,"97":1,"99":1,"103":1,"104":1,"113":3,"114":3,"124":1,"126":1,"133":1,"137":1,"139":1}}],["they",{"2":{"3":3,"4":11,"6":25,"20":2,"22":1,"23":1,"24":1,"38":1,"44":2,"45":8,"47":2,"51":2,"53":1,"54":6,"56":2,"57":3,"65":3,"66":16,"69":1,"82":1,"86":2,"87":1,"88":1,"91":2,"93":1,"96":2,"97":4,"102":1,"104":1,"105":1,"113":1,"114":1,"121":6,"123":1,"133":1,"136":2,"140":2,"145":1,"154":1,"157":1,"169":1}}],["these",{"2":{"1":2,"6":5,"24":1,"33":1,"40":5,"45":3,"57":1,"62":1,"65":1,"66":1,"69":1,"78":1,"80":2,"82":1,"83":1,"93":1,"96":1,"97":1,"99":2,"100":1,"109":1,"110":1,"120":1,"121":3,"131":1,"133":2,"142":1,"146":1,"150":2,"160":1,"167":1,"168":1}}],["the",{"0":{"26":1,"29":1,"43":1},"2":{"1":28,"3":64,"4":112,"5":12,"6":393,"7":5,"9":3,"10":1,"11":3,"17":5,"18":10,"19":2,"20":4,"22":4,"23":5,"24":3,"25":3,"26":4,"27":3,"29":3,"32":1,"33":63,"36":12,"37":43,"38":15,"39":12,"40":71,"41":6,"43":6,"44":25,"45":116,"46":7,"47":47,"49":2,"50":7,"51":27,"52":23,"53":27,"54":82,"55":1,"56":29,"57":70,"59":11,"60":81,"62":9,"63":11,"65":5,"66":47,"68":8,"69":25,"72":8,"73":9,"74":3,"75":3,"76":2,"78":4,"79":11,"80":5,"82":2,"83":21,"85":8,"86":6,"87":4,"89":3,"90":2,"91":123,"93":5,"94":6,"96":5,"97":26,"99":5,"100":21,"102":6,"103":10,"104":7,"105":3,"106":3,"107":2,"109":7,"110":24,"112":2,"113":9,"114":9,"115":6,"116":2,"117":2,"119":1,"120":8,"121":47,"122":1,"123":5,"124":5,"125":4,"126":8,"128":4,"130":2,"131":11,"133":85,"134":2,"135":13,"136":10,"137":1,"138":4,"139":8,"140":6,"141":5,"142":14,"143":2,"144":3,"145":5,"146":26,"147":17,"148":3,"150":18,"151":3,"152":6,"153":3,"154":2,"155":3,"156":1,"157":2,"159":5,"160":21,"163":10,"164":11,"165":10,"166":2,"167":4,"168":10,"169":17,"170":3}}],["t",{"2":{"0":1,"4":28,"6":56,"9":1,"23":1,"33":32,"34":8,"37":41,"40":26,"44":38,"45":74,"47":44,"50":18,"51":12,"52":12,"53":12,"54":156,"56":10,"57":20,"60":87,"66":17,"68":1,"86":1,"91":24,"97":1,"99":1,"103":2,"104":1,"121":14,"133":10,"136":2,"140":2,"146":3,"147":5,"150":1,"156":7,"158":14,"159":2,"160":3,"161":10,"163":4,"170":1}}],["tokyo",{"2":{"170":1}}],["toy",{"2":{"168":1}}],["together",{"2":{"54":1,"57":1,"163":1,"169":1}}],["touching",{"0":{"103":1},"2":{"54":1,"57":1}}],["touch",{"0":{"104":1,"105":1,"106":1},"2":{"45":1,"99":1,"102":2,"104":1,"106":1}}],["touches",{"0":{"98":1,"99":1,"102":1},"1":{"99":1,"100":1},"2":{"0":2,"3":3,"6":3,"34":1,"98":1,"99":3,"100":11,"101":6,"102":11,"103":15,"104":9,"105":8,"106":3,"107":4,"168":1}}],["totally",{"2":{"56":1}}],["total",{"2":{"37":1,"40":2,"45":2,"47":1}}],["towards",{"2":{"25":1,"27":1}}],["topright",{"2":{"150":1}}],["topologypreserve",{"2":{"148":1}}],["topology",{"2":{"148":1}}],["top",{"2":{"20":1,"26":1,"45":1,"121":1}}],["took",{"2":{"170":1}}],["tools",{"2":{"17":1}}],["too",{"2":{"6":1,"54":1,"144":1,"147":1}}],["tol^2",{"2":{"151":1,"152":1}}],["tolerances",{"2":{"153":1,"154":29}}],["tolerance",{"2":{"151":1,"152":1,"153":1,"154":17}}],["tol",{"2":{"6":12,"146":2,"150":18,"151":7,"152":15,"153":8,"154":18}}],["todo",{"2":{"3":2,"6":2,"45":1,"54":1,"80":4,"97":1,"121":1,"125":1,"133":1,"150":1,"159":1}}],["to",{"0":{"9":1,"23":1,"26":1,"55":1,"70":1,"84":1,"101":1,"111":1},"2":{"0":2,"1":22,"3":1,"4":33,"5":4,"6":141,"7":2,"9":3,"10":2,"11":2,"13":1,"17":2,"18":9,"19":1,"20":2,"22":3,"23":4,"24":2,"25":3,"26":2,"27":3,"29":4,"30":1,"32":1,"33":8,"36":1,"37":4,"38":4,"39":1,"40":26,"41":2,"43":2,"44":5,"45":32,"46":1,"47":12,"49":1,"50":3,"51":8,"52":4,"53":8,"54":27,"56":7,"57":11,"59":6,"60":32,"62":1,"63":1,"65":2,"66":17,"68":2,"69":7,"78":3,"79":1,"80":2,"82":1,"83":7,"91":21,"93":2,"94":1,"96":3,"97":7,"99":1,"100":7,"102":1,"109":1,"110":7,"120":4,"121":16,"123":2,"124":3,"126":4,"128":4,"130":7,"131":6,"132":1,"133":51,"134":4,"135":8,"136":5,"137":3,"138":3,"139":1,"140":4,"141":1,"142":4,"143":1,"144":3,"145":3,"146":9,"147":7,"148":1,"150":4,"151":1,"152":15,"153":1,"154":2,"155":4,"156":1,"157":2,"158":2,"159":6,"160":9,"161":28,"162":4,"163":6,"164":10,"165":6,"166":7,"167":5,"168":7,"169":5,"170":2,"171":8}}],["rd",{"2":{"150":3}}],["rdbu",{"2":{"59":1}}],["rhumb",{"2":{"120":2}}],["runner",{"2":{"164":1}}],["running",{"2":{"133":3}}],["run",{"2":{"133":8,"170":1}}],["runs",{"2":{"54":2,"119":1}}],["rule",{"2":{"45":1}}],["rules",{"2":{"45":1}}],["right=2",{"2":{"45":1}}],["right",{"2":{"40":1,"45":4,"50":1,"60":1,"120":1,"152":19,"154":5,"163":1,"168":1}}],["ring4",{"2":{"165":2}}],["ring3",{"2":{"164":1}}],["ring2",{"2":{"163":2}}],["ring1",{"2":{"163":2}}],["rings",{"0":{"73":1,"87":1,"104":1,"114":1,"123":1},"1":{"124":1,"125":1},"2":{"4":4,"6":6,"9":2,"37":1,"44":1,"45":3,"54":1,"66":7,"119":1,"121":5,"125":1,"136":1,"150":1}}],["ring",{"2":{"4":7,"6":13,"9":1,"33":3,"34":1,"37":2,"40":1,"43":1,"44":4,"45":12,"47":13,"57":3,"60":5,"66":4,"71":1,"72":2,"73":5,"85":1,"87":1,"91":2,"102":1,"103":1,"104":3,"112":1,"113":2,"114":4,"120":3,"121":11,"123":2,"124":1,"125":14,"134":1,"163":1}}],["rtrees",{"2":{"20":1}}],["r+y",{"2":{"13":2,"14":1}}],["r+x",{"2":{"13":2,"14":1}}],["ry",{"2":{"13":3,"14":3}}],["rx",{"2":{"13":3,"14":3}}],["round",{"2":{"150":1,"152":1,"154":1}}],["routines",{"2":{"11":1}}],["row",{"2":{"133":3}}],["rows",{"2":{"133":2}}],["robust",{"0":{"15":1}}],["rotate",{"2":{"47":1}}],["rotation",{"2":{"1":1,"6":1,"155":1}}],["rotations",{"2":{"1":3,"6":3,"155":3}}],["rotmatrix2d",{"2":{"150":1}}],["rotmatrix",{"2":{"1":1,"6":1,"155":1}}],["r",{"2":{"6":1,"9":1,"13":11,"14":12,"146":1,"154":2,"163":6,"164":2,"165":4}}],["rᵢ₋₁",{"2":{"40":20}}],["rᵢ∗rᵢ₊₁+sᵢ⋅sᵢ₊₁",{"2":{"6":1}}],["rᵢ₊₁",{"2":{"6":1,"40":29}}],["rᵢ",{"2":{"6":2,"40":49}}],["ramer",{"2":{"152":1}}],["raster",{"0":{"121":1},"2":{"121":4}}],["ray",{"2":{"91":4}}],["rawcdn",{"2":{"150":1}}],["raw",{"2":{"18":1}}],["range",{"2":{"13":8,"14":4,"121":1,"133":4}}],["ranges",{"2":{"6":1,"121":2}}],["randomly",{"2":{"169":2}}],["random",{"2":{"150":2}}],["rand",{"2":{"6":1,"121":1,"169":2}}],["rather",{"2":{"6":1,"121":1,"139":1}}],["ratio",{"2":{"6":7,"54":1,"146":1,"150":1,"151":4,"152":6,"153":4,"154":11}}],["radii",{"2":{"6":1,"146":1}}],["radius`",{"2":{"146":1}}],["radius",{"2":{"6":7,"40":13,"146":4}}],["radialdistance",{"0":{"151":1},"2":{"0":1,"6":2,"148":1,"150":4,"151":4}}],["rrayscore",{"2":{"1":1,"6":1,"155":1}}],["rring",{"2":{"1":1,"6":1,"155":1}}],["rewrap",{"2":{"133":3}}],["req",{"2":{"91":44}}],["requirement",{"2":{"123":1,"138":1}}],["requirements",{"2":{"91":5}}],["required",{"2":{"69":3,"83":3,"100":3,"110":3,"145":1,"162":1}}],["require",{"2":{"68":2,"69":6,"83":3,"91":32,"100":3,"110":3}}],["requires",{"2":{"41":1,"62":1,"66":1,"69":2,"72":3,"73":3,"74":1,"83":1,"86":3,"87":2,"88":1,"100":1,"103":3,"104":1,"105":1,"109":1,"110":1,"113":3,"114":3,"115":1,"143":1,"146":1,"160":1}}],["requests",{"2":{"25":1,"27":1}}],["reflected",{"2":{"150":3}}],["ref",{"2":{"59":1}}],["referring",{"2":{"91":1}}],["refer",{"2":{"6":1,"121":1}}],["references",{"2":{"6":1,"40":1}}],["reference",{"0":{"164":1,"165":1},"2":{"0":1,"1":2,"142":2,"162":2,"164":1}}],["reveal",{"2":{"57":1}}],["reveals",{"2":{"57":1}}],["reverse",{"2":{"36":1,"39":1,"40":1,"45":2,"163":2}}],["rev",{"2":{"56":1}}],["render",{"2":{"39":1}}],["rendering",{"2":{"39":3,"40":1}}],["rename",{"2":{"10":1}}],["regardless",{"2":{"54":1,"91":1}}],["regions",{"2":{"52":3,"54":5,"56":1,"57":3,"91":2,"170":1}}],["region",{"2":{"41":2,"54":3,"57":2,"170":1}}],["register",{"2":{"34":3,"40":3}}],["regular",{"0":{"15":1}}],["readable",{"2":{"167":1}}],["readability",{"2":{"45":1}}],["read",{"2":{"150":2,"164":2}}],["reached",{"2":{"133":4}}],["reaches",{"2":{"131":1}}],["reach",{"2":{"131":1}}],["reasons",{"2":{"160":1}}],["reason",{"2":{"24":1,"123":1,"138":1,"159":1}}],["real`",{"2":{"146":1,"147":1}}],["really",{"2":{"37":1,"91":1,"121":1,"159":1}}],["real=1",{"2":{"6":2,"146":2}}],["real=6378137`",{"2":{"146":1}}],["real=6378137",{"2":{"6":2,"146":1}}],["real",{"0":{"170":1},"2":{"5":1,"6":13,"33":1,"40":45,"44":2,"54":1,"146":3,"147":1,"154":5,"168":1}}],["related",{"2":{"126":1}}],["relation",{"2":{"45":2}}],["relations",{"2":{"34":10,"80":1,"97":1}}],["relationship",{"2":{"23":1,"168":2}}],["relative",{"2":{"40":3}}],["relevant",{"2":{"10":1}}],["reducing",{"2":{"133":2}}],["reduced",{"2":{"151":1,"152":1,"153":1}}],["reduces",{"2":{"19":1,"57":1}}],["reduce",{"2":{"1":1,"6":1,"121":1,"133":2,"135":1}}],["redundant",{"2":{"45":1}}],["red",{"2":{"14":1,"43":2,"59":1,"68":1,"78":1,"93":1,"163":1,"164":1,"169":2}}],["removal",{"2":{"45":1}}],["removes",{"2":{"45":1,"126":1}}],["removed",{"2":{"45":3,"52":5,"121":1}}],["remove",{"2":{"37":1,"45":33,"47":1,"50":2,"51":5,"53":5,"56":2,"140":2,"151":1,"152":3,"154":4}}],["removing",{"2":{"6":3,"45":1,"52":1,"151":1,"152":1,"153":1}}],["remainingnode",{"2":{"121":3}}],["remaining",{"2":{"45":1,"66":1,"91":2,"152":1}}],["remain",{"2":{"1":1,"6":9,"133":1,"150":2}}],["resolution",{"2":{"164":1}}],["resolved",{"2":{"121":1}}],["reset",{"2":{"45":1}}],["resize",{"2":{"13":1,"14":1,"45":2}}],["resampled",{"2":{"6":1,"147":1}}],["respectively",{"2":{"45":1,"97":1,"133":1,"163":1}}],["respect",{"2":{"6":2,"53":1,"54":1,"91":6}}],["rest",{"2":{"6":1,"40":2,"56":1}}],["resulting",{"2":{"50":1,"57":1,"121":1,"169":1}}],["results",{"2":{"3":2,"6":2,"54":1,"80":1,"97":1,"124":1,"133":2,"152":25,"163":3}}],["result",{"2":{"1":2,"3":5,"4":5,"6":13,"19":1,"33":1,"37":2,"47":1,"54":15,"60":2,"63":1,"69":1,"79":1,"94":1,"110":1,"133":2,"146":3,"154":6}}],["receives",{"2":{"133":2}}],["recent",{"2":{"45":1,"52":1,"54":1,"57":1}}],["recalculate",{"2":{"132":1}}],["recursive",{"2":{"131":1}}],["recursively",{"2":{"4":1,"6":1,"131":1,"137":1}}],["rect",{"2":{"32":3,"36":5,"46":3,"59":7}}],["rectangle",{"2":{"32":2,"36":2,"39":2,"46":2,"47":1,"59":2,"145":5,"146":8,"169":2}}],["recommended",{"2":{"22":1}}],["reconstructing",{"2":{"150":1}}],["reconstructed",{"2":{"18":1}}],["reconstruct",{"2":{"0":2,"1":1,"6":3,"18":1,"128":2,"133":29}}],["replace",{"2":{"45":1,"121":2,"152":1}}],["replaced",{"2":{"22":1}}],["repl",{"2":{"41":1,"143":1,"146":1}}],["repeat",{"2":{"44":1,"45":3,"66":6}}],["repeating",{"2":{"37":1,"57":1}}],["repeated",{"2":{"4":3,"6":3,"9":1,"33":2,"40":1,"45":2,"57":2,"60":2,"66":4,"91":1}}],["represented",{"2":{"169":1}}],["represent",{"2":{"17":1,"40":1,"45":4,"66":1}}],["representing",{"2":{"6":1,"52":1,"54":1,"57":1,"59":1,"66":1,"170":1}}],["represents",{"2":{"6":1,"135":2,"136":1}}],["reprojects",{"2":{"142":1}}],["reprojection",{"0":{"142":1},"1":{"143":1}}],["reproject",{"2":{"0":1,"1":4,"34":2,"126":1,"142":6,"143":2}}],["re",{"2":{"1":1,"6":1,"17":1,"155":1,"162":1,"164":1}}],["retrievable",{"2":{"1":1,"142":1}}],["returnval",{"2":{"91":9}}],["returntype",{"2":{"19":1}}],["returning",{"2":{"18":1,"41":1,"52":2}}],["return",{"0":{"22":1},"2":{"1":1,"3":18,"4":2,"6":37,"13":3,"14":3,"23":2,"30":1,"33":5,"37":5,"40":20,"41":1,"44":4,"45":36,"47":12,"50":12,"51":5,"52":4,"53":4,"54":18,"56":6,"57":9,"60":8,"63":1,"66":30,"69":1,"75":2,"76":2,"79":1,"80":18,"83":2,"89":2,"90":2,"91":71,"93":1,"94":1,"97":28,"100":1,"102":2,"106":2,"107":2,"110":1,"116":2,"117":2,"120":10,"121":12,"123":1,"125":4,"133":26,"135":6,"136":2,"140":2,"141":2,"142":1,"147":4,"150":3,"151":1,"152":5,"153":3,"154":7,"155":2,"156":2,"160":3,"161":8}}],["returned",{"2":{"1":1,"6":10,"22":2,"23":1,"45":3,"50":1,"51":2,"53":2,"54":2,"56":2,"121":1,"128":1,"133":2,"142":1,"150":1,"159":1}}],["returns",{"2":{"1":1,"3":5,"4":4,"5":3,"6":23,"18":1,"22":2,"33":1,"37":2,"40":6,"44":3,"45":4,"47":6,"50":1,"51":1,"54":1,"56":1,"60":8,"62":2,"63":1,"65":1,"69":1,"78":2,"79":1,"82":1,"91":4,"94":1,"97":2,"110":1,"121":2,"133":2,"147":1,"156":1,"168":1}}],["rebuilt",{"2":{"1":1,"6":2,"128":1,"133":2}}],["rebuild",{"2":{"0":2,"6":4,"128":4,"131":1,"133":10,"147":1,"150":2}}],["psa",{"2":{"133":2}}],["pb",{"2":{"80":2}}],["p0",{"2":{"60":9}}],["p3",{"2":{"45":8,"153":4}}],["ptm",{"2":{"120":3}}],["ptj",{"2":{"120":5}}],["pti",{"2":{"120":3}}],["ptrait",{"2":{"60":2}}],["pts",{"2":{"45":22,"50":7}}],["pt",{"2":{"45":114,"50":2,"54":26,"91":8,"152":4}}],["pt2",{"2":{"45":14,"54":2}}],["pt1",{"2":{"45":18,"54":2}}],["pn",{"2":{"102":3}}],["pn2",{"2":{"45":4}}],["pn1",{"2":{"45":4}}],["pfirst",{"2":{"37":3}}],["pu",{"2":{"169":2}}],["purpose",{"2":{"133":1}}],["pure",{"2":{"121":1}}],["purely",{"2":{"6":1,"18":1,"146":1}}],["push",{"2":{"45":15,"50":5,"51":2,"53":2,"54":2,"56":4,"57":5,"121":3,"125":1,"147":3,"152":3}}],["pull",{"2":{"25":1,"27":1}}],["public",{"2":{"24":1}}],["pick",{"2":{"164":2}}],["piece",{"2":{"45":6,"140":6}}],["pieces",{"2":{"45":12,"50":1,"52":2,"56":4,"91":1,"140":9}}],["pi",{"2":{"13":2}}],["pixels",{"2":{"121":1}}],["pixel",{"2":{"6":2,"121":7}}],["pythagorean",{"2":{"60":1}}],["py",{"2":{"13":2,"14":2}}],["px",{"2":{"13":2,"14":2}}],["peucker",{"2":{"148":2,"150":3,"152":2}}],["peaks",{"2":{"121":2}}],["peculiarities",{"0":{"21":1},"1":{"22":1,"23":1,"24":1}}],["people",{"2":{"9":1}}],["performed",{"2":{"169":1}}],["performs",{"2":{"40":1,"147":1}}],["perform",{"2":{"26":1,"39":1,"40":2,"45":1,"126":1,"168":3,"169":2,"171":1}}],["performing",{"2":{"6":3,"23":1,"40":1,"51":1,"53":1,"56":1,"169":1}}],["performance",{"2":{"4":1,"6":2,"22":1,"121":1,"137":1,"138":1,"150":1,"167":1}}],["per",{"2":{"5":2,"6":2,"39":1,"40":2,"45":5,"121":1,"133":4,"147":1}}],["pl",{"2":{"169":2}}],["plt",{"2":{"163":1}}],["please",{"2":{"45":1}}],["plan",{"2":{"144":1}}],["plane",{"2":{"40":1}}],["place",{"2":{"54":1,"168":1}}],["placement",{"2":{"45":1}}],["plottable",{"2":{"121":1}}],["plotted",{"2":{"43":1}}],["plotting",{"0":{"163":1},"2":{"6":1,"121":1,"144":1,"147":1,"162":1,"163":4,"164":1}}],["plots",{"2":{"39":2}}],["plot",{"0":{"164":1},"2":{"13":1,"39":3,"65":1,"96":1,"121":1,"146":2,"150":4,"162":2,"163":9,"164":5,"165":1,"167":1,"169":1}}],["plus",{"2":{"5":1,"6":1,"40":1}}],["p2y",{"2":{"161":3}}],["p2x",{"2":{"161":3}}],["p2box",{"2":{"39":1}}],["p2",{"2":{"3":2,"4":2,"6":6,"15":12,"33":12,"37":9,"45":18,"47":19,"56":2,"60":15,"66":11,"69":2,"78":2,"91":12,"97":2,"120":3,"145":1,"153":4,"161":3,"163":2}}],["p1y",{"2":{"161":3}}],["p1x",{"2":{"161":3}}],["p1",{"2":{"3":3,"4":2,"6":7,"15":12,"33":21,"37":8,"39":4,"45":9,"47":25,"49":1,"56":2,"60":15,"66":14,"68":5,"69":3,"78":5,"91":4,"97":2,"102":3,"120":3,"153":4,"161":3,"163":1}}],["practice",{"2":{"165":1}}],["pred",{"2":{"168":2,"169":1,"170":2,"171":1}}],["predicate",{"2":{"7":1,"80":1,"168":3,"169":1,"171":5}}],["predicates",{"0":{"12":1,"15":1,"171":1},"1":{"13":1,"14":1,"15":1,"16":1},"2":{"7":4,"12":1,"34":1,"45":5,"54":4,"55":3,"91":1,"168":1,"170":1}}],["pretty",{"2":{"142":1}}],["prettytime",{"2":{"13":2}}],["prevent",{"2":{"52":2,"54":2,"57":2}}],["prev^2",{"2":{"33":2}}],["prev",{"2":{"33":14,"45":69,"120":4}}],["previously",{"2":{"145":1}}],["previous",{"2":{"19":1,"33":1,"133":1,"151":3}}],["preparations",{"2":{"20":1}}],["prepared",{"2":{"20":1,"121":2}}],["prepare",{"0":{"20":1},"2":{"17":1,"20":1}}],["precision",{"2":{"11":1}}],["preserve",{"2":{"150":4,"152":3}}],["preserving",{"2":{"148":1}}],["presentation",{"2":{"6":1,"40":1}}],["present",{"2":{"6":1,"160":1}}],["presence",{"2":{"6":1,"160":1}}],["prescribes",{"2":{"20":1}}],["press",{"2":{"6":1,"40":1}}],["pre",{"2":{"6":1,"56":1,"150":1,"152":2}}],["prefilter",{"2":{"6":1,"150":7}}],["protters",{"2":{"133":2}}],["progressively",{"2":{"131":1}}],["program",{"2":{"17":1}}],["programming",{"2":{"17":1,"26":1}}],["promote",{"2":{"40":5}}],["property",{"2":{"133":2}}],["properties=gi",{"2":{"133":1}}],["properties=namedtuple",{"2":{"133":1}}],["properties=",{"2":{"121":1}}],["properties",{"2":{"6":1,"133":9,"150":1,"154":1}}],["propagate",{"2":{"40":16,"60":4}}],["probably",{"2":{"37":1,"133":1}}],["process",{"2":{"71":3,"72":3,"73":3,"74":1,"80":1,"85":3,"86":3,"87":2,"88":1,"91":11,"102":1,"103":3,"104":1,"105":1,"112":3,"113":3,"114":3,"115":1,"133":2,"152":1}}],["processed",{"2":{"45":6}}],["processors",{"2":{"34":1,"69":2,"83":2,"100":2,"110":2}}],["processor",{"2":{"34":1}}],["processing",{"2":{"23":1}}],["prod",{"2":{"33":4}}],["product",{"2":{"33":1}}],["profile",{"2":{"9":1}}],["provides",{"2":{"164":1}}],["providers",{"2":{"124":1,"139":1}}],["provide",{"0":{"23":1},"2":{"6":6,"32":1,"36":1,"38":1,"43":1,"46":1,"49":1,"51":2,"53":2,"56":2,"59":1,"62":1,"65":1,"68":1,"78":1,"82":1,"91":2,"93":1,"96":1,"99":1,"109":1,"121":1,"154":1}}],["provided",{"2":{"4":1,"6":3,"11":1,"45":1,"60":1,"66":1,"139":1,"146":2,"160":1}}],["projecting",{"2":{"164":1}}],["projection",{"2":{"60":2,"162":1,"164":1}}],["project",{"2":{"9":1}}],["projects",{"2":{"9":1}}],["proj",{"2":{"1":2,"6":3,"142":2,"143":4,"145":1,"146":6,"162":1}}],["prints",{"2":{"143":1}}],["printstyled",{"2":{"41":1,"143":1,"146":1}}],["println",{"2":{"41":1,"143":1,"146":1,"150":2}}],["print",{"2":{"41":2,"143":2,"146":2}}],["primitives",{"2":{"34":1}}],["primitive",{"0":{"126":1},"1":{"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1},"2":{"29":1}}],["primarily",{"2":{"6":1,"25":2,"27":2,"158":1}}],["primary",{"2":{"3":2,"6":3,"69":1,"110":1,"150":1}}],["priority",{"2":{"1":1,"142":1}}],["pay",{"2":{"133":1}}],["paper",{"2":{"91":2}}],["pa",{"2":{"80":2}}],["paths",{"2":{"159":1}}],["pathof",{"2":{"150":2}}],["path",{"2":{"36":3,"164":2}}],["padding",{"2":{"6":2}}],["parquet",{"2":{"167":3}}],["parent",{"2":{"159":1}}],["parse",{"2":{"91":1,"97":1}}],["part",{"2":{"47":2,"57":2,"91":3,"132":1}}],["partition",{"2":{"133":4}}],["partialsort",{"2":{"154":1}}],["partial",{"2":{"47":4}}],["partially",{"2":{"45":2,"57":2}}],["particularly",{"2":{"40":1}}],["particular",{"2":{"30":1,"33":1,"121":1,"164":2}}],["parallel",{"2":{"91":1,"120":1}}],["paradigm",{"0":{"29":1}}],["paradigms",{"0":{"17":1},"1":{"18":1,"19":1,"20":1},"2":{"17":2,"20":1}}],["parameters",{"2":{"6":1,"133":1,"158":2}}],["parameter",{"2":{"6":2,"158":3}}],["params",{"2":{"6":2,"160":10}}],["parlance",{"2":{"5":1,"6":1,"40":1}}],["passes",{"2":{"47":2,"91":1}}],["passed",{"2":{"1":2,"6":7,"121":1,"128":1,"133":2,"142":1,"146":2,"155":1,"160":2,"171":1}}],["passable",{"2":{"40":18}}],["passing",{"2":{"18":1,"133":1,"148":1}}],["pass",{"2":{"5":1,"6":4,"18":1,"40":1,"63":1,"79":1,"91":2,"94":1,"146":1,"147":1,"150":1,"159":1}}],["pairs",{"2":{"54":1,"163":1}}],["pair",{"2":{"3":2,"6":2,"47":1,"97":2,"133":3}}],["packages",{"2":{"6":1,"25":1,"27":1,"123":1,"128":1,"133":1,"157":1,"162":3,"164":1,"167":1}}],["package",{"2":{"1":2,"22":1,"25":2,"27":2,"41":1,"121":1,"142":3,"143":1,"146":1,"164":1,"167":2}}],["page",{"2":{"0":1,"9":1,"26":1,"29":1,"33":1,"34":1,"37":1,"39":1,"40":1,"41":1,"44":1,"45":1,"47":1,"50":1,"52":1,"54":1,"55":1,"57":1,"60":1,"63":1,"66":1,"76":1,"79":1,"80":1,"90":1,"91":1,"94":1,"97":1,"107":1,"117":1,"120":1,"121":1,"122":1,"125":1,"133":1,"136":1,"137":1,"140":1,"141":1,"143":1,"147":1,"154":1,"155":1,"156":1,"160":1,"161":1}}],["p",{"2":{"1":5,"6":5,"13":13,"14":12,"15":2,"32":1,"36":1,"43":1,"45":5,"46":1,"47":5,"52":2,"56":2,"59":3,"62":1,"65":1,"68":1,"78":1,"80":4,"82":1,"91":20,"93":1,"96":1,"99":1,"109":1,"120":4,"121":3,"126":3,"133":3,"141":7,"145":1,"149":1,"150":1,"154":3,"155":9,"156":7,"161":11,"168":1,"169":1}}],["poylgon",{"2":{"91":1}}],["potential",{"2":{"47":1}}],["potentially",{"2":{"6":2,"45":1,"136":2,"140":2}}],["post",{"2":{"152":2}}],["possibly",{"2":{"133":1}}],["possiblenodes",{"2":{"121":2}}],["possible",{"2":{"6":3,"51":1,"53":1,"56":1,"121":1,"133":2}}],["possibility",{"2":{"131":1}}],["possibilities",{"2":{"54":1}}],["position=",{"2":{"150":1}}],["position",{"2":{"6":1,"120":1,"145":1}}],["positive",{"2":{"4":4,"6":4,"36":3,"37":1,"59":3,"60":3,"147":1,"154":1}}],["polgons",{"2":{"121":1}}],["polgontrait",{"2":{"1":1,"6":1}}],["polar",{"2":{"6":1,"146":1}}],["polynodes",{"2":{"45":7,"51":1,"53":1,"56":1}}],["polynode",{"2":{"45":36}}],["polypoints",{"2":{"40":46}}],["polys",{"2":{"6":2,"45":39,"49":3,"50":10,"51":14,"52":14,"53":9,"54":6,"56":14,"57":28,"140":26}}],["polys1",{"2":{"3":2,"6":2,"97":6}}],["polys2",{"2":{"3":2,"6":2,"97":6}}],["poly",{"2":{"3":2,"6":16,"15":2,"32":1,"36":1,"37":6,"39":2,"40":3,"43":1,"45":107,"46":2,"47":4,"49":4,"50":20,"51":22,"52":12,"53":15,"54":10,"56":19,"57":79,"59":1,"60":3,"66":4,"80":10,"91":21,"97":8,"120":5,"121":5,"140":18,"145":2,"149":2,"150":8,"161":8,"163":2,"169":5}}],["poly2",{"2":{"3":3,"4":2,"6":7,"51":2,"66":2,"91":19,"97":7}}],["poly1",{"2":{"3":3,"4":2,"6":7,"51":2,"66":2,"91":14,"97":7}}],["polygon3",{"2":{"163":2,"164":1}}],["polygon2",{"2":{"163":6}}],["polygon1",{"2":{"163":4}}],["polygonization",{"2":{"121":1}}],["polygonizing",{"0":{"121":1}}],["polygonized",{"2":{"121":1}}],["polygonize",{"2":{"0":1,"6":6,"9":1,"34":1,"121":31}}],["polygon`",{"2":{"40":3}}],["polygons",{"0":{"74":1,"105":1,"115":1,"138":1},"1":{"139":1,"140":1},"2":{"3":4,"4":3,"5":1,"6":18,"9":1,"23":5,"34":1,"37":5,"38":1,"40":2,"43":1,"44":1,"45":14,"47":1,"50":2,"51":9,"52":5,"53":3,"54":8,"56":6,"57":19,"59":1,"60":1,"66":5,"74":1,"97":5,"115":1,"120":1,"121":19,"124":2,"131":1,"136":3,"138":2,"139":2,"140":10,"148":1,"150":1,"163":3,"164":1,"169":5,"170":3}}],["polygontrait",{"2":{"1":1,"3":4,"4":6,"6":14,"15":3,"23":1,"33":2,"37":3,"40":3,"44":2,"45":2,"47":2,"50":1,"51":5,"52":5,"53":3,"54":5,"56":4,"57":8,"60":2,"66":10,"71":2,"72":1,"73":1,"74":3,"75":1,"80":4,"85":2,"86":2,"87":1,"88":2,"89":1,"97":8,"102":2,"103":1,"104":1,"105":3,"106":1,"112":2,"113":1,"114":1,"115":3,"116":1,"125":2,"126":1,"131":2,"133":1,"135":2,"136":1,"140":2,"150":2,"161":1}}],["polygon",{"0":{"45":1,"48":1,"51":1,"52":1,"54":1,"56":1,"57":1,"88":1},"1":{"49":1,"50":1},"2":{"0":1,"1":4,"3":4,"4":21,"5":9,"6":63,"9":2,"11":3,"15":4,"20":1,"23":1,"32":1,"33":5,"36":2,"37":5,"38":5,"39":16,"40":57,"43":2,"44":4,"45":39,"46":3,"47":4,"49":3,"50":10,"51":5,"52":7,"53":5,"54":6,"56":6,"57":34,"59":3,"60":14,"66":12,"69":1,"71":3,"72":3,"73":4,"74":8,"80":1,"85":3,"86":4,"87":4,"88":4,"91":66,"97":4,"100":1,"102":3,"103":4,"104":5,"105":7,"110":1,"112":3,"113":4,"114":4,"115":8,"120":5,"121":4,"123":4,"124":8,"125":5,"133":1,"134":1,"136":4,"138":3,"139":12,"140":7,"145":1,"146":4,"149":1,"150":9,"155":3,"161":6,"163":12,"164":5,"165":7,"166":2,"169":6}}],["pointwise",{"0":{"155":1},"2":{"142":1}}],["point1",{"2":{"60":4}}],["point`",{"2":{"54":1}}],["pointedgeside",{"2":{"45":1}}],["point₂",{"2":{"44":13}}],["point₁",{"2":{"44":13}}],["point3s",{"2":{"40":10}}],["point3f",{"2":{"39":1}}],["pointrait",{"2":{"6":1}}],["point2f",{"2":{"39":4,"40":2,"59":1}}],["point2d",{"2":{"39":1}}],["point2",{"2":{"6":2,"40":5,"60":4}}],["pointtrait",{"2":{"1":1,"4":4,"6":9,"18":1,"33":2,"37":1,"40":3,"47":1,"53":2,"60":17,"66":8,"71":6,"75":1,"85":6,"89":1,"102":6,"106":1,"112":6,"116":1,"126":2,"131":1,"133":21,"135":2,"136":1,"137":1,"141":2,"150":2,"155":2,"156":2,"158":2,"161":1}}],["point",{"0":{"85":1,"102":1},"2":{"1":4,"3":10,"4":37,"5":7,"6":83,"9":2,"20":1,"33":12,"37":3,"38":3,"39":1,"40":126,"44":6,"45":97,"47":50,"50":13,"52":9,"53":1,"54":71,"57":9,"59":17,"60":73,"63":3,"66":27,"68":1,"69":2,"71":8,"80":21,"83":2,"85":10,"91":138,"93":1,"96":2,"97":21,"99":1,"100":3,"102":10,"103":1,"105":1,"110":4,"112":11,"120":1,"121":3,"123":1,"124":2,"133":1,"136":2,"138":1,"140":2,"142":1,"144":1,"150":2,"151":3,"152":9,"153":1,"155":2,"161":4,"163":111,"164":7,"165":8,"169":2}}],["points2",{"2":{"3":1,"6":1,"97":3}}],["points1",{"2":{"3":1,"6":1,"97":3}}],["points",{"0":{"71":1,"112":1},"2":{"0":1,"1":3,"3":1,"4":11,"5":1,"6":52,"9":3,"13":1,"33":2,"36":3,"37":3,"39":8,"40":32,"44":1,"45":55,"47":5,"50":3,"51":5,"52":1,"53":8,"54":28,"56":4,"57":1,"59":2,"60":8,"62":1,"65":2,"66":13,"69":6,"71":3,"72":4,"83":6,"85":1,"86":7,"87":3,"91":10,"97":5,"100":5,"102":1,"103":2,"104":4,"105":3,"109":1,"110":5,"112":3,"113":3,"114":3,"115":1,"119":1,"121":3,"133":1,"137":2,"142":1,"145":2,"146":2,"150":11,"151":11,"152":26,"153":10,"154":33,"155":2,"156":2,"161":25,"163":8,"164":1,"168":1,"169":11}}],["pointorientation",{"2":{"0":1,"6":2,"91":2}}],["my",{"2":{"170":1,"171":2}}],["moore",{"2":{"121":1}}],["moved",{"2":{"45":1,"142":1}}],["move",{"2":{"44":1,"91":1}}],["mode",{"2":{"171":3}}],["model",{"2":{"168":1}}],["modify",{"2":{"163":1}}],["modified",{"2":{"133":2}}],["module",{"2":{"142":1,"147":1}}],["modules",{"2":{"6":1,"40":1}}],["mod1",{"2":{"40":5}}],["mod",{"2":{"40":1,"45":1}}],["most",{"2":{"25":1,"27":1,"45":1,"52":1,"54":1,"57":1,"91":1,"150":1,"167":2}}],["monotone",{"2":{"20":1}}],["moment",{"2":{"6":1,"145":1,"147":1}}],["more",{"2":{"6":3,"7":1,"9":1,"10":1,"11":1,"23":1,"26":1,"29":1,"45":1,"51":1,"53":1,"56":1,"91":1,"97":1,"125":1,"133":4,"143":1,"145":1,"147":1,"163":2,"168":1}}],["mistakenly",{"2":{"138":1}}],["missing",{"2":{"128":6,"129":2,"145":4}}],["missed",{"2":{"121":1}}],["mid",{"2":{"47":2,"91":3}}],["midpoint",{"2":{"45":2}}],["middle",{"2":{"45":2}}],["mining",{"2":{"170":1}}],["minimal",{"2":{"170":1}}],["minimize",{"2":{"54":1}}],["minimum",{"2":{"4":7,"6":12,"46":1,"47":2,"60":12,"150":1,"151":1,"153":1}}],["mind",{"2":{"145":1,"169":1}}],["minmax",{"2":{"54":4}}],["min",{"2":{"47":1,"54":16,"60":15,"150":1,"152":3,"153":1,"154":28}}],["minus",{"2":{"36":1}}],["minpoints=0",{"2":{"121":1}}],["minpoints",{"2":{"6":2}}],["might",{"2":{"6":3,"25":1,"27":1,"37":1,"51":1,"53":1,"54":1,"56":1,"134":1,"152":1}}],["mixed",{"2":{"6":4,"150":1}}],["m",{"2":{"5":1,"6":1,"15":10,"40":2,"47":6,"120":2,"164":1}}],["mp",{"2":{"80":2}}],["mp1",{"2":{"4":2,"6":2,"66":7}}],["mp2",{"2":{"4":2,"6":2,"66":8}}],["mason",{"2":{"133":2}}],["manner",{"2":{"168":1}}],["manipulate",{"2":{"167":1}}],["manually",{"2":{"123":1}}],["many",{"2":{"4":1,"5":1,"6":2,"23":1,"26":1,"40":1,"45":1,"50":1,"52":1,"54":2,"57":1,"66":1,"124":1,"137":1}}],["markersize",{"2":{"163":2}}],["marker",{"2":{"163":2}}],["marked",{"2":{"45":6,"52":1,"54":1,"57":1}}],["marking",{"2":{"52":2,"54":2,"57":2}}],["mark",{"2":{"45":2}}],["marks",{"2":{"45":1}}],["mag",{"2":{"33":4}}],["making",{"2":{"45":1,"121":1,"131":1,"139":1,"163":1,"165":2}}],["makie",{"2":{"13":1,"14":1,"32":1,"36":1,"39":3,"43":1,"46":1,"49":4,"59":1,"62":1,"65":1,"68":1,"78":1,"82":1,"93":1,"96":1,"99":1,"109":1,"121":3,"149":1,"150":1}}],["makevalid",{"2":{"150":2}}],["makes",{"2":{"37":1,"45":1,"60":1,"124":1,"133":1,"138":1,"139":1}}],["make",{"2":{"9":1,"25":1,"27":1,"33":1,"45":3,"54":1,"60":1,"97":1,"121":2,"125":1,"131":1,"145":1,"154":1,"157":1,"163":2,"165":1}}],["mainly",{"2":{"40":1,"59":1,"126":1}}],["maintain",{"2":{"37":1}}],["main",{"0":{"28":1},"1":{"29":1,"30":1},"2":{"7":1,"26":1,"45":1,"121":1,"133":1,"146":1}}],["mapped",{"2":{"167":1}}],["maptasks",{"2":{"133":6}}],["mapreducetasks",{"2":{"133":5}}],["mapreduce",{"2":{"52":1,"121":2,"133":8}}],["map",{"0":{"164":1},"2":{"6":1,"13":1,"18":3,"19":1,"29":1,"40":1,"45":1,"54":1,"97":2,"121":17,"125":1,"133":24,"150":1,"158":1,"162":1,"164":1,"165":1,"167":1}}],["matlab",{"2":{"49":1}}],["materializer`",{"2":{"133":1}}],["materializer",{"2":{"22":1,"133":1}}],["mathrm",{"2":{"40":1}}],["math",{"2":{"7":1}}],["mathematically",{"2":{"6":1,"120":1}}],["matches",{"2":{"66":1,"121":1}}],["match",{"2":{"6":1,"66":12,"97":3,"121":1,"128":1,"133":2}}],["matching",{"2":{"3":1,"6":1,"22":1,"66":3,"97":1,"131":2}}],["matrix",{"2":{"6":1,"14":2,"40":1}}],["maximal",{"2":{"54":1}}],["maximum",{"2":{"3":1,"6":4,"14":1,"46":1,"47":4,"80":1,"121":1,"146":1,"147":1,"152":4}}],["max",{"2":{"6":9,"33":2,"47":1,"121":1,"133":2,"145":5,"146":8,"147":7,"152":36,"154":1}}],["made",{"2":{"6":2,"44":1,"45":1,"54":1,"104":1,"131":1,"136":1,"140":1,"153":1}}],["maybe",{"2":{"6":1,"91":4,"128":1,"133":6}}],["may",{"2":{"1":1,"6":5,"23":2,"24":1,"40":2,"45":1,"54":1,"120":1,"122":1,"131":1,"133":4,"138":1,"139":1,"146":1,"158":1}}],["mercator",{"2":{"164":1}}],["merge",{"2":{"133":1}}],["measure",{"2":{"133":1,"144":1}}],["meant",{"2":{"26":1}}],["meaning",{"2":{"3":3,"4":1,"6":4,"24":1,"37":1,"41":1,"97":4,"120":1}}],["means",{"2":{"3":1,"6":2,"36":1,"37":1,"41":1,"68":1,"91":3,"96":1,"97":1,"120":1,"131":1}}],["mean",{"2":{"0":1,"6":5,"17":1,"39":2,"40":5,"133":1}}],["meanvalue",{"2":{"0":1,"5":2,"6":3,"38":1,"39":2,"40":15}}],["meets",{"2":{"91":9,"97":1,"152":1}}],["meet",{"2":{"54":3,"68":1,"69":1,"83":1,"91":7,"100":1,"110":1}}],["memory",{"2":{"40":1,"165":1}}],["mesh",{"2":{"39":1,"133":1}}],["message",{"2":{"6":1,"160":1}}],["me",{"0":{"23":1}}],["mentioned",{"2":{"19":1}}],["mentions",{"2":{"6":1,"160":1}}],["menu",{"2":{"14":3}}],["median",{"2":{"13":4,"133":1}}],["mechanics",{"2":{"6":1,"40":1}}],["met",{"2":{"91":44}}],["meters",{"2":{"6":4,"145":1,"146":4,"164":1}}],["methoderror",{"2":{"34":3}}],["methods",{"0":{"2":1,"3":1,"4":1,"6":1},"1":{"3":1,"4":1},"2":{"1":1,"6":9,"9":1,"25":1,"27":1,"34":26,"40":3,"69":1,"83":1,"100":1,"110":1,"121":1,"128":1,"131":1,"133":2,"145":1,"150":2,"155":1,"158":1,"163":1}}],["method",{"0":{"143":1},"2":{"1":1,"4":1,"5":10,"6":96,"24":1,"33":1,"37":1,"40":37,"41":2,"44":1,"47":1,"54":1,"57":1,"60":4,"66":1,"69":2,"83":2,"97":1,"100":2,"110":2,"121":1,"133":5,"142":1,"143":2,"145":2,"146":9,"147":14,"148":2,"159":1,"160":3,"168":1,"171":1}}],["mutation",{"2":{"166":1}}],["mutlipolygon",{"2":{"4":1,"6":1,"44":1}}],["muladd",{"2":{"40":2}}],["multifloats",{"2":{"13":1,"14":1,"15":1}}],["multifloat",{"2":{"7":1}}],["multilinestringtrait",{"2":{"135":1}}],["multilinestring",{"2":{"6":1,"133":1,"161":2}}],["multi",{"0":{"75":1,"76":1,"89":1,"90":1,"106":1,"107":1,"116":1,"117":1},"2":{"4":2,"6":3,"33":1,"37":1,"47":1,"66":2,"75":1,"76":1,"89":1,"90":1,"106":1,"107":1,"116":1,"117":1}}],["multicurves",{"2":{"37":1,"47":1}}],["multicurve",{"2":{"4":1,"6":1,"37":1}}],["multigeometry",{"2":{"4":2,"6":2,"60":2}}],["multiplication",{"2":{"147":1}}],["multiplied",{"2":{"40":3}}],["multiple",{"2":{"4":1,"6":1,"40":1,"91":1,"137":1,"154":1,"163":1,"167":1}}],["multiply",{"2":{"1":1,"6":1,"155":1}}],["multipolys",{"2":{"57":3}}],["multipoly`",{"2":{"51":2,"53":2,"56":2}}],["multipoly",{"2":{"6":9,"15":3,"51":1,"52":27,"53":1,"54":26,"56":1,"57":24,"140":21,"150":9}}],["multipolygon`",{"2":{"121":1}}],["multipolygons",{"2":{"3":1,"4":1,"6":11,"44":1,"51":3,"53":3,"54":3,"56":3,"59":1,"66":1,"97":2,"139":1,"163":1,"164":1}}],["multipolygon",{"2":{"3":2,"4":5,"6":16,"37":2,"43":1,"51":1,"52":7,"53":1,"54":5,"56":1,"57":6,"66":4,"97":2,"121":7,"133":1,"136":2,"138":7,"139":8,"140":2,"150":3,"163":8,"164":1}}],["multipolygontrait",{"2":{"1":1,"3":4,"4":2,"6":7,"23":1,"52":4,"54":4,"57":4,"66":6,"75":1,"76":1,"89":1,"90":1,"97":8,"106":1,"107":1,"116":1,"117":1,"133":1,"135":1,"140":4}}],["multipoint",{"2":{"4":5,"6":5,"37":1,"66":5,"80":6,"133":4,"150":1,"163":5}}],["multipoints",{"2":{"3":2,"4":1,"6":3,"37":1,"47":1,"66":2,"97":2,"150":1,"163":1}}],["multipointtrait",{"2":{"1":1,"3":2,"4":4,"6":8,"33":2,"37":1,"47":1,"66":8,"75":1,"76":1,"80":4,"89":1,"90":1,"97":4,"106":1,"107":1,"116":1,"117":1,"131":1,"135":1,"150":2,"161":1}}],["multithreading",{"2":{"1":2,"4":1,"6":5,"130":1}}],["must",{"2":{"1":1,"3":8,"4":2,"5":1,"6":23,"9":1,"33":1,"40":5,"41":1,"45":2,"47":3,"50":1,"54":2,"63":2,"66":5,"69":1,"78":1,"79":1,"83":1,"91":13,"97":1,"99":1,"100":1,"110":2,"121":1,"128":1,"133":1,"134":1,"135":3,"136":1,"142":1,"146":1,"147":1,"150":1,"154":4,"160":1}}],["much",{"2":{"0":1,"6":3,"51":1,"53":1,"56":1}}],["mdash",{"2":{"1":4,"3":9,"4":8,"5":3,"6":87,"128":3,"135":1,"136":4}}],["df",{"2":{"166":3,"167":4,"169":10,"170":12}}],["dp",{"2":{"150":3}}],["dy",{"2":{"120":2,"147":3}}],["dy2",{"2":{"120":2}}],["dy1",{"2":{"80":10,"120":2}}],["dyc",{"2":{"80":2}}],["dx",{"2":{"120":2,"147":3}}],["dx2",{"2":{"120":2}}],["dx1",{"2":{"80":10,"120":2}}],["dxc",{"2":{"80":2}}],["drop",{"2":{"57":1,"140":1,"147":1}}],["driven",{"2":{"25":1,"27":1}}],["driving",{"2":{"25":1,"27":1}}],["duplicated",{"2":{"54":2}}],["during",{"2":{"45":1}}],["due",{"2":{"44":1,"45":1,"54":3}}],["datas",{"2":{"171":1}}],["datasets",{"2":{"164":1,"168":1,"169":1}}],["dataset",{"2":{"164":1,"168":1}}],["datainterpolations",{"2":{"144":1}}],["dataframes",{"2":{"166":3,"169":2,"170":1}}],["dataframe",{"2":{"29":1,"166":1,"168":1,"169":5,"170":2}}],["data",{"0":{"121":1,"167":1},"2":{"23":1,"25":1,"27":1,"121":2,"150":10,"162":1,"164":2,"165":2,"166":2,"167":6,"169":1}}],["dataaspect",{"2":{"13":1,"14":1,"32":1,"36":1,"39":2,"43":1,"46":1,"59":2,"121":2,"145":1,"150":1}}],["dashboard",{"0":{"14":1},"2":{"13":1,"14":1}}],["d",{"2":{"1":2,"5":1,"6":1,"40":1,"142":1,"152":3}}],["deu",{"2":{"170":2}}],["demonstrates",{"2":{"169":1}}],["densify",{"2":{"146":3}}],["densifying",{"2":{"146":1}}],["densifies",{"2":{"144":1}}],["denoted",{"2":{"91":1}}],["denotes",{"2":{"45":1}}],["debug",{"2":{"135":1}}],["debugging",{"2":{"40":1,"45":1}}],["de",{"2":{"91":2,"168":1}}],["derivation",{"2":{"54":1}}],["dealing",{"2":{"47":1}}],["delete",{"2":{"80":1,"97":1,"121":1,"152":1}}],["deleteat",{"2":{"45":6,"152":1,"154":2}}],["delayed",{"2":{"45":10,"52":2,"54":2,"57":2}}],["delay",{"2":{"45":14,"51":2,"52":2,"53":2,"54":2,"56":2,"57":2}}],["depend",{"2":{"45":2}}],["depends",{"2":{"45":1,"50":1}}],["depending",{"2":{"1":1,"6":1,"23":1,"54":1,"133":1}}],["depth",{"2":{"40":2}}],["desktop",{"2":{"167":1}}],["dest",{"2":{"164":2}}],["destination",{"2":{"164":5}}],["desired",{"2":{"56":1,"167":1}}],["despite",{"2":{"33":1}}],["describe",{"2":{"17":1}}],["described",{"2":{"6":1,"40":1,"44":1,"45":1}}],["deconstruct",{"2":{"126":1}}],["decomposition",{"2":{"18":1,"126":1}}],["decomposing",{"2":{"18":1}}],["decompose",{"2":{"18":2,"29":1,"40":4,"123":1}}],["decide",{"2":{"121":1}}],["decision",{"2":{"24":1}}],["decrementing",{"2":{"121":1}}],["decrease",{"2":{"44":1}}],["decreasing",{"2":{"6":1,"150":1}}],["degeneracies",{"2":{"9":1}}],["degenerate",{"2":{"6":1,"40":1,"50":2}}],["degrees",{"2":{"6":1,"32":1,"120":1,"146":1}}],["defines",{"2":{"45":1,"126":1,"134":1,"157":1}}],["define",{"2":{"39":1,"54":2,"65":1,"121":2,"126":1,"131":1,"133":1,"157":1,"171":2}}],["defined",{"2":{"4":1,"5":1,"6":3,"7":1,"22":1,"33":2,"40":1,"46":1,"47":4,"54":4,"60":2,"119":1,"133":1,"147":1,"157":1}}],["definitions",{"2":{"160":1}}],["definition",{"2":{"4":4,"6":6,"66":8,"68":1,"147":1}}],["default",{"2":{"1":2,"4":5,"6":13,"33":1,"37":2,"47":1,"51":1,"52":2,"53":1,"54":5,"56":1,"57":2,"60":2,"121":5,"128":1,"133":2,"142":2,"150":2}}],["defaults",{"2":{"1":6,"4":2,"6":14,"130":3,"133":1}}],["deeper",{"2":{"1":1,"6":1,"132":1,"133":2}}],["detrimental",{"2":{"138":1}}],["detection",{"2":{"121":1}}],["determined",{"2":{"45":1,"47":1}}],["determine",{"2":{"45":10,"47":3,"51":2,"53":2,"54":9,"56":2,"69":1,"83":1,"91":9,"97":1,"100":1,"110":1,"152":3,"168":1}}],["determines",{"2":{"37":1,"45":3,"54":1,"91":10}}],["determinant",{"2":{"6":1,"40":1}}],["details",{"2":{"128":3,"129":1,"145":2}}],["detail",{"2":{"26":1}}],["det",{"2":{"0":1,"6":2,"40":4}}],["dirname",{"2":{"150":4}}],["dirty",{"2":{"149":1}}],["directive",{"2":{"133":1}}],["direction",{"2":{"6":1,"45":1,"66":5,"121":3}}],["directly",{"2":{"6":1,"121":1,"146":1}}],["dig",{"2":{"133":1}}],["dict",{"2":{"121":5}}],["didn",{"2":{"57":1,"91":1,"159":1}}],["division",{"2":{"39":1}}],["divided",{"2":{"26":1}}],["div",{"2":{"6":2}}],["div>",{"2":{"6":2}}],["ditance",{"2":{"4":1,"6":1,"60":1}}],["dimensional",{"2":{"5":1,"6":1,"36":1,"40":1}}],["dimensions",{"2":{"3":1,"6":1,"97":2}}],["dimension",{"2":{"1":1,"3":4,"6":4,"80":2,"96":1,"97":4,"142":1}}],["discouraged",{"2":{"165":1}}],["discussion",{"2":{"25":1,"27":1,"50":1}}],["distributed",{"2":{"169":2}}],["distinct",{"2":{"54":1,"121":1}}],["dist",{"2":{"54":40,"60":19,"91":2,"146":8,"152":40}}],["distance`",{"2":{"146":3,"147":1,"160":1}}],["distances",{"2":{"54":1,"59":1,"146":1,"151":5}}],["distance",{"0":{"58":2,"59":2},"1":{"59":2,"60":2},"2":{"0":4,"4":26,"6":47,"34":1,"40":13,"41":3,"47":3,"54":32,"58":2,"59":17,"60":92,"91":1,"126":1,"144":1,"145":5,"146":13,"147":14,"150":1,"151":3,"152":6,"153":1,"171":2}}],["disagree",{"2":{"37":1}}],["disparate",{"2":{"25":1,"27":1}}],["dispatches",{"2":{"6":1,"33":1,"37":1,"40":1,"44":1,"47":1,"60":1,"66":1,"69":1,"83":1,"97":1,"100":1,"110":1}}],["dispatch",{"2":{"4":1,"6":5,"24":1,"40":1,"66":1,"128":1,"133":2,"158":1,"160":1}}],["displaying",{"2":{"164":1}}],["display",{"2":{"13":1,"39":1,"164":1}}],["disjoint",{"0":{"81":1,"82":1,"85":1,"86":1,"87":1,"88":1,"89":1},"1":{"82":1,"83":1},"2":{"0":2,"3":5,"6":7,"23":1,"34":1,"57":2,"81":1,"82":3,"83":11,"84":6,"85":15,"86":18,"87":10,"88":5,"89":4,"90":2,"91":16,"94":3,"136":2,"138":2,"140":7,"168":1}}],["diffs",{"2":{"33":4}}],["diff",{"2":{"6":2,"33":17,"51":5,"52":3,"97":3,"140":8}}],["differs",{"2":{"164":1}}],["differ",{"2":{"4":1,"6":1,"60":1}}],["differently",{"2":{"4":3,"6":4,"33":1,"37":2,"47":1}}],["different",{"2":{"3":1,"4":4,"6":6,"20":1,"23":1,"33":1,"37":4,"45":3,"47":1,"54":2,"97":3,"121":1,"131":1,"133":1,"138":2,"164":2,"167":1}}],["differences",{"0":{"52":1},"2":{"54":1,"152":1}}],["difference",{"0":{"51":1},"2":{"0":1,"6":7,"11":1,"23":1,"34":1,"45":3,"51":12,"52":14,"54":1,"56":1,"57":3,"136":1,"140":1,"146":1}}],["diffintersectingpolygons",{"2":{"0":1,"6":1,"136":1,"140":4}}],["doi",{"2":{"51":2,"53":2,"56":2,"91":1}}],["doing",{"2":{"17":1,"22":1,"133":1,"165":1}}],["dot",{"2":{"33":2,"40":1}}],["doable",{"2":{"9":1}}],["documenter",{"2":{"128":3,"129":1,"145":2}}],["documentation",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"26":1,"39":1}}],["docstring",{"2":{"128":6,"129":2,"145":4}}],["docstrings",{"0":{"127":1},"1":{"128":1},"2":{"7":1}}],["docs",{"0":{"26":1},"2":{"26":1,"121":1}}],["doc",{"2":{"9":1,"10":1}}],["does",{"0":{"22":1},"2":{"7":1,"19":1,"43":1,"54":2,"62":1,"68":3,"91":1}}],["doesn",{"2":{"4":1,"6":2,"37":1,"50":1,"66":1,"146":1,"160":1,"170":1}}],["download",{"2":{"150":1,"164":1}}],["down",{"2":{"6":1,"18":1,"29":1,"40":1,"133":1}}],["doublets",{"2":{"170":2}}],["double",{"2":{"153":4}}],["doubled",{"2":{"6":1,"153":1}}],["douglas",{"2":{"148":2,"150":2,"152":1}}],["douglaspeucker",{"0":{"152":1},"2":{"0":1,"6":5,"148":1,"150":5,"152":6}}],["done",{"0":{"10":1},"2":{"13":1,"14":1,"91":2,"121":1,"126":1,"138":1,"163":1,"168":1}}],["don",{"2":{"4":2,"6":3,"45":4,"51":1,"57":1,"66":6,"86":1,"91":1,"99":1,"103":1,"121":2,"133":3,"147":1,"160":1}}],["do",{"0":{"9":1,"23":1,"55":1},"2":{"1":1,"6":2,"14":1,"23":1,"33":1,"34":1,"37":2,"40":2,"41":1,"44":1,"47":1,"50":1,"57":3,"60":2,"65":1,"66":1,"78":1,"86":2,"87":1,"88":2,"91":1,"121":4,"124":1,"125":1,"126":1,"133":9,"139":1,"141":2,"143":1,"146":1,"150":1,"155":2,"156":2,"164":2,"165":2,"166":3,"169":1,"170":1}}],["ay",{"2":{"120":2}}],["azimuth",{"2":{"120":2}}],["automatically",{"2":{"97":1,"164":1}}],["against",{"2":{"66":1,"91":2,"146":1,"150":1}}],["again",{"2":{"54":1,"133":1}}],["a``",{"2":{"52":2}}],["a`",{"2":{"52":7,"54":3,"57":2}}],["away",{"2":{"41":1,"80":1,"171":1}}],["a2y",{"2":{"54":4}}],["a2x",{"2":{"54":4}}],["a2",{"2":{"39":4,"54":54,"97":6}}],["a1y",{"2":{"54":7}}],["a1x",{"2":{"54":7}}],["a1",{"2":{"39":2,"45":9,"54":66,"97":6}}],["america",{"2":{"150":1}}],["am",{"2":{"91":1}}],["ambiguity",{"2":{"60":2,"133":5}}],["amounts",{"2":{"167":1}}],["amount",{"2":{"36":1,"46":1}}],["amp",{"2":{"6":1,"9":1}}],["axes",{"2":{"121":6}}],["ax",{"2":{"13":3,"14":3,"120":2,"163":5}}],["axislegend",{"2":{"145":1,"149":1}}],["axis",{"2":{"13":2,"14":1,"32":1,"36":1,"39":4,"43":1,"46":1,"59":1,"121":2,"145":1,"150":1}}],["axs",{"2":{"13":2}}],["a>",{"2":{"6":2}}],["adjust",{"2":{"54":1}}],["adjacent",{"2":{"45":1,"52":1,"54":1,"57":1}}],["adaptivity",{"0":{"55":1}}],["adaptive",{"2":{"7":1,"13":3,"14":2,"55":1}}],["adapted",{"2":{"51":1,"53":1,"56":1,"120":1}}],["advance",{"2":{"44":2}}],["advised",{"2":{"6":1,"158":1}}],["administrative",{"2":{"170":1}}],["admin",{"2":{"11":1,"150":2}}],["adm0",{"2":{"11":7}}],["additional",{"2":{"167":1}}],["additionally",{"2":{"45":3,"66":1}}],["addition",{"2":{"39":1,"57":1}}],["adding",{"2":{"4":1,"6":4,"7":1,"57":2,"121":1,"137":1,"144":1,"146":2,"147":1}}],["added",{"2":{"6":1,"33":1,"45":6,"47":1,"57":2,"128":1,"133":1,"140":2,"152":1}}],["add",{"2":{"3":1,"6":1,"7":2,"40":1,"41":1,"45":16,"47":1,"50":4,"51":3,"53":1,"54":2,"56":2,"57":9,"80":1,"121":4,"133":1,"144":1,"146":1,"152":10,"159":1,"164":1,"166":2,"168":1}}],["average",{"2":{"38":3,"44":4,"54":1}}],["available",{"0":{"136":1},"2":{"6":3,"34":1,"44":1,"135":3,"144":1,"145":1,"147":1,"150":1,"154":1,"158":1}}],["avoid",{"2":{"5":1,"6":7,"40":1,"51":1,"53":1,"54":1,"56":1,"57":1,"121":2,"133":5,"147":1,"151":1,"152":1,"153":1,"163":3}}],["achieve",{"2":{"138":1}}],["across",{"2":{"131":1}}],["acos",{"2":{"33":1}}],["activate",{"2":{"145":1}}],["action",{"2":{"20":2}}],["actions",{"2":{"20":2}}],["actual",{"2":{"10":1,"40":1,"120":1,"125":1,"142":1,"146":1}}],["actually",{"2":{"1":1,"6":1,"9":1,"40":4,"54":1,"57":3,"91":1,"121":1,"155":1,"167":1}}],["access",{"2":{"164":1}}],["accessed",{"2":{"160":1}}],["acceptable",{"2":{"91":1}}],["accept",{"2":{"6":1,"160":1}}],["according",{"2":{"124":1,"138":1,"139":1,"169":1}}],["accordingly",{"2":{"45":1}}],["account",{"2":{"51":1,"53":1}}],["accurary",{"2":{"54":1}}],["accuratearithmetic",{"2":{"11":2}}],["accurate",{"0":{"11":1},"2":{"11":3,"145":1}}],["accumulators",{"2":{"40":1}}],["accumulator",{"2":{"40":1}}],["accumulate",{"2":{"37":1,"44":3}}],["accumulation",{"0":{"11":1},"2":{"40":1}}],["after",{"2":{"6":8,"33":1,"45":3,"133":1,"150":2}}],["ab",{"2":{"45":3,"51":1,"53":1,"54":5,"56":1}}],["able",{"2":{"20":1,"54":1}}],["ability",{"2":{"17":1}}],["about",{"2":{"6":1,"24":2,"30":1,"40":2,"91":1,"123":1}}],["above",{"2":{"4":1,"6":1,"33":1,"44":1,"45":1,"54":1,"57":1,"135":1}}],["abs",{"2":{"33":1,"37":4,"44":1,"47":2,"80":8,"97":2,"121":1,"153":1,"171":1}}],["absolute",{"2":{"4":1,"6":1,"36":1,"37":2}}],["abstractpolygon",{"2":{"133":1}}],["abstractpolygontrait",{"2":{"60":1}}],["abstractpoint",{"2":{"133":1}}],["abstractface",{"2":{"133":1}}],["abstractfloat",{"2":{"33":1,"34":1,"37":2,"45":1,"47":2,"50":1,"51":1,"53":1,"54":1,"56":1,"60":8}}],["abstractrange",{"2":{"121":6}}],["abstractmesh",{"2":{"133":1}}],["abstractmulticurvetrait",{"2":{"75":1,"76":1,"89":1,"90":1,"106":1,"107":1,"116":1,"117":1}}],["abstractmatrix",{"2":{"6":5,"121":13}}],["abstractcurvetrait",{"2":{"33":1,"37":1,"47":1,"71":1,"74":1,"75":1,"80":1,"85":1,"89":1,"102":1,"105":1,"106":1,"112":1,"115":1,"116":1,"120":1,"150":2,"161":3}}],["abstractarrays",{"2":{"131":1}}],["abstractarray",{"2":{"6":1,"128":1,"133":6,"161":2}}],["abstract",{"2":{"6":3,"40":3,"134":1,"135":4,"136":1,"150":3,"159":1}}],["abstractvector",{"2":{"5":1,"6":1,"40":26,"121":8}}],["abstractgeometrytrait`",{"2":{"135":1}}],["abstractgeometrytrait",{"2":{"6":3,"37":2,"47":1,"60":1,"76":1,"90":1,"107":1,"117":1,"128":1,"131":1,"135":4,"136":2,"161":5}}],["abstractgeometry",{"2":{"3":4,"6":4,"63":2,"79":2,"133":1}}],["abstracttrait",{"2":{"1":2,"3":2,"6":8,"50":1,"52":2,"54":4,"57":2,"97":4,"126":1,"128":2,"133":9,"158":3}}],["abstractbarycentriccoordinatemethod",{"2":{"0":1,"5":1,"6":7,"40":18}}],["attribute",{"2":{"167":1}}],["attributed",{"2":{"166":1}}],["attributes",{"0":{"166":1},"2":{"162":1,"166":3}}],["attempts",{"2":{"91":1}}],["attach",{"2":{"1":2,"4":1,"6":5,"130":1}}],["atomic",{"2":{"7":1}}],["at",{"2":{"3":4,"5":1,"6":6,"9":1,"18":1,"20":1,"24":1,"26":1,"33":2,"36":1,"37":1,"39":1,"40":2,"45":4,"47":2,"54":8,"57":2,"91":17,"97":6,"99":1,"100":1,"103":3,"104":2,"105":2,"106":1,"107":1,"110":1,"116":1,"120":1,"131":1,"133":1,"145":1,"147":1,"152":1,"154":1,"164":1,"165":2}}],["arbitrarily",{"2":{"131":1}}],["arbitrary",{"2":{"38":1,"126":1,"163":1}}],["around",{"2":{"39":1,"40":2,"50":1,"59":1,"66":1,"121":1,"150":1,"169":1}}],["argmin",{"2":{"154":1}}],["argtypes",{"2":{"41":2,"143":1,"146":1}}],["args",{"2":{"13":2}}],["argumenterror",{"2":{"57":1,"121":1,"133":5}}],["argument",{"2":{"4":5,"6":10,"33":1,"37":2,"44":1,"47":1,"51":1,"53":1,"56":1,"60":2,"133":2,"160":2,"164":1,"165":1}}],["arguments",{"2":{"1":1,"3":1,"6":5,"45":1,"69":2,"83":1,"100":1,"110":1,"142":1,"146":2,"147":1,"160":1}}],["arithmetic",{"2":{"11":1}}],["archgdal",{"2":{"23":1}}],["arc",{"2":{"6":1,"146":1}}],["array",{"2":{"4":1,"6":2,"37":1,"47":1,"121":5,"133":7,"151":1,"154":1}}],["arrays",{"2":{"1":1,"6":2,"22":1,"121":1,"133":2}}],["aren",{"2":{"4":3,"6":5,"50":1,"52":1,"54":2,"57":4,"66":3,"136":2,"140":2}}],["are",{"2":{"1":1,"3":4,"4":18,"5":2,"6":50,"9":2,"20":2,"22":3,"24":1,"25":1,"26":2,"27":1,"32":1,"33":8,"36":1,"37":2,"38":6,"40":11,"43":1,"44":3,"45":31,"47":6,"50":3,"51":3,"52":15,"53":2,"54":16,"56":5,"57":9,"59":1,"60":1,"62":1,"65":3,"66":26,"69":7,"71":1,"72":3,"73":3,"74":1,"76":1,"82":1,"83":5,"85":1,"86":1,"87":1,"89":1,"90":1,"91":12,"97":7,"100":5,"102":1,"104":2,"109":1,"110":5,"112":1,"113":3,"114":3,"115":1,"117":1,"120":1,"121":14,"122":1,"123":1,"124":1,"125":1,"128":1,"131":1,"133":4,"135":1,"136":3,"137":1,"138":1,"139":1,"140":2,"145":1,"146":1,"147":1,"150":4,"152":1,"154":2,"156":1,"157":2,"158":1,"160":1,"163":1,"166":2,"167":2,"168":3,"169":6,"170":1,"171":1}}],["area2",{"2":{"44":4}}],["area1",{"2":{"44":4}}],["areas",{"2":{"4":2,"6":2,"37":3,"153":2}}],["area",{"0":{"35":2,"36":2},"1":{"36":2,"37":2},"2":{"0":5,"4":15,"6":25,"11":6,"34":1,"35":2,"36":9,"37":61,"42":1,"43":3,"44":49,"46":2,"47":44,"56":2,"57":1,"97":1,"126":1,"136":2,"140":2,"150":2,"153":4,"164":1}}],["ask",{"2":{"23":1}}],["aspect",{"2":{"13":1,"14":1,"32":1,"36":1,"39":2,"43":1,"46":1,"59":2,"121":2,"145":1,"150":1}}],["assign",{"2":{"162":1}}],["assigned",{"2":{"45":1,"121":7,"169":1}}],["assets",{"2":{"164":1}}],["assetpath",{"2":{"164":1}}],["assemble",{"2":{"125":1}}],["assert",{"2":{"40":23,"44":1,"45":1,"50":1,"52":1,"54":1,"147":1,"161":1}}],["assume",{"2":{"97":2,"124":1,"133":3,"140":1}}],["assumed",{"2":{"37":1,"66":1,"91":1}}],["assumes",{"2":{"6":1,"45":1,"60":1,"146":1,"154":1}}],["associativity",{"2":{"19":1}}],["associated",{"0":{"1":1},"2":{"38":2}}],["as",{"2":{"1":8,"3":18,"4":6,"5":1,"6":79,"7":1,"11":2,"13":3,"14":3,"15":3,"17":2,"18":2,"20":1,"22":1,"23":2,"24":1,"25":1,"27":1,"32":2,"33":4,"36":2,"37":3,"38":4,"39":1,"40":4,"41":3,"43":2,"44":1,"45":15,"46":2,"47":5,"49":3,"50":5,"51":8,"52":2,"53":7,"54":8,"56":7,"57":5,"59":3,"60":1,"62":2,"63":2,"65":2,"66":2,"68":3,"69":3,"78":2,"79":2,"80":2,"82":2,"83":3,"91":7,"93":2,"94":2,"96":2,"97":2,"99":2,"100":3,"102":1,"109":2,"110":3,"120":8,"121":3,"124":2,"125":2,"126":3,"128":1,"131":2,"132":2,"133":15,"135":1,"136":1,"137":1,"139":2,"142":3,"144":2,"145":2,"146":3,"148":2,"149":2,"150":7,"152":2,"155":3,"158":2,"159":2,"160":2,"161":2,"162":3,"163":2,"164":1,"165":1,"167":3,"168":2,"169":3,"170":2}}],["alone",{"2":{"133":1}}],["along",{"2":{"4":4,"6":5,"45":3,"47":2,"54":4,"66":4,"91":1}}],["although",{"2":{"113":1,"114":1}}],["alternate",{"2":{"45":1}}],["alternative",{"2":{"45":1}}],["already",{"2":{"66":1,"91":2,"152":1}}],["almost",{"2":{"54":1}}],["alg=nothing",{"2":{"150":1}}],["alg`",{"2":{"150":1}}],["alg",{"2":{"6":4,"150":21,"151":3,"152":8,"153":3,"154":7,"160":9}}],["algorithms",{"2":{"6":3,"124":1,"147":1,"148":1,"150":4,"152":1,"154":1}}],["algorithm",{"0":{"151":1,"152":1,"153":1},"2":{"6":10,"39":1,"45":2,"47":1,"50":3,"51":1,"53":1,"56":1,"91":1,"148":1,"150":8,"151":1,"152":3,"153":1,"160":4}}],["allocations",{"2":{"5":1,"6":1,"40":1}}],["allow=",{"2":{"91":1}}],["allows",{"2":{"11":1,"18":1,"23":1,"24":1,"29":1,"69":2,"71":3,"72":3,"73":3,"74":1,"83":2,"85":3,"86":3,"87":2,"88":1,"100":1,"103":1,"104":1,"105":1,"110":3,"112":3,"113":3,"114":3,"115":1,"126":1,"148":1,"164":1,"166":1,"168":1}}],["allowed",{"2":{"6":1,"69":3,"83":3,"91":6,"100":5,"102":1,"103":2,"110":3,"150":1}}],["allow",{"2":{"1":1,"6":1,"23":1,"54":1,"69":7,"80":3,"83":7,"91":73,"100":10,"110":10,"155":1}}],["all",{"2":{"1":3,"3":2,"4":3,"6":14,"9":1,"11":7,"22":1,"25":1,"27":1,"33":5,"34":2,"37":3,"40":1,"45":13,"47":3,"51":1,"52":3,"54":3,"57":5,"59":1,"62":1,"66":2,"72":3,"73":3,"76":1,"89":1,"90":1,"91":7,"97":4,"109":1,"117":1,"120":1,"121":3,"122":1,"125":1,"128":1,"131":2,"132":1,"133":8,"135":1,"137":1,"138":1,"141":1,"150":1,"155":2,"156":1,"157":1,"163":1,"165":1,"167":1,"168":1}}],["always",{"2":{"1":7,"4":6,"6":10,"25":1,"27":1,"36":1,"37":4,"47":2,"59":1,"60":1,"66":1,"133":2,"142":4,"168":1}}],["also",{"2":{"1":2,"6":10,"23":1,"33":1,"37":2,"44":2,"45":3,"47":1,"51":1,"53":1,"54":2,"56":1,"59":1,"60":2,"66":3,"97":1,"121":1,"125":1,"131":1,"133":1,"136":3,"140":2,"143":1,"144":1,"145":1,"146":1,"148":1,"155":1,"158":1,"163":2,"166":1}}],["a",{"0":{"23":1,"164":1,"166":1},"2":{"1":13,"3":5,"4":79,"5":1,"6":194,"7":3,"9":1,"11":1,"15":2,"17":1,"18":6,"20":3,"22":3,"23":4,"24":2,"25":2,"27":2,"29":2,"30":2,"32":3,"33":22,"36":11,"37":20,"38":13,"39":4,"40":11,"41":2,"43":5,"44":8,"45":281,"46":2,"47":17,"49":3,"50":4,"51":39,"52":30,"53":38,"54":91,"55":3,"56":36,"57":45,"59":15,"60":27,"62":2,"65":2,"66":54,"68":1,"69":3,"71":5,"72":3,"73":2,"75":2,"76":2,"78":2,"80":1,"82":1,"83":3,"85":4,"86":3,"87":1,"89":2,"90":2,"91":52,"93":2,"96":5,"97":27,"99":2,"100":4,"102":4,"103":2,"104":2,"105":1,"106":2,"107":2,"109":1,"110":3,"112":5,"113":2,"114":2,"116":2,"117":2,"119":1,"120":4,"121":79,"123":6,"124":2,"125":2,"126":4,"128":2,"131":4,"133":34,"134":5,"135":5,"136":9,"137":2,"138":8,"140":6,"141":3,"142":8,"143":3,"144":5,"145":4,"146":8,"147":10,"149":3,"150":5,"153":3,"154":1,"155":2,"156":1,"158":6,"159":1,"160":12,"161":2,"162":1,"163":21,"164":12,"165":5,"166":5,"167":11,"168":5,"169":8,"170":3,"171":3}}],["annotation",{"2":{"159":1}}],["annotated",{"2":{"26":1}}],["angels",{"2":{"33":1}}],["angle",{"2":{"33":35,"120":1}}],["angles",{"0":{"31":1,"32":1},"1":{"32":1,"33":1},"2":{"0":2,"4":10,"6":10,"31":1,"32":4,"33":42,"34":1}}],["answers",{"2":{"138":1}}],["answer",{"2":{"6":3,"51":1,"53":1,"54":1,"56":1}}],["another",{"2":{"3":1,"6":1,"45":2,"54":1,"59":1,"62":1,"68":1,"71":1,"73":1,"74":1,"78":1,"82":1,"85":1,"86":1,"87":1,"88":1,"91":1,"93":1,"96":1,"97":1,"99":1,"102":1,"103":1,"104":1,"105":1,"109":1,"112":1,"113":1,"114":1,"115":1,"121":1,"142":1}}],["anonymous",{"2":{"1":1,"6":1,"155":1}}],["an",{"2":{"1":3,"4":11,"5":1,"6":27,"9":1,"13":1,"14":1,"18":1,"20":1,"23":2,"32":1,"33":4,"36":1,"37":2,"39":1,"40":3,"41":2,"43":1,"45":15,"46":2,"47":2,"49":1,"50":1,"51":2,"52":5,"53":2,"54":9,"56":2,"57":2,"59":2,"60":5,"62":1,"65":1,"66":1,"68":2,"71":2,"78":1,"82":1,"91":13,"93":1,"96":1,"97":1,"99":1,"109":1,"112":2,"113":1,"114":1,"121":3,"122":1,"125":1,"128":1,"131":1,"132":1,"133":8,"137":1,"142":1,"146":1,"155":2,"160":3,"161":1,"163":2,"164":2,"166":1,"169":1}}],["anything",{"2":{"39":1,"91":1}}],["any",{"2":{"1":3,"3":1,"4":2,"6":19,"18":1,"24":1,"25":1,"27":1,"29":1,"38":2,"44":1,"45":7,"47":1,"50":1,"52":1,"54":4,"57":1,"60":2,"70":2,"71":1,"74":1,"82":1,"84":2,"85":1,"86":2,"87":1,"88":2,"91":8,"97":2,"101":2,"111":2,"115":1,"121":2,"125":1,"126":2,"128":1,"133":2,"134":1,"135":3,"136":4,"140":4,"142":2,"144":1,"146":1,"147":1,"152":1,"161":1,"168":2,"169":2}}],["and",{"0":{"1":1,"20":1,"22":1,"24":1,"35":1,"52":1,"54":1,"57":1,"58":1,"163":1,"164":1,"166":1},"1":{"36":1,"37":1,"59":1,"60":1},"2":{"0":2,"1":8,"3":11,"4":18,"6":84,"7":1,"9":2,"17":4,"18":4,"20":2,"22":1,"23":2,"24":3,"25":2,"26":5,"27":2,"29":2,"30":1,"33":13,"34":1,"36":1,"37":7,"38":2,"39":2,"40":20,"41":1,"42":2,"43":1,"44":29,"45":71,"46":2,"47":18,"49":1,"50":4,"51":4,"52":16,"53":4,"54":38,"56":6,"57":15,"59":2,"60":13,"62":3,"63":2,"65":2,"66":13,"68":2,"69":3,"72":3,"73":4,"74":1,"78":2,"79":2,"80":1,"83":3,"86":3,"87":1,"88":1,"91":36,"93":1,"96":2,"97":3,"100":2,"104":2,"105":2,"109":3,"110":4,"112":2,"113":3,"114":3,"115":1,"120":2,"121":16,"123":1,"124":2,"125":1,"126":8,"128":1,"131":2,"132":3,"133":22,"134":1,"135":4,"136":2,"137":2,"138":1,"141":2,"142":2,"145":1,"146":5,"147":4,"148":2,"149":1,"150":8,"152":8,"153":1,"154":1,"155":1,"158":1,"159":3,"160":4,"162":3,"163":9,"164":7,"165":2,"167":5,"168":2,"169":4,"170":2}}],["apart",{"2":{"140":1}}],["april",{"0":{"7":1}}],["appears",{"2":{"124":1}}],["append",{"2":{"33":1,"45":5,"51":1,"52":2,"54":2,"56":1,"57":5,"140":2}}],["approximately",{"2":{"45":1,"145":1}}],["approach",{"2":{"19":1}}],["appropriately",{"2":{"169":1}}],["appropriate",{"2":{"6":1,"160":2}}],["applies",{"2":{"131":2}}],["applied",{"2":{"6":3,"20":1,"128":1,"133":2,"134":2,"135":2,"136":1}}],["application",{"2":{"1":1,"6":3,"125":1,"133":1,"135":3,"136":1,"140":2,"144":1,"147":1}}],["apply`",{"2":{"133":1}}],["applys",{"2":{"37":1,"47":1}}],["applyreduce",{"0":{"19":1},"2":{"0":2,"1":1,"6":1,"17":1,"19":2,"29":1,"33":1,"37":1,"44":2,"47":1,"60":2,"126":3,"128":1,"133":39,"159":1}}],["apply",{"0":{"1":1,"18":1,"22":1,"29":1,"131":1},"1":{"19":1},"2":{"0":2,"1":4,"6":7,"17":1,"18":5,"20":1,"22":1,"24":1,"29":3,"126":5,"128":1,"130":1,"131":4,"132":1,"133":56,"135":4,"136":1,"137":1,"141":3,"142":1,"146":1,"147":1,"150":2,"155":3,"156":2,"159":1}}],["apis",{"2":{"17":1}}],["api",{"0":{"0":1,"40":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"6":3,"24":1,"40":1,"146":1,"150":1,"160":1}}],["snapped",{"2":{"121":1}}],["s3",{"2":{"45":3}}],["scratch",{"2":{"167":1}}],["sciences",{"2":{"164":1}}],["scalefactor",{"2":{"146":3}}],["scattered",{"2":{"169":1}}],["scatter",{"2":{"43":1,"59":2,"62":2,"65":2,"68":1,"78":1,"82":2,"96":2,"109":2,"169":1}}],["schema",{"2":{"133":6}}],["scheme",{"2":{"44":1}}],["scenario",{"2":{"91":2}}],["scene",{"2":{"14":1}}],["skipmissing",{"2":{"121":1}}],["skipped",{"2":{"121":1}}],["skip",{"2":{"37":1,"91":14,"121":1,"154":4}}],["skygering",{"2":{"7":1}}],["square",{"2":{"60":1,"151":1,"152":1}}],["squared",{"2":{"6":2,"47":2,"60":12,"151":2,"152":7}}],["sqrt",{"2":{"33":2,"44":1,"60":3}}],["sgn",{"2":{"33":5}}],["smallest",{"2":{"33":2,"54":1}}],["sᵢ₋₁",{"2":{"40":25}}],["sᵢ₊₁",{"2":{"6":2,"40":41}}],["sᵢ",{"2":{"6":4,"40":46}}],["src",{"2":{"6":2}}],["syntax",{"2":{"166":1}}],["symdifference",{"2":{"122":1}}],["sym10100477",{"2":{"91":1}}],["symbol=",{"2":{"80":1}}],["symbol",{"2":{"6":1,"160":2}}],["system",{"0":{"164":1,"165":1},"2":{"1":2,"142":2,"162":2,"164":1}}],["switches",{"2":{"54":1,"57":1}}],["switch",{"2":{"45":1,"57":1,"159":1}}],["switching",{"2":{"6":1,"47":1}}],["swap",{"2":{"6":1,"57":1,"60":2,"141":1}}],["swapped",{"2":{"3":1,"6":1,"63":1,"69":1,"79":1,"80":1,"94":1,"97":1}}],["swapping",{"2":{"1":1,"6":1,"133":1}}],["s2",{"2":{"6":4,"40":6,"45":3}}],["s1",{"2":{"6":3,"40":6,"45":3}}],["saving",{"0":{"167":1}}],["saved",{"2":{"66":1}}],["save",{"2":{"33":1,"162":1,"167":3}}],["samples",{"2":{"13":1}}],["sample",{"2":{"13":1}}],["same",{"2":{"3":2,"4":12,"6":23,"18":1,"33":3,"37":1,"45":15,"47":1,"50":1,"51":3,"53":1,"54":1,"56":1,"57":1,"59":1,"65":2,"66":30,"91":2,"96":1,"97":8,"123":1,"128":1,"131":1,"133":6,"136":2,"139":1,"140":2,"145":1,"163":1,"164":1,"167":1}}],["say",{"2":{"6":1,"40":1,"146":1}}],["span",{"2":{"169":1}}],["spatial",{"0":{"168":1},"1":{"169":1,"170":1,"171":1},"2":{"168":6,"169":3,"171":1}}],["spawn",{"2":{"133":5}}],["space",{"2":{"6":2,"25":1,"27":1,"33":1,"36":1,"91":1,"146":1,"147":1}}],["sp",{"2":{"91":2}}],["split",{"2":{"50":1}}],["specialized",{"2":{"25":1,"27":1}}],["specify",{"2":{"6":1,"128":1,"133":1,"164":1,"165":1,"168":1}}],["specification",{"2":{"124":1,"135":1,"138":1,"139":1}}],["specifically",{"2":{"6":2,"40":3,"148":1,"168":1}}],["specific",{"2":{"45":1,"69":1,"83":1,"100":1,"110":1,"133":5}}],["specified",{"2":{"3":1,"6":2,"45":1,"52":2,"54":2,"57":2,"97":1,"131":1,"150":1}}],["slow",{"2":{"170":1}}],["slower",{"2":{"6":1,"160":2}}],["slope2",{"2":{"120":2}}],["slope1",{"2":{"120":2}}],["slidergrid",{"2":{"14":1}}],["sliders",{"2":{"14":3}}],["slightly",{"2":{"4":2,"6":2,"37":2}}],["suite",{"2":{"146":5,"150":13}}],["suggestion",{"2":{"143":1}}],["sun",{"2":{"91":1}}],["surrounds",{"2":{"91":1}}],["sure",{"2":{"9":1,"33":1,"45":2,"60":1,"97":1,"154":1}}],["suppose",{"2":{"170":1,"171":1}}],["support",{"2":{"41":1,"144":1,"171":1}}],["supports",{"2":{"39":1,"40":1,"167":1,"171":2}}],["supported",{"2":{"23":1,"167":1}}],["supertype",{"2":{"6":1,"40":1}}],["sukumar",{"2":{"6":1,"40":1}}],["such",{"2":{"4":1,"6":1,"36":1,"49":1,"131":1,"137":1}}],["sum=1",{"2":{"40":1}}],["sum",{"2":{"4":2,"6":3,"11":6,"36":1,"37":2,"38":2,"40":8,"47":1,"60":2,"120":5,"154":1,"161":4}}],["sublevel",{"2":{"170":1}}],["subsequent",{"2":{"163":1}}],["substituted",{"2":{"1":1,"6":1,"133":1}}],["subgeom1",{"2":{"133":2}}],["subgeom",{"2":{"133":3}}],["subject",{"2":{"45":1}}],["subtype",{"2":{"133":1}}],["subtypes",{"2":{"6":2,"40":2}}],["subtracted",{"2":{"120":1}}],["subtitle",{"2":{"13":1,"39":2,"146":1,"150":2}}],["sub",{"2":{"4":6,"6":7,"33":1,"37":3,"47":1,"52":6,"54":3,"57":4,"60":2,"75":2,"76":2,"89":2,"90":2,"106":2,"107":2,"116":2,"117":2,"133":3,"138":4,"139":2,"140":4}}],["series",{"2":{"163":1}}],["serve",{"2":{"6":1,"40":1}}],["searchsortedfirst",{"2":{"152":1}}],["seg2",{"2":{"120":2}}],["seg1",{"2":{"120":3}}],["seg",{"2":{"91":23,"97":9}}],["segmentation",{"2":{"145":1}}],["segments",{"2":{"23":1,"32":2,"33":1,"34":1,"43":1,"44":2,"45":3,"47":1,"54":6,"91":18,"146":1,"147":3}}],["segmentization",{"2":{"144":1}}],["segmentizing",{"2":{"6":3,"145":1,"146":2,"147":1}}],["segmentized",{"2":{"145":1}}],["segmentizes",{"2":{"144":1}}],["segmentizemethod",{"2":{"6":1,"146":3,"147":2}}],["segmentize",{"0":{"144":1},"1":{"145":1,"146":1,"147":1},"2":{"0":1,"6":4,"34":1,"41":1,"126":1,"144":1,"145":5,"146":11,"147":13}}],["segment",{"2":{"4":4,"6":7,"33":1,"44":5,"45":6,"47":3,"49":1,"54":17,"60":2,"80":3,"91":43,"97":3,"120":2,"144":1,"146":2,"147":1}}],["seperate",{"2":{"54":1}}],["separates",{"2":{"91":1}}],["separate",{"2":{"45":1,"121":1,"133":1,"159":1,"167":1,"169":1}}],["separately",{"2":{"40":1,"121":1}}],["sense",{"2":{"37":1,"60":1}}],["several",{"2":{"20":2,"37":1,"123":1,"140":1}}],["section",{"2":{"26":1,"91":3,"96":1}}],["sections",{"2":{"10":1,"26":1}}],["seconds=1",{"2":{"146":3,"150":8}}],["secondisleft",{"2":{"121":4}}],["secondisstraight",{"2":{"121":7}}],["secondary",{"2":{"3":3,"6":3,"63":1,"69":1,"110":1}}],["second",{"2":{"3":8,"6":9,"45":1,"54":4,"62":2,"63":1,"66":1,"68":1,"69":1,"72":1,"73":1,"74":1,"79":2,"83":2,"91":2,"100":1,"109":1,"110":1,"113":1,"114":1,"115":2,"152":1,"165":1,"168":1}}],["self",{"2":{"9":2}}],["selected",{"2":{"121":1}}],["selectednode",{"2":{"121":3}}],["selection",{"2":{"14":1}}],["select",{"2":{"6":1,"158":1}}],["seem",{"2":{"25":1,"27":1}}],["see",{"2":{"6":3,"7":1,"29":1,"43":1,"60":1,"62":1,"65":1,"68":1,"82":1,"91":5,"93":1,"96":1,"99":1,"109":1,"121":2,"124":1,"125":1,"135":1,"136":3,"139":1,"140":2,"145":2,"152":1,"169":2}}],["setup=",{"2":{"69":1,"83":1,"100":1,"110":1}}],["sets",{"2":{"45":1}}],["setting",{"2":{"23":1}}],["set",{"0":{"23":1},"2":{"3":2,"4":7,"6":19,"23":1,"33":1,"38":2,"40":8,"45":3,"51":2,"53":2,"54":7,"56":2,"65":2,"66":10,"69":1,"80":1,"83":1,"91":2,"97":1,"100":1,"110":1,"120":1,"121":1,"136":2,"140":2,"152":2,"163":1,"167":1,"169":3}}],["sve",{"2":{"1":1,"6":1,"155":1}}],["svector",{"2":{"1":14,"6":14,"45":5,"51":1,"54":2,"57":6,"91":1,"121":1,"155":13,"163":6,"165":4}}],["solution",{"2":{"91":1}}],["solid",{"2":{"6":2}}],["south",{"2":{"47":7}}],["source",{"2":{"1":10,"3":19,"4":22,"5":3,"6":89,"26":4,"80":2,"128":3,"135":1,"136":4,"142":3,"164":13,"165":1}}],["sort",{"2":{"45":4,"50":2,"54":2,"56":2,"91":1,"97":2,"121":1,"152":1}}],["sorted",{"2":{"20":1,"45":1,"152":7,"168":1}}],["someone",{"2":{"160":1}}],["something",{"0":{"55":1},"2":{"10":1}}],["some",{"2":{"3":1,"6":3,"9":1,"17":1,"40":4,"66":1,"91":3,"97":1,"121":1,"122":1,"126":2,"131":2,"133":2,"134":1,"135":2,"136":1,"154":1,"157":2,"162":2,"168":1,"171":1}}],["so",{"2":{"1":1,"4":4,"6":10,"9":1,"17":1,"19":1,"25":1,"27":1,"34":1,"39":1,"40":1,"45":1,"46":1,"54":1,"56":2,"57":2,"59":1,"60":1,"62":1,"65":1,"66":4,"82":1,"91":2,"93":1,"109":1,"121":3,"128":1,"133":6,"144":1,"145":1,"146":3,"147":1,"154":1,"155":1,"160":2,"164":1,"165":1}}],["step",{"2":{"45":7,"51":1,"52":3,"53":1,"54":3,"56":1,"57":3,"121":4,"161":1}}],["storing",{"2":{"167":1}}],["stored",{"2":{"45":2,"169":1}}],["stores",{"2":{"45":1}}],["store",{"2":{"40":1,"167":1}}],["stopping",{"2":{"152":2}}],["stops",{"2":{"131":1}}],["stop",{"2":{"18":2,"80":3,"91":4,"97":3}}],["style",{"2":{"6":2}}],["style=",{"2":{"6":2}}],["standardized",{"2":{"91":1}}],["standards",{"2":{"91":1}}],["stay",{"2":{"57":1}}],["stackoverflow",{"2":{"54":1}}],["stack",{"2":{"50":1}}],["states",{"2":{"150":1}}],["state",{"2":{"56":1,"170":9}}],["status",{"2":{"45":31,"52":4,"54":5,"57":4,"121":1}}],["static",{"2":{"159":1}}],["staticarray",{"2":{"40":1}}],["staticarrays",{"2":{"34":1,"45":5,"51":1,"54":2,"57":6,"91":1,"121":1,"155":2}}],["staticarraysco",{"2":{"1":1,"6":1,"155":1}}],["staticarrayscore",{"2":{"1":10,"6":10,"40":1,"155":10,"163":6,"165":4}}],["statica",{"2":{"1":1,"6":1,"155":1}}],["statistics",{"2":{"13":2,"34":1}}],["stability",{"2":{"23":1,"30":1}}],["stable",{"2":{"13":1,"24":1,"147":1}}],["stage",{"2":{"7":1}}],["started",{"2":{"45":1}}],["starting",{"2":{"44":2,"45":1,"47":1,"54":1,"140":4}}],["startvalue",{"2":{"14":4}}],["start",{"2":{"6":1,"18":1,"33":7,"40":1,"45":76,"47":17,"52":4,"54":4,"57":5,"66":1,"80":4,"91":44,"97":3,"112":1,"121":2,"123":1,"152":16,"163":1}}],["straightline",{"2":{"121":3}}],["straight",{"2":{"121":6}}],["strait",{"2":{"121":1}}],["structs",{"2":{"20":1,"135":1}}],["structures",{"2":{"126":1}}],["structure",{"2":{"6":2,"128":1,"133":1,"141":1}}],["struct",{"2":{"6":3,"40":2,"45":2,"125":1,"140":2,"146":2,"151":1,"152":1,"153":1,"158":3,"159":2,"160":4}}],["strings",{"2":{"6":1,"44":1,"54":1}}],["string",{"2":{"1":2,"14":1,"43":1,"44":1,"142":2}}],["still",{"2":{"0":1,"37":1,"44":1,"45":3,"68":1,"152":1}}],["shp",{"2":{"167":1}}],["ships",{"2":{"164":1}}],["shifting",{"2":{"165":1}}],["shift",{"2":{"163":3}}],["shewchuck",{"2":{"7":1}}],["short",{"2":{"133":1}}],["show",{"2":{"9":1,"11":1,"13":1,"14":1,"39":1,"164":1,"167":1,"168":2}}],["shoelace",{"2":{"4":1,"6":1,"37":2,"47":1}}],["shouldn",{"2":{"54":1}}],["should",{"2":{"1":1,"4":1,"6":14,"17":1,"18":1,"20":2,"25":1,"27":1,"33":3,"37":1,"44":1,"45":3,"46":1,"66":1,"91":4,"121":2,"124":1,"128":1,"133":2,"135":4,"136":2,"147":1,"150":2,"159":1}}],["sharing",{"2":{"82":1}}],["shares",{"2":{"54":1}}],["share",{"2":{"4":7,"6":8,"65":2,"66":8,"86":2,"87":1,"88":1,"97":1,"105":1}}],["shared",{"0":{"154":1},"2":{"3":1,"6":1,"45":2,"54":2,"97":3}}],["shapes",{"2":{"60":1,"167":7}}],["shape",{"2":{"43":1,"52":1,"54":1,"65":1,"139":1,"163":1}}],["shaped",{"2":{"39":1}}],["shapefiles",{"2":{"167":1}}],["shapefile",{"2":{"29":1,"167":4}}],["shallower",{"2":{"1":1,"6":1,"133":1}}],["sites",{"2":{"170":1}}],["sides",{"2":{"45":3,"124":1}}],["side",{"2":{"33":4,"45":26}}],["signals",{"2":{"132":1}}],["sign",{"2":{"13":2,"14":2,"33":7,"37":2,"120":3}}],["signed",{"0":{"35":1,"36":1,"58":1,"59":1},"1":{"36":1,"37":1,"59":1,"60":1},"2":{"0":4,"4":15,"6":18,"11":3,"35":1,"36":5,"37":23,"47":3,"58":1,"59":7,"60":19}}],["six",{"2":{"6":1,"150":1}}],["size=",{"2":{"164":1}}],["sizehint",{"2":{"45":2,"52":1,"147":1}}],["size",{"2":{"6":4,"13":2,"14":5,"39":1,"57":1,"121":2,"133":4,"150":1}}],["sin",{"2":{"163":3,"164":1,"165":2}}],["singed",{"2":{"60":1}}],["singular",{"2":{"54":1}}],["singlepoly",{"2":{"150":6}}],["single",{"2":{"4":6,"6":10,"23":1,"33":2,"37":1,"47":1,"66":5,"96":2,"121":2,"136":2,"138":1,"140":2,"163":3,"167":1}}],["since",{"2":{"1":1,"6":2,"26":1,"33":1,"37":1,"44":1,"47":2,"56":1,"60":1,"66":1,"91":1,"97":2,"104":1,"142":1,"159":1,"160":2,"170":1}}],["simulation",{"2":{"23":1}}],["simultaneously",{"2":{"20":1}}],["simply",{"2":{"7":1,"36":1,"41":1,"45":1,"54":1,"57":1,"63":1,"79":1,"94":1,"121":1,"134":1,"142":1,"143":1,"146":1,"163":1,"166":1}}],["simple",{"0":{"169":1},"2":{"6":2,"40":1,"126":3,"141":1,"142":1,"149":2,"150":2,"159":1}}],["simpler",{"2":{"6":1,"121":1}}],["simplifier",{"2":{"150":4}}],["simplified",{"2":{"23":1,"149":1}}],["simplifies",{"2":{"6":3,"151":1,"152":1,"153":1}}],["simplification",{"0":{"148":1},"1":{"149":1,"150":1},"2":{"6":2,"148":2,"150":3}}],["simplifying",{"2":{"148":1}}],["simplify",{"0":{"151":1,"152":1,"153":1},"2":{"0":1,"6":15,"9":1,"34":1,"45":1,"126":1,"149":1,"150":41,"151":1,"152":2,"153":1}}],["simplifyalgs",{"2":{"154":1}}],["simplifyalg",{"2":{"0":1,"6":8,"150":5,"151":2,"152":2,"153":2}}],["similarly",{"2":{"126":1}}],["similar",{"2":{"1":1,"6":3,"18":1,"25":1,"27":1,"29":1,"41":1,"121":2,"133":1,"146":2,"147":1,"156":1}}],["s",{"0":{"30":1},"2":{"0":1,"3":1,"6":10,"7":1,"9":1,"18":1,"19":1,"29":1,"33":1,"36":1,"37":4,"38":1,"39":2,"40":5,"43":3,"44":3,"45":3,"47":1,"49":1,"52":1,"54":2,"57":3,"60":1,"66":1,"78":2,"85":3,"86":4,"87":2,"91":9,"97":1,"99":1,"100":1,"105":1,"121":5,"125":1,"126":2,"128":3,"129":1,"133":1,"136":4,"138":1,"140":3,"145":4,"146":1,"148":1,"150":2,"154":4,"158":2,"159":1,"160":6,"163":6,"164":4,"165":4,"166":2,"167":5,"171":2}}],["fn",{"2":{"167":8}}],["fc",{"2":{"133":22,"150":3,"161":14}}],["fj",{"2":{"121":2}}],["f2",{"2":{"45":2}}],["f1",{"2":{"45":2}}],["f64",{"2":{"13":2,"14":2}}],["fetch",{"2":{"133":2}}],["fetched",{"2":{"121":1}}],["few",{"2":{"124":1}}],["feb",{"0":{"8":1},"1":{"9":1,"10":1}}],["featurecollection",{"2":{"6":2,"11":1,"18":1,"121":4,"133":7,"164":2}}],["featurecollectiontrait",{"2":{"1":1,"6":2,"128":1,"131":1,"133":14,"161":5}}],["features",{"0":{"70":1,"84":1,"101":1,"111":1},"2":{"1":1,"6":2,"11":1,"22":1,"121":3,"132":1,"133":19,"164":1}}],["featuretrait",{"2":{"1":2,"6":3,"70":4,"80":2,"84":4,"101":4,"111":4,"128":1,"131":3,"133":15,"161":5}}],["feature",{"2":{"1":6,"4":1,"6":10,"18":2,"22":1,"37":1,"47":1,"121":2,"126":1,"132":1,"133":49,"150":2,"161":2,"167":1}}],["fra",{"2":{"170":2}}],["frame",{"2":{"166":1}}],["framework",{"2":{"126":4}}],["fracs",{"2":{"45":20,"50":1}}],["frac",{"2":{"40":1,"45":2,"54":17,"150":2}}],["fractional",{"2":{"45":1,"54":3}}],["fractions",{"2":{"45":1,"54":4}}],["fraction",{"2":{"6":4,"54":2,"60":1,"150":1}}],["front",{"2":{"33":1}}],["from",{"2":{"1":3,"3":4,"4":16,"6":29,"7":1,"11":1,"20":1,"22":1,"26":1,"34":1,"37":2,"39":1,"40":4,"41":1,"44":1,"45":6,"47":11,"50":1,"51":1,"52":3,"53":1,"54":11,"56":1,"57":6,"60":25,"83":2,"85":5,"86":4,"87":2,"88":1,"89":2,"91":6,"97":2,"120":2,"121":7,"128":3,"133":3,"140":1,"142":4,"144":1,"150":1,"151":1,"152":3,"153":1,"161":1,"162":1,"164":5,"167":1,"168":1,"169":1,"171":1}}],["footprint",{"2":{"165":1}}],["foldable",{"2":{"133":3}}],["follows",{"2":{"45":2,"69":1,"83":1,"100":1,"110":1,"121":1}}],["followed",{"2":{"26":1}}],["following",{"2":{"6":1,"40":1,"49":1,"124":1,"139":1,"150":1,"168":1}}],["focusing",{"2":{"25":1,"27":1}}],["foundational",{"2":{"17":1}}],["found",{"2":{"6":8,"26":1,"47":1,"50":1,"51":2,"53":2,"54":1,"56":2,"66":1,"121":5,"131":3,"133":7,"147":1}}],["forward",{"2":{"54":1}}],["forwards",{"2":{"45":1,"52":1,"57":1}}],["formats",{"2":{"162":1,"165":1,"167":3}}],["format",{"2":{"50":1,"167":3}}],["form",{"2":{"18":1,"45":3,"54":8,"57":3,"133":1}}],["formed",{"2":{"4":2,"6":3,"32":1,"33":4,"40":1,"45":8,"56":1,"57":1,"152":1}}],["formula",{"2":{"4":1,"6":1,"37":2,"47":1}}],["force",{"2":{"1":1,"133":1,"142":1,"150":1}}],["for",{"0":{"52":1,"54":1,"57":1},"2":{"0":2,"1":3,"3":1,"4":4,"5":3,"6":44,"7":4,"9":2,"13":5,"14":1,"18":1,"20":1,"22":1,"23":5,"25":3,"26":1,"27":3,"29":1,"33":5,"34":1,"37":8,"38":1,"39":1,"40":19,"41":3,"44":7,"45":35,"47":11,"50":5,"51":2,"52":3,"53":1,"54":7,"56":1,"57":9,"59":2,"60":7,"66":13,"69":3,"75":1,"76":1,"78":1,"80":6,"83":2,"89":1,"90":1,"91":22,"96":1,"97":11,"100":2,"106":1,"107":1,"110":3,"116":1,"117":1,"119":1,"120":5,"121":13,"122":1,"123":3,"124":2,"126":3,"128":6,"129":2,"133":6,"134":1,"135":5,"137":1,"138":3,"139":1,"140":5,"142":3,"144":4,"145":7,"146":6,"147":8,"148":4,"150":12,"151":2,"152":2,"153":1,"154":6,"158":1,"159":2,"160":5,"161":7,"162":1,"164":4,"165":1,"167":3,"168":1,"170":2,"171":1}}],["fi",{"2":{"121":2}}],["fine",{"2":{"145":1}}],["final",{"2":{"57":1,"135":4,"146":1}}],["finally",{"2":{"39":2,"54":1,"121":1,"133":3,"167":1}}],["findmin",{"2":{"154":1}}],["findmax",{"2":{"150":1,"152":1}}],["findall",{"2":{"135":1}}],["finding",{"2":{"54":1}}],["findfirst",{"2":{"45":6,"50":2,"150":1}}],["findnext",{"2":{"45":3}}],["findlast",{"2":{"45":2}}],["findprev",{"2":{"45":2}}],["finds",{"2":{"45":1,"47":1}}],["find",{"2":{"33":6,"37":1,"45":12,"47":3,"50":2,"51":4,"53":2,"54":8,"56":1,"60":3,"66":1,"91":7,"121":2,"152":5,"170":1}}],["finish",{"2":{"9":1}}],["fill",{"2":{"45":1,"121":1,"147":3}}],["filled",{"2":{"45":5,"47":3,"59":1,"60":2,"91":16}}],["files",{"2":{"157":1,"167":2}}],["file",{"2":{"26":1,"45":1,"69":3,"83":3,"100":3,"110":3,"121":1,"122":1,"126":1,"134":1,"142":1,"147":1,"148":1,"157":2,"162":1,"167":2}}],["filters",{"2":{"45":1}}],["filtering",{"2":{"6":1,"150":1}}],["filter",{"2":{"4":1,"6":2,"45":2,"133":3,"137":1,"140":2,"150":1}}],["fit",{"2":{"17":1}}],["field",{"2":{"13":2,"45":2}}],["figure",{"2":{"13":1,"14":1,"36":1,"39":2,"164":3}}],["fig",{"2":{"13":6,"14":6,"163":7,"164":4}}],["fix1",{"2":{"133":2,"147":1}}],["fixme",{"2":{"120":1}}],["fix2",{"2":{"45":2}}],["fixed",{"2":{"6":3,"51":1,"53":1,"56":1}}],["fix",{"0":{"20":1},"2":{"6":9,"9":3,"15":3,"17":1,"20":1,"51":1,"52":11,"53":1,"54":11,"56":1,"57":10,"124":1,"134":1,"135":1,"139":1}}],["firstisright",{"2":{"121":2}}],["firstisleft",{"2":{"121":4}}],["firstisstraight",{"2":{"121":4}}],["firstnode",{"2":{"121":9}}],["first",{"2":{"3":9,"6":10,"33":14,"37":7,"39":1,"40":9,"41":1,"44":1,"45":17,"47":2,"50":1,"51":2,"53":1,"54":5,"56":3,"60":8,"62":2,"63":2,"66":4,"68":1,"69":2,"72":1,"73":1,"74":1,"79":2,"83":3,"91":22,"97":1,"100":2,"102":1,"109":1,"110":2,"113":1,"114":1,"115":2,"120":1,"121":16,"124":1,"133":6,"147":3,"151":1,"152":2,"161":2,"162":1,"163":1,"164":1,"165":1,"168":1,"169":1}}],["fancy",{"2":{"163":1}}],["fancis",{"2":{"6":1,"40":1}}],["fair",{"2":{"145":1}}],["fail",{"2":{"1":1,"6":2,"133":6,"146":1}}],["fallback",{"2":{"133":1}}],["falses",{"2":{"45":2,"50":1,"51":1,"53":1}}],["false",{"0":{"24":1},"2":{"1":29,"3":7,"4":3,"6":55,"33":2,"37":1,"39":5,"45":26,"47":5,"50":1,"51":1,"52":3,"54":1,"56":4,"60":2,"62":2,"65":2,"66":27,"69":8,"71":2,"72":4,"73":1,"74":1,"75":1,"76":1,"78":2,"80":11,"83":9,"85":1,"86":4,"89":1,"90":1,"91":39,"97":22,"100":8,"102":3,"103":4,"104":1,"106":1,"107":1,"109":1,"110":7,"112":2,"113":4,"114":1,"115":1,"116":1,"117":1,"120":10,"121":5,"124":16,"133":18,"139":44,"140":4,"147":2,"150":1,"154":2,"155":20,"159":2,"161":2,"163":242,"164":12,"165":18,"168":1}}],["fashion",{"2":{"36":1}}],["faster",{"2":{"40":1,"133":1}}],["fast",{"2":{"12":1}}],["f",{"2":{"1":12,"6":25,"15":1,"18":3,"19":1,"22":2,"32":1,"36":2,"39":4,"41":1,"43":2,"45":19,"46":2,"49":2,"51":2,"52":2,"53":2,"54":2,"56":2,"57":2,"59":5,"62":2,"65":2,"68":2,"78":2,"82":2,"91":7,"93":2,"96":2,"99":2,"109":2,"121":30,"128":2,"131":2,"133":168,"143":1,"145":2,"146":1,"149":2,"150":1,"154":6,"155":6,"160":5,"161":16,"163":6,"165":2,"169":3}}],["fulfilled",{"2":{"152":1}}],["fully",{"2":{"6":1,"45":4,"50":1,"97":4}}],["full",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"0":1,"47":5,"135":1,"170":4}}],["furthest",{"2":{"121":1}}],["further",{"2":{"43":1,"133":1}}],["furthermore",{"2":{"3":2,"6":5,"45":1,"51":1,"53":1,"56":1,"69":1,"110":1}}],["fun",{"2":{"163":1}}],["fundamental",{"2":{"26":1,"157":1}}],["func",{"2":{"13":5}}],["funcs",{"2":{"13":2,"14":3}}],["functionality",{"2":{"54":1,"126":1,"141":1,"142":1,"147":1,"160":1}}],["functionalities",{"2":{"45":1}}],["functionally",{"2":{"1":1,"6":1,"18":1,"29":1,"133":1}}],["function",{"2":{"1":8,"3":9,"4":9,"5":3,"6":12,"7":2,"9":1,"13":3,"14":2,"18":2,"29":1,"33":5,"34":1,"37":3,"40":13,"44":6,"45":18,"47":7,"49":2,"50":4,"51":3,"52":3,"53":2,"54":7,"55":1,"56":2,"57":4,"60":6,"62":1,"65":1,"66":8,"68":1,"69":1,"75":1,"76":1,"78":1,"80":5,"82":1,"83":1,"89":1,"90":1,"91":9,"93":1,"96":1,"97":7,"99":1,"100":1,"106":1,"107":1,"109":1,"110":1,"116":1,"117":1,"120":4,"121":16,"122":3,"125":2,"128":3,"131":2,"133":29,"135":7,"136":2,"140":2,"141":2,"142":1,"144":2,"146":2,"147":7,"150":3,"151":2,"152":3,"153":2,"154":7,"155":3,"156":1,"160":6,"161":12,"163":1,"168":1,"171":4}}],["functions",{"0":{"1":1,"52":1,"54":1,"57":1,"126":1,"128":1,"161":1},"1":{"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1},"2":{"6":1,"9":3,"17":1,"26":1,"29":1,"37":1,"40":1,"44":1,"45":2,"47":1,"49":1,"91":1,"122":1,"126":2,"131":1,"135":2,"136":1}}],["future",{"2":{"23":1,"60":1,"144":2}}],["flexijoins",{"2":{"168":1,"169":3,"170":1,"171":5}}],["flags",{"2":{"45":5}}],["flag",{"2":{"45":12,"50":1}}],["flat",{"2":{"6":1,"154":2,"161":1}}],["flattened",{"2":{"18":1}}],["flattening",{"2":{"6":4,"146":2}}],["flatten",{"2":{"0":2,"6":4,"11":3,"13":1,"18":1,"40":1,"45":2,"47":3,"53":1,"57":1,"80":1,"128":4,"133":27,"140":1}}],["floating",{"2":{"6":1,"45":1,"54":5,"121":2}}],["float",{"2":{"6":3,"51":1,"53":1,"56":1}}],["float64x2",{"2":{"13":6,"14":6,"15":2}}],["float64",{"2":{"1":6,"4":10,"6":30,"13":1,"32":1,"33":3,"37":6,"44":1,"47":4,"50":2,"51":2,"53":1,"54":3,"56":1,"60":12,"91":4,"97":2,"120":4,"124":6,"139":26,"145":2,"146":2,"147":1,"151":4,"152":9,"153":2,"154":6,"155":6,"156":1,"161":8,"163":190,"164":7,"165":10}}],["flipping",{"0":{"141":1},"2":{"141":1}}],["flipped",{"2":{"1":2,"6":2,"133":2}}],["flipaxis",{"2":{"39":1}}],["flip",{"2":{"0":1,"6":1,"34":1,"126":2,"133":1,"141":2}}],["wgs84",{"2":{"164":1}}],["wglmakie",{"2":{"14":1}}],["wₜₒₜ",{"2":{"40":8}}],["wᵢ",{"2":{"40":18}}],["wt",{"2":{"40":3}}],["w",{"2":{"13":13,"14":7,"60":4,"121":1}}],["wrong",{"2":{"138":1,"154":1}}],["writing",{"2":{"167":1}}],["written",{"2":{"66":1}}],["write",{"2":{"7":1,"30":1,"121":1,"167":7}}],["wrap",{"2":{"4":1,"6":1,"137":1,"146":1}}],["wrapped",{"2":{"22":1,"121":2,"131":1,"133":1}}],["wrapper",{"0":{"30":1},"2":{"30":1,"33":1,"37":1,"44":1,"47":1,"60":1,"66":1,"69":1,"83":1,"97":1,"100":1,"110":1}}],["wrappers`",{"2":{"133":1}}],["wrappers",{"2":{"1":10,"6":12,"22":1,"120":2,"121":1,"124":8,"125":1,"128":1,"139":22,"145":1,"146":1,"150":1,"155":10,"161":1,"163":121,"164":5,"165":9}}],["wrappergeometry`",{"2":{"142":1}}],["wrappergeometry",{"2":{"1":1}}],["wrapping",{"2":{"1":1,"6":1,"66":1,"142":1,"156":1}}],["web",{"2":{"167":1}}],["west",{"2":{"47":8}}],["were",{"2":{"45":1,"121":1,"169":1}}],["welcome",{"2":{"25":1,"27":1}}],["well",{"2":{"17":1,"45":1,"47":1,"144":1,"148":1,"159":1}}],["we",{"0":{"55":2},"2":{"7":1,"11":1,"13":1,"17":3,"19":1,"23":3,"24":1,"25":2,"26":1,"27":2,"33":1,"36":2,"37":2,"39":4,"40":8,"41":2,"44":1,"45":7,"47":4,"52":8,"53":2,"54":3,"57":1,"60":1,"62":1,"63":1,"65":1,"66":5,"68":1,"69":1,"79":1,"82":1,"83":1,"91":2,"93":3,"94":1,"96":1,"97":2,"99":1,"100":1,"109":1,"110":1,"121":21,"122":1,"123":1,"131":1,"133":20,"143":1,"144":2,"145":2,"146":3,"147":1,"150":5,"154":2,"157":1,"159":4,"160":1,"162":2,"163":4,"164":6,"165":4,"166":1,"167":3,"168":3,"169":7}}],["weighting",{"2":{"43":2,"44":1}}],["weights",{"2":{"38":4}}],["weight",{"2":{"6":5,"40":14,"44":1}}],["weighted",{"2":{"0":1,"6":2,"38":3,"40":4,"44":4}}],["walk",{"2":{"50":1}}],["wall2",{"2":{"47":7}}],["wall1",{"2":{"47":12}}],["walls",{"2":{"47":3}}],["wall",{"2":{"47":69}}],["wachspress",{"2":{"40":1}}],["wasincreasing",{"2":{"121":10}}],["wasn",{"2":{"45":1}}],["was",{"2":{"33":1,"34":1,"37":1,"39":1,"40":4,"41":1,"44":1,"45":1,"47":1,"50":1,"51":1,"52":3,"53":1,"54":2,"55":1,"56":1,"57":3,"60":1,"63":1,"66":1,"76":1,"79":1,"80":1,"90":1,"91":1,"94":1,"97":1,"107":1,"117":1,"120":1,"121":1,"122":1,"125":1,"131":1,"133":1,"136":1,"137":1,"140":1,"141":1,"143":1,"145":1,"147":1,"154":1,"155":1,"156":1,"160":2,"161":1}}],["wanted",{"2":{"171":1}}],["wants",{"2":{"133":1}}],["want",{"0":{"23":1,"55":1},"2":{"13":1,"18":1,"23":1,"40":1,"45":1,"120":1,"164":2,"166":1,"170":1,"171":1}}],["ways",{"2":{"138":1}}],["way",{"2":{"6":1,"17":1,"18":1,"24":1,"29":1,"38":1,"126":1,"134":1,"147":1,"158":1,"160":2,"166":1}}],["warn",{"2":{"121":2}}],["warned",{"2":{"6":1,"160":1}}],["warning",{"2":{"0":1,"5":1,"6":2,"24":1,"40":1,"133":1,"146":1,"157":1,"170":1}}],["won",{"2":{"23":1,"45":1,"133":1}}],["wouldn",{"2":{"54":1}}],["would",{"0":{"55":1},"2":{"6":3,"23":1,"51":1,"53":1,"54":1,"56":1,"121":1,"159":2,"164":1,"170":1,"171":1}}],["world",{"0":{"170":1},"2":{"168":1}}],["worrying",{"2":{"24":1}}],["words",{"2":{"3":1,"6":1,"62":1,"93":1,"99":1,"100":1}}],["workflow",{"2":{"80":1,"97":1}}],["workflows",{"2":{"23":1,"25":1,"27":1}}],["works",{"2":{"26":1,"142":1,"144":1}}],["working",{"2":{"3":1,"6":1,"80":1,"164":1}}],["work",{"2":{"1":3,"6":3,"9":1,"33":1,"37":2,"44":1,"47":2,"50":2,"60":1,"66":1,"91":1,"97":1,"120":1,"133":2,"142":1,"155":1,"170":1}}],["whole",{"2":{"91":1}}],["whose",{"2":{"3":1,"6":1,"80":1}}],["white",{"2":{"39":1}}],["while",{"2":{"33":1,"43":1,"44":1,"45":5,"54":2,"59":1,"66":1,"80":1,"91":1,"121":3,"140":1,"152":1,"154":2,"169":1}}],["whichever",{"2":{"6":1,"150":1}}],["which",{"2":{"1":1,"4":2,"5":1,"6":7,"7":1,"11":1,"13":1,"14":1,"17":1,"18":4,"20":1,"23":2,"36":1,"37":1,"38":1,"39":2,"40":5,"41":1,"45":11,"47":2,"54":2,"66":2,"91":3,"121":3,"122":1,"123":2,"124":1,"126":1,"133":1,"135":1,"138":1,"139":1,"143":1,"144":1,"145":1,"146":3,"147":2,"150":1,"152":2,"155":1,"158":1,"160":4,"167":3,"168":3,"169":6,"171":1}}],["what",{"0":{"22":1,"25":1,"30":1,"32":1,"36":2,"43":1,"46":1,"49":1,"59":2,"62":1,"65":1,"68":1,"78":1,"82":1,"93":1,"96":1,"99":1,"109":1,"131":1},"2":{"13":1,"14":1,"24":1,"43":1,"120":1,"121":1,"145":1,"159":1,"164":1,"170":1}}],["whatever",{"2":{"1":1,"6":1,"22":1,"133":1}}],["whyatt",{"2":{"148":1}}],["why",{"0":{"22":1,"23":1},"2":{"9":1,"17":1,"30":1,"37":1}}],["wheel",{"2":{"17":1}}],["whether",{"2":{"1":4,"4":1,"6":10,"119":1,"120":1,"123":1,"130":2}}],["when",{"2":{"1":1,"4":2,"5":1,"6":5,"18":1,"20":1,"23":2,"24":1,"37":1,"40":3,"44":1,"45":2,"52":5,"54":6,"57":7,"91":1,"121":1,"124":1,"131":3,"133":1,"135":1,"137":2,"150":1,"164":1,"165":2,"167":1,"171":1}}],["wherever",{"2":{"6":1,"156":1}}],["where",{"2":{"1":2,"4":5,"6":11,"20":1,"33":8,"34":2,"37":12,"38":2,"40":24,"44":8,"45":14,"47":8,"50":5,"51":2,"52":5,"53":3,"54":18,"56":2,"57":9,"60":25,"66":1,"91":9,"121":3,"133":52,"138":1,"142":1,"145":1,"156":1,"157":1,"158":5,"161":3,"163":4}}],["widely",{"2":{"167":1}}],["widths",{"2":{"14":1}}],["width",{"2":{"6":2}}],["wiki",{"2":{"91":1,"152":1}}],["wikipedia",{"2":{"91":1,"152":2}}],["wind",{"2":{"4":1,"6":2,"37":1,"66":1}}],["winding",{"2":{"4":2,"6":2,"37":3,"45":7,"66":1,"121":1}}],["without",{"2":{"1":2,"6":1,"17":1,"24":1,"45":1,"82":1,"97":1,"133":3,"142":1,"155":1}}],["with",{"0":{"52":1,"54":1,"57":1,"151":1,"152":1,"153":1,"165":1,"166":1},"2":{"1":5,"3":5,"4":7,"6":27,"11":1,"20":1,"22":2,"23":1,"32":1,"33":2,"37":7,"38":4,"39":1,"40":2,"44":1,"45":14,"47":6,"52":8,"53":5,"54":15,"56":1,"57":12,"59":1,"60":2,"69":1,"82":1,"86":1,"91":28,"93":1,"96":2,"97":5,"99":1,"100":1,"103":3,"104":2,"105":2,"115":1,"121":7,"124":1,"126":1,"128":2,"131":1,"133":17,"137":1,"138":1,"142":1,"144":1,"147":2,"150":2,"152":2,"153":1,"155":1,"159":1,"160":1,"162":1,"163":4,"164":6,"165":2,"166":2,"167":2,"168":1,"169":1,"170":1}}],["within",{"0":{"108":1,"109":1,"112":1,"113":1,"115":1,"116":1,"117":1},"1":{"109":1,"110":1},"2":{"0":2,"3":9,"4":3,"5":1,"6":13,"7":1,"9":1,"33":2,"34":1,"37":1,"38":3,"40":1,"44":1,"45":9,"46":2,"47":5,"52":1,"54":2,"56":1,"57":6,"59":1,"60":5,"62":2,"63":3,"68":2,"85":1,"91":9,"96":1,"97":9,"108":1,"109":6,"110":11,"111":6,"112":14,"113":15,"114":15,"115":7,"116":4,"117":4,"126":1,"168":1,"169":4,"170":2}}],["will",{"2":{"1":8,"4":7,"5":1,"6":43,"11":1,"18":3,"23":2,"24":1,"33":4,"37":3,"40":2,"44":1,"45":5,"47":1,"50":1,"51":4,"52":4,"53":4,"54":4,"56":4,"57":4,"59":2,"60":4,"66":1,"80":1,"120":1,"121":2,"124":1,"128":2,"131":1,"132":2,"133":8,"136":2,"138":1,"140":2,"142":3,"144":2,"146":3,"150":2,"152":1,"154":1,"155":2,"160":1,"164":1,"167":1,"168":2,"170":1,"171":1}}],["wip",{"2":{"0":1}}]],"serializationVersion":2}';export{e as default}; diff --git a/dev/assets/chunks/VPLocalSearchBox.10C0vCad.js b/dev/assets/chunks/VPLocalSearchBox.BQzORzSF.js similarity index 82% rename from dev/assets/chunks/VPLocalSearchBox.10C0vCad.js rename to dev/assets/chunks/VPLocalSearchBox.BQzORzSF.js index b32de0cda..5b219e8ef 100644 --- a/dev/assets/chunks/VPLocalSearchBox.10C0vCad.js +++ b/dev/assets/chunks/VPLocalSearchBox.BQzORzSF.js @@ -1,7 +1,7 @@ -var kt=Object.defineProperty;var Ft=(a,e,t)=>e in a?kt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Ce=(a,e,t)=>Ft(a,typeof e!="symbol"?e+"":e,t);import{X as Ot,s as ne,v as Ve,al as Rt,am as Ct,d as Mt,G as be,an as et,h as ye,ao as At,ap as Lt,x as Dt,aq as zt,y as Me,R as de,Q as we,ar as Pt,as as jt,Y as Vt,U as $t,a1 as Bt,o as H,b as Wt,j as _,a2 as Kt,k as D,at as Jt,au as Ut,av as qt,c as Z,n as tt,e as _e,E as st,F as nt,a as he,t as fe,aw as Gt,p as Qt,l as Ht,ax as it,ay as Yt,ab as Zt,ah as Xt,az as es,_ as ts}from"./framework.B24clL9_.js";import{u as ss,c as ns}from"./theme.CA8W1fhX.js";const is={root:()=>Ot(()=>import("./@localSearchIndexroot.Bw2U9g4S.js"),[])};/*! +var kt=Object.defineProperty;var Ft=(a,e,t)=>e in a?kt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Ce=(a,e,t)=>Ft(a,typeof e!="symbol"?e+"":e,t);import{X as Ot,s as ne,v as Ve,al as Rt,am as Ct,d as Mt,G as be,an as et,h as ye,ao as At,ap as Lt,x as Dt,aq as zt,y as Me,R as de,Q as we,ar as Pt,as as jt,Y as Vt,U as $t,a1 as Bt,o as H,b as Wt,j as _,a2 as Kt,k as D,at as Jt,au as Ut,av as qt,c as Z,n as tt,e as _e,E as st,F as nt,a as he,t as fe,aw as Gt,p as Qt,l as Ht,ax as it,ay as Yt,ab as Zt,ah as Xt,az as es,_ as ts}from"./framework.CpnCegiD.js";import{u as ss,c as ns}from"./theme.DpIXNgls.js";const is={root:()=>Ot(()=>import("./@localSearchIndexroot.CJomwgzg.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])"],Te=vt.join(","),mt=typeof Element>"u",re=mt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Ne=!mt&&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},ke=function a(e,t){var s;t===void 0&&(t=!0);var n=e==null||(s=e.getAttribute)===null||s===void 0?void 0:s.call(e,"inert"),r=n===""||n==="true",i=r||t&&e&&a(e.parentNode);return i},rs=function(e){var t,s=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return s===""||s==="true"},gt=function(e,t,s){if(ke(e))return[];var n=Array.prototype.slice.apply(e.querySelectorAll(Te));return t&&re.call(e,Te)&&n.unshift(e),n=n.filter(s),n},bt=function a(e,t,s){for(var n=[],r=Array.from(e);r.length;){var i=r.shift();if(!ke(i,!1))if(i.tagName==="SLOT"){var o=i.assignedElements(),c=o.length?o:i.children,l=a(c,!0,s);s.flatten?n.push.apply(n,l):n.push({scopeParent:i,candidates:l})}else{var h=re.call(i,Te);h&&s.filter(i)&&(t||!e.includes(i))&&n.push(i);var f=i.shadowRoot||typeof s.getShadowRoot=="function"&&s.getShadowRoot(i),v=!ke(f,!1)&&(!s.shadowRootFilter||s.shadowRootFilter(i));if(f&&v){var y=a(f===!0?i.children:f.children,!0,s);s.flatten?n.push.apply(n,y):n.push({scopeParent:i,candidates:y})}else r.unshift.apply(r,i.children)}}return n},yt=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)||rs(e))&&!yt(e)?0:e.tabIndex},as=function(e,t){var s=ie(e);return s<0&&t&&!yt(e)?0:s},os=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},wt=function(e){return e.tagName==="INPUT"},cs=function(e){return wt(e)&&e.type==="hidden"},ls=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(s){return s.tagName==="SUMMARY"});return t},us=function(e,t){for(var s=0;ssummary:first-of-type"),i=r?e.parentElement:e;if(re.call(i,"details:not([open]) *"))return!0;if(!s||s==="full"||s==="legacy-full"){if(typeof n=="function"){for(var o=e;e;){var c=e.parentElement,l=Ne(e);if(c&&!c.shadowRoot&&n(c)===!0)return rt(e);e.assignedSlot?e=e.assignedSlot:!c&&l!==e.ownerDocument?e=l.host:e=c}e=o}if(ps(e))return!e.getClientRects().length;if(s!=="legacy-full")return!0}else if(s==="non-zero-area")return rt(e);return!1},ms=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var s=0;s=0)},bs=function a(e){var t=[],s=[];return e.forEach(function(n,r){var i=!!n.scopeParent,o=i?n.scopeParent:n,c=as(o,i),l=i?a(n.candidates):o;c===0?i?t.push.apply(t,l):t.push(o):s.push({documentOrder:r,tabIndex:c,item:n,isScope:i,content:l})}),s.sort(os).reduce(function(n,r){return r.isScope?n.push.apply(n,r.content):n.push(r.content),n},[]).concat(t)},ys=function(e,t){t=t||{};var s;return t.getShadowRoot?s=bt([e],t.includeContainer,{filter:$e.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:gs}):s=gt(e,t.includeContainer,$e.bind(null,t)),bs(s)},ws=function(e,t){t=t||{};var s;return t.getShadowRoot?s=bt([e],t.includeContainer,{filter:Fe.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):s=gt(e,t.includeContainer,Fe.bind(null,t)),s},ae=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return re.call(e,Te)===!1?!1:$e(t,e)},_s=vt.concat("iframe").join(","),Ae=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return re.call(e,_s)===!1?!1:Fe(t,e)};/*! * focus-trap 7.5.4 * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE -*/function at(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter(function(n){return Object.getOwnPropertyDescriptor(a,n).enumerable})),t.push.apply(t,s)}return t}function ot(a){for(var e=1;e0){var s=e[e.length-1];s!==t&&s.pause()}var n=e.indexOf(t);n===-1||e.splice(n,1),e.push(t)},deactivateTrap:function(e,t){var s=e.indexOf(t);s!==-1&&e.splice(s,1),e.length>0&&e[e.length-1].unpause()}},Is=function(e){return e.tagName&&e.tagName.toLowerCase()==="input"&&typeof e.select=="function"},Ts=function(e){return(e==null?void 0:e.key)==="Escape"||(e==null?void 0:e.key)==="Esc"||(e==null?void 0:e.keyCode)===27},ve=function(e){return(e==null?void 0:e.key)==="Tab"||(e==null?void 0:e.keyCode)===9},Ns=function(e){return ve(e)&&!e.shiftKey},ks=function(e){return ve(e)&&e.shiftKey},lt=function(e){return setTimeout(e,0)},ut=function(e,t){var s=-1;return e.every(function(n,r){return t(n)?(s=r,!1):!0}),s},pe=function(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),n=1;n1?m-1:0),E=1;E=0)u=s.activeElement;else{var d=i.tabbableGroups[0],m=d&&d.firstTabbableNode;u=m||h("fallbackFocus")}if(!u)throw new Error("Your focus-trap needs to have at least one focusable element");return u},v=function(){if(i.containerGroups=i.containers.map(function(u){var d=ys(u,r.tabbableOptions),m=ws(u,r.tabbableOptions),S=d.length>0?d[0]:void 0,E=d.length>0?d[d.length-1]:void 0,k=m.find(function(p){return ae(p)}),F=m.slice().reverse().find(function(p){return ae(p)}),M=!!d.find(function(p){return ie(p)>0});return{container:u,tabbableNodes:d,focusableNodes:m,posTabIndexesFound:M,firstTabbableNode:S,lastTabbableNode:E,firstDomTabbableNode:k,lastDomTabbableNode:F,nextTabbableNode:function(g){var N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,O=d.indexOf(g);return O<0?N?m.slice(m.indexOf(g)+1).find(function(P){return ae(P)}):m.slice(0,m.indexOf(g)).reverse().find(function(P){return ae(P)}):d[O+(N?1:-1)]}}}),i.tabbableGroups=i.containerGroups.filter(function(u){return u.tabbableNodes.length>0}),i.tabbableGroups.length<=0&&!h("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(i.containerGroups.find(function(u){return u.posTabIndexesFound})&&i.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},y=function I(u){var d=u.activeElement;if(d)return d.shadowRoot&&d.shadowRoot.activeElement!==null?I(d.shadowRoot):d},w=function I(u){if(u!==!1&&u!==y(document)){if(!u||!u.focus){I(f());return}u.focus({preventScroll:!!r.preventScroll}),i.mostRecentlyFocusedNode=u,Is(u)&&u.select()}},b=function(u){var d=h("setReturnFocus",u);return d||(d===!1?!1:u)},x=function(u){var d=u.target,m=u.event,S=u.isBackward,E=S===void 0?!1:S;d=d||xe(m),v();var k=null;if(i.tabbableGroups.length>0){var F=l(d,m),M=F>=0?i.containerGroups[F]:void 0;if(F<0)E?k=i.tabbableGroups[i.tabbableGroups.length-1].lastTabbableNode:k=i.tabbableGroups[0].firstTabbableNode;else if(E){var p=ut(i.tabbableGroups,function(T){var L=T.firstTabbableNode;return d===L});if(p<0&&(M.container===d||Ae(d,r.tabbableOptions)&&!ae(d,r.tabbableOptions)&&!M.nextTabbableNode(d,!1))&&(p=F),p>=0){var g=p===0?i.tabbableGroups.length-1:p-1,N=i.tabbableGroups[g];k=ie(d)>=0?N.lastTabbableNode:N.lastDomTabbableNode}else ve(m)||(k=M.nextTabbableNode(d,!1))}else{var O=ut(i.tabbableGroups,function(T){var L=T.lastTabbableNode;return d===L});if(O<0&&(M.container===d||Ae(d,r.tabbableOptions)&&!ae(d,r.tabbableOptions)&&!M.nextTabbableNode(d))&&(O=F),O>=0){var P=O===i.tabbableGroups.length-1?0:O+1,j=i.tabbableGroups[P];k=ie(d)>=0?j.firstTabbableNode:j.firstDomTabbableNode}else ve(m)||(k=M.nextTabbableNode(d))}}else k=h("fallbackFocus");return k},C=function(u){var d=xe(u);if(!(l(d,u)>=0)){if(pe(r.clickOutsideDeactivates,u)){o.deactivate({returnFocus:r.returnFocusOnDeactivate});return}pe(r.allowOutsideClick,u)||u.preventDefault()}},R=function(u){var d=xe(u),m=l(d,u)>=0;if(m||d instanceof Document)m&&(i.mostRecentlyFocusedNode=d);else{u.stopImmediatePropagation();var S,E=!0;if(i.mostRecentlyFocusedNode)if(ie(i.mostRecentlyFocusedNode)>0){var k=l(i.mostRecentlyFocusedNode),F=i.containerGroups[k].tabbableNodes;if(F.length>0){var M=F.findIndex(function(p){return p===i.mostRecentlyFocusedNode});M>=0&&(r.isKeyForward(i.recentNavEvent)?M+1=0&&(S=F[M-1],E=!1))}}else i.containerGroups.some(function(p){return p.tabbableNodes.some(function(g){return ie(g)>0})})||(E=!1);else E=!1;E&&(S=x({target:i.mostRecentlyFocusedNode,isBackward:r.isKeyBackward(i.recentNavEvent)})),w(S||i.mostRecentlyFocusedNode||f())}i.recentNavEvent=void 0},W=function(u){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;i.recentNavEvent=u;var m=x({event:u,isBackward:d});m&&(ve(u)&&u.preventDefault(),w(m))},J=function(u){if(Ts(u)&&pe(r.escapeDeactivates,u)!==!1){u.preventDefault(),o.deactivate();return}(r.isKeyForward(u)||r.isKeyBackward(u))&&W(u,r.isKeyBackward(u))},V=function(u){var d=xe(u);l(d,u)>=0||pe(r.clickOutsideDeactivates,u)||pe(r.allowOutsideClick,u)||(u.preventDefault(),u.stopImmediatePropagation())},U=function(){if(i.active)return ct.activateTrap(n,o),i.delayInitialFocusTimer=r.delayInitialFocus?lt(function(){w(f())}):w(f()),s.addEventListener("focusin",R,!0),s.addEventListener("mousedown",C,{capture:!0,passive:!1}),s.addEventListener("touchstart",C,{capture:!0,passive:!1}),s.addEventListener("click",V,{capture:!0,passive:!1}),s.addEventListener("keydown",J,{capture:!0,passive:!1}),o},q=function(){if(i.active)return s.removeEventListener("focusin",R,!0),s.removeEventListener("mousedown",C,!0),s.removeEventListener("touchstart",C,!0),s.removeEventListener("click",V,!0),s.removeEventListener("keydown",J,!0),o},Re=function(u){var d=u.some(function(m){var S=Array.from(m.removedNodes);return S.some(function(E){return E===i.mostRecentlyFocusedNode})});d&&w(f())},A=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(Re):void 0,K=function(){A&&(A.disconnect(),i.active&&!i.paused&&i.containers.map(function(u){A.observe(u,{subtree:!0,childList:!0})}))};return o={get active(){return i.active},get paused(){return i.paused},activate:function(u){if(i.active)return this;var d=c(u,"onActivate"),m=c(u,"onPostActivate"),S=c(u,"checkCanFocusTrap");S||v(),i.active=!0,i.paused=!1,i.nodeFocusedBeforeActivation=s.activeElement,d==null||d();var E=function(){S&&v(),U(),K(),m==null||m()};return S?(S(i.containers.concat()).then(E,E),this):(E(),this)},deactivate:function(u){if(!i.active)return this;var d=ot({onDeactivate:r.onDeactivate,onPostDeactivate:r.onPostDeactivate,checkCanReturnFocus:r.checkCanReturnFocus},u);clearTimeout(i.delayInitialFocusTimer),i.delayInitialFocusTimer=void 0,q(),i.active=!1,i.paused=!1,K(),ct.deactivateTrap(n,o);var m=c(d,"onDeactivate"),S=c(d,"onPostDeactivate"),E=c(d,"checkCanReturnFocus"),k=c(d,"returnFocus","returnFocusOnDeactivate");m==null||m();var F=function(){lt(function(){k&&w(b(i.nodeFocusedBeforeActivation)),S==null||S()})};return k&&E?(E(b(i.nodeFocusedBeforeActivation)).then(F,F),this):(F(),this)},pause:function(u){if(i.paused||!i.active)return this;var d=c(u,"onPause"),m=c(u,"onPostPause");return i.paused=!0,d==null||d(),q(),K(),m==null||m(),this},unpause:function(u){if(!i.paused||!i.active)return this;var d=c(u,"onUnpause"),m=c(u,"onPostUnpause");return i.paused=!1,d==null||d(),v(),U(),K(),m==null||m(),this},updateContainerElements:function(u){var d=[].concat(u).filter(Boolean);return i.containers=d.map(function(m){return typeof m=="string"?s.querySelector(m):m}),i.active&&v(),K(),this}},o.updateContainerElements(e),o};function Rs(a,e={}){let t;const{immediate:s,...n}=e,r=ne(!1),i=ne(!1),o=f=>t&&t.activate(f),c=f=>t&&t.deactivate(f),l=()=>{t&&(t.pause(),i.value=!0)},h=()=>{t&&(t.unpause(),i.value=!1)};return Ve(()=>Rt(a),f=>{f&&(t=Os(f,{...n,onActivate(){r.value=!0,e.onActivate&&e.onActivate()},onDeactivate(){r.value=!1,e.onDeactivate&&e.onDeactivate()}}),s&&o())},{flush:"post"}),Ct(()=>c()),{hasFocus:r,isPaused:i,activate:o,deactivate:c,pause:l,unpause:h}}class ce{constructor(e,t=!0,s=[],n=5e3){this.ctx=e,this.iframes=t,this.exclude=s,this.iframesTimeout=n}static matches(e,t){const s=typeof t=="string"?[t]:t,n=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(n){let r=!1;return s.every(i=>n.call(e,i)?(r=!0,!1):!0),r}else return!1}getContexts(){let e,t=[];return typeof this.ctx>"u"||!this.ctx?e=[]:NodeList.prototype.isPrototypeOf(this.ctx)?e=Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?e=this.ctx:typeof this.ctx=="string"?e=Array.prototype.slice.call(document.querySelectorAll(this.ctx)):e=[this.ctx],e.forEach(s=>{const n=t.filter(r=>r.contains(s)).length>0;t.indexOf(s)===-1&&!n&&t.push(s)}),t}getIframeContents(e,t,s=()=>{}){let n;try{const r=e.contentWindow;if(n=r.document,!r||!n)throw new Error("iframe inaccessible")}catch{s()}n&&t(n)}isIframeBlank(e){const t="about:blank",s=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&s!==t&&s}observeIframeLoad(e,t,s){let n=!1,r=null;const i=()=>{if(!n){n=!0,clearTimeout(r);try{this.isIframeBlank(e)||(e.removeEventListener("load",i),this.getIframeContents(e,t,s))}catch{s()}}};e.addEventListener("load",i),r=setTimeout(i,this.iframesTimeout)}onIframeReady(e,t,s){try{e.contentWindow.document.readyState==="complete"?this.isIframeBlank(e)?this.observeIframeLoad(e,t,s):this.getIframeContents(e,t,s):this.observeIframeLoad(e,t,s)}catch{s()}}waitForIframes(e,t){let s=0;this.forEachIframe(e,()=>!0,n=>{s++,this.waitForIframes(n.querySelector("html"),()=>{--s||t()})},n=>{n||t()})}forEachIframe(e,t,s,n=()=>{}){let r=e.querySelectorAll("iframe"),i=r.length,o=0;r=Array.prototype.slice.call(r);const c=()=>{--i<=0&&n(o)};i||c(),r.forEach(l=>{ce.matches(l,this.exclude)?c():this.onIframeReady(l,h=>{t(l)&&(o++,s(h)),c()},c)})}createIterator(e,t,s){return document.createNodeIterator(e,t,s,!1)}createInstanceOnIframe(e){return new ce(e.querySelector("html"),this.iframes)}compareNodeIframe(e,t,s){const n=e.compareDocumentPosition(s),r=Node.DOCUMENT_POSITION_PRECEDING;if(n&r)if(t!==null){const i=t.compareDocumentPosition(s),o=Node.DOCUMENT_POSITION_FOLLOWING;if(i&o)return!0}else return!0;return!1}getIteratorNode(e){const t=e.previousNode();let s;return t===null?s=e.nextNode():s=e.nextNode()&&e.nextNode(),{prevNode:t,node:s}}checkIframeFilter(e,t,s,n){let r=!1,i=!1;return n.forEach((o,c)=>{o.val===s&&(r=c,i=o.handled)}),this.compareNodeIframe(e,t,s)?(r===!1&&!i?n.push({val:s,handled:!0}):r!==!1&&!i&&(n[r].handled=!0),!0):(r===!1&&n.push({val:s,handled:!1}),!1)}handleOpenIframes(e,t,s,n){e.forEach(r=>{r.handled||this.getIframeContents(r.val,i=>{this.createInstanceOnIframe(i).forEachNode(t,s,n)})})}iterateThroughNodes(e,t,s,n,r){const i=this.createIterator(t,e,n);let o=[],c=[],l,h,f=()=>({prevNode:h,node:l}=this.getIteratorNode(i),l);for(;f();)this.iframes&&this.forEachIframe(t,v=>this.checkIframeFilter(l,h,v,o),v=>{this.createInstanceOnIframe(v).forEachNode(e,y=>c.push(y),n)}),c.push(l);c.forEach(v=>{s(v)}),this.iframes&&this.handleOpenIframes(o,e,s,n),r()}forEachNode(e,t,s,n=()=>{}){const r=this.getContexts();let i=r.length;i||n(),r.forEach(o=>{const c=()=>{this.iterateThroughNodes(e,o,t,s,()=>{--i<=0&&n()})};this.iframes?this.waitForIframes(o,c):c()})}}let Cs=class{constructor(e){this.ctx=e,this.ie=!1;const t=window.navigator.userAgent;(t.indexOf("MSIE")>-1||t.indexOf("Trident")>-1)&&(this.ie=!0)}set opt(e){this._opt=Object.assign({},{element:"",className:"",exclude:[],iframes:!1,iframesTimeout:5e3,separateWordSearch:!0,diacritics:!0,synonyms:{},accuracy:"partially",acrossElements:!1,caseSensitive:!1,ignoreJoiners:!1,ignoreGroups:0,ignorePunctuation:[],wildcards:"disabled",each:()=>{},noMatch:()=>{},filter:()=>!0,done:()=>{},debug:!1,log:window.console},e)}get opt(){return this._opt}get iterator(){return new ce(this.ctx,this.opt.iframes,this.opt.exclude,this.opt.iframesTimeout)}log(e,t="debug"){const s=this.opt.log;this.opt.debug&&typeof s=="object"&&typeof s[t]=="function"&&s[t](`mark.js: ${e}`)}escapeStr(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}createRegExp(e){return this.opt.wildcards!=="disabled"&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),this.opt.wildcards!=="disabled"&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e),e}createSynonymsRegExp(e){const t=this.opt.synonyms,s=this.opt.caseSensitive?"":"i",n=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(let r in t)if(t.hasOwnProperty(r)){const i=t[r],o=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(r):this.escapeStr(r),c=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(i):this.escapeStr(i);o!==""&&c!==""&&(e=e.replace(new RegExp(`(${this.escapeStr(o)}|${this.escapeStr(c)})`,`gm${s}`),n+`(${this.processSynomyms(o)}|${this.processSynomyms(c)})`+n))}return e}processSynomyms(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}setupWildcardsRegExp(e){return e=e.replace(/(?:\\)*\?/g,t=>t.charAt(0)==="\\"?"?":""),e.replace(/(?:\\)*\*/g,t=>t.charAt(0)==="\\"?"*":"")}createWildcardsRegExp(e){let t=this.opt.wildcards==="withSpaces";return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}setupIgnoreJoinersRegExp(e){return e.replace(/[^(|)\\]/g,(t,s,n)=>{let r=n.charAt(s+1);return/[(|)\\]/.test(r)||r===""?t:t+"\0"})}createJoinersRegExp(e){let t=[];const s=this.opt.ignorePunctuation;return Array.isArray(s)&&s.length&&t.push(this.escapeStr(s.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join(`[${t.join("")}]*`):e}createDiacriticsRegExp(e){const t=this.opt.caseSensitive?"":"i",s=this.opt.caseSensitive?["aàáảãạăằắẳẵặâầấẩẫậäåāą","AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćč","CÇĆČ","dđď","DĐĎ","eèéẻẽẹêềếểễệëěēę","EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïī","IÌÍỈĨỊÎÏĪ","lł","LŁ","nñňń","NÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøō","OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rř","RŘ","sšśșş","SŠŚȘŞ","tťțţ","TŤȚŢ","uùúủũụưừứửữựûüůū","UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿ","YÝỲỶỸỴŸ","zžżź","ZŽŻŹ"]:["aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćčCÇĆČ","dđďDĐĎ","eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïīIÌÍỈĨỊÎÏĪ","lłLŁ","nñňńNÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rřRŘ","sšśșşSŠŚȘŞ","tťțţTŤȚŢ","uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿYÝỲỶỸỴŸ","zžżźZŽŻŹ"];let n=[];return e.split("").forEach(r=>{s.every(i=>{if(i.indexOf(r)!==-1){if(n.indexOf(i)>-1)return!1;e=e.replace(new RegExp(`[${i}]`,`gm${t}`),`[${i}]`),n.push(i)}return!0})}),e}createMergedBlanksRegExp(e){return e.replace(/[\s]+/gmi,"[\\s]+")}createAccuracyRegExp(e){const t="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~¡¿";let s=this.opt.accuracy,n=typeof s=="string"?s:s.value,r=typeof s=="string"?[]:s.limiters,i="";switch(r.forEach(o=>{i+=`|${this.escapeStr(o)}`}),n){case"partially":default:return`()(${e})`;case"complementary":return i="\\s"+(i||this.escapeStr(t)),`()([^${i}]*${e}[^${i}]*)`;case"exactly":return`(^|\\s${i})(${e})(?=$|\\s${i})`}}getSeparatedKeywords(e){let t=[];return e.forEach(s=>{this.opt.separateWordSearch?s.split(" ").forEach(n=>{n.trim()&&t.indexOf(n)===-1&&t.push(n)}):s.trim()&&t.indexOf(s)===-1&&t.push(s)}),{keywords:t.sort((s,n)=>n.length-s.length),length:t.length}}isNumeric(e){return Number(parseFloat(e))==e}checkRanges(e){if(!Array.isArray(e)||Object.prototype.toString.call(e[0])!=="[object Object]")return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];const t=[];let s=0;return e.sort((n,r)=>n.start-r.start).forEach(n=>{let{start:r,end:i,valid:o}=this.callNoMatchOnInvalidRanges(n,s);o&&(n.start=r,n.length=i-r,t.push(n),s=i)}),t}callNoMatchOnInvalidRanges(e,t){let s,n,r=!1;return e&&typeof e.start<"u"?(s=parseInt(e.start,10),n=s+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&n-t>0&&n-s>0?r=!0:(this.log(`Ignoring invalid or overlapping range: ${JSON.stringify(e)}`),this.opt.noMatch(e))):(this.log(`Ignoring invalid range: ${JSON.stringify(e)}`),this.opt.noMatch(e)),{start:s,end:n,valid:r}}checkWhitespaceRanges(e,t,s){let n,r=!0,i=s.length,o=t-i,c=parseInt(e.start,10)-o;return c=c>i?i:c,n=c+parseInt(e.length,10),n>i&&(n=i,this.log(`End range automatically set to the max value of ${i}`)),c<0||n-c<0||c>i||n>i?(r=!1,this.log(`Invalid range: ${JSON.stringify(e)}`),this.opt.noMatch(e)):s.substring(c,n).replace(/\s+/g,"")===""&&(r=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:c,end:n,valid:r}}getTextNodes(e){let t="",s=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,n=>{s.push({start:t.length,end:(t+=n.textContent).length,node:n})},n=>this.matchesExclude(n.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT,()=>{e({value:t,nodes:s})})}matchesExclude(e){return ce.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}wrapRangeInTextNode(e,t,s){const n=this.opt.element?this.opt.element:"mark",r=e.splitText(t),i=r.splitText(s-t);let o=document.createElement(n);return o.setAttribute("data-markjs","true"),this.opt.className&&o.setAttribute("class",this.opt.className),o.textContent=r.textContent,r.parentNode.replaceChild(o,r),i}wrapRangeInMappedTextNode(e,t,s,n,r){e.nodes.every((i,o)=>{const c=e.nodes[o+1];if(typeof c>"u"||c.start>t){if(!n(i.node))return!1;const l=t-i.start,h=(s>i.end?i.end:s)-i.start,f=e.value.substr(0,i.start),v=e.value.substr(h+i.start);if(i.node=this.wrapRangeInTextNode(i.node,l,h),e.value=f+v,e.nodes.forEach((y,w)=>{w>=o&&(e.nodes[w].start>0&&w!==o&&(e.nodes[w].start-=h),e.nodes[w].end-=h)}),s-=h,r(i.node.previousSibling,i.start),s>i.end)t=i.end;else return!1}return!0})}wrapMatches(e,t,s,n,r){const i=t===0?0:t+1;this.getTextNodes(o=>{o.nodes.forEach(c=>{c=c.node;let l;for(;(l=e.exec(c.textContent))!==null&&l[i]!=="";){if(!s(l[i],c))continue;let h=l.index;if(i!==0)for(let f=1;f{let c;for(;(c=e.exec(o.value))!==null&&c[i]!=="";){let l=c.index;if(i!==0)for(let f=1;fs(c[i],f),(f,v)=>{e.lastIndex=v,n(f)})}r()})}wrapRangeFromIndex(e,t,s,n){this.getTextNodes(r=>{const i=r.value.length;e.forEach((o,c)=>{let{start:l,end:h,valid:f}=this.checkWhitespaceRanges(o,i,r.value);f&&this.wrapRangeInMappedTextNode(r,l,h,v=>t(v,o,r.value.substring(l,h),c),v=>{s(v,o)})}),n()})}unwrapMatches(e){const t=e.parentNode;let s=document.createDocumentFragment();for(;e.firstChild;)s.appendChild(e.removeChild(e.firstChild));t.replaceChild(s,e),this.ie?this.normalizeTextNode(t):t.normalize()}normalizeTextNode(e){if(e){if(e.nodeType===3)for(;e.nextSibling&&e.nextSibling.nodeType===3;)e.nodeValue+=e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);else this.normalizeTextNode(e.firstChild);this.normalizeTextNode(e.nextSibling)}}markRegExp(e,t){this.opt=t,this.log(`Searching with expression "${e}"`);let s=0,n="wrapMatches";const r=i=>{s++,this.opt.each(i)};this.opt.acrossElements&&(n="wrapMatchesAcrossElements"),this[n](e,this.opt.ignoreGroups,(i,o)=>this.opt.filter(o,i,s),r,()=>{s===0&&this.opt.noMatch(e),this.opt.done(s)})}mark(e,t){this.opt=t;let s=0,n="wrapMatches";const{keywords:r,length:i}=this.getSeparatedKeywords(typeof e=="string"?[e]:e),o=this.opt.caseSensitive?"":"i",c=l=>{let h=new RegExp(this.createRegExp(l),`gm${o}`),f=0;this.log(`Searching with expression "${h}"`),this[n](h,1,(v,y)=>this.opt.filter(y,l,s,f),v=>{f++,s++,this.opt.each(v)},()=>{f===0&&this.opt.noMatch(l),r[i-1]===l?this.opt.done(s):c(r[r.indexOf(l)+1])})};this.opt.acrossElements&&(n="wrapMatchesAcrossElements"),i===0?this.opt.done(s):c(r[0])}markRanges(e,t){this.opt=t;let s=0,n=this.checkRanges(e);n&&n.length?(this.log("Starting to mark with the following ranges: "+JSON.stringify(n)),this.wrapRangeFromIndex(n,(r,i,o,c)=>this.opt.filter(r,i,o,c),(r,i)=>{s++,this.opt.each(r,i)},()=>{this.opt.done(s)})):this.opt.done(s)}unmark(e){this.opt=e;let t=this.opt.element?this.opt.element:"*";t+="[data-markjs]",this.opt.className&&(t+=`.${this.opt.className}`),this.log(`Removal selector "${t}"`),this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT,s=>{this.unwrapMatches(s)},s=>{const n=ce.matches(s,t),r=this.matchesExclude(s);return!n||r?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},this.opt.done)}};function Ms(a){const e=new Cs(a);return this.mark=(t,s)=>(e.mark(t,s),this),this.markRegExp=(t,s)=>(e.markRegExp(t,s),this),this.markRanges=(t,s)=>(e.markRanges(t,s),this),this.unmark=t=>(e.unmark(t),this),this}function Ie(a,e,t,s){function n(r){return r instanceof t?r:new t(function(i){i(r)})}return new(t||(t=Promise))(function(r,i){function o(h){try{l(s.next(h))}catch(f){i(f)}}function c(h){try{l(s.throw(h))}catch(f){i(f)}}function l(h){h.done?r(h.value):n(h.value).then(o,c)}l((s=s.apply(a,[])).next())})}const As="ENTRIES",_t="KEYS",xt="VALUES",z="";class Le{constructor(e,t){const s=e._tree,n=Array.from(s.keys());this.set=e,this._type=t,this._path=n.length>0?[{node:s,keys:n}]:[]}next(){const e=this.dive();return this.backtrack(),e}dive(){if(this._path.length===0)return{done:!0,value:void 0};const{node:e,keys:t}=oe(this._path);if(oe(t)===z)return{done:!1,value:this.result()};const s=e.get(oe(t));return this._path.push({node:s,keys:Array.from(s.keys())}),this.dive()}backtrack(){if(this._path.length===0)return;const e=oe(this._path).keys;e.pop(),!(e.length>0)&&(this._path.pop(),this.backtrack())}key(){return this.set._prefix+this._path.map(({keys:e})=>oe(e)).filter(e=>e!==z).join("")}value(){return oe(this._path).node.get(z)}result(){switch(this._type){case xt:return this.value();case _t:return this.key();default:return[this.key(),this.value()]}}[Symbol.iterator](){return this}}const oe=a=>a[a.length-1],Ls=(a,e,t)=>{const s=new Map;if(e===void 0)return s;const n=e.length+1,r=n+t,i=new Uint8Array(r*n).fill(t+1);for(let o=0;o{const c=r*i;e:for(const l of a.keys())if(l===z){const h=n[c-1];h<=t&&s.set(o,[a.get(l),h])}else{let h=r;for(let f=0;ft)continue e}St(a.get(l),e,t,s,n,h,i,o+l)}};class X{constructor(e=new Map,t=""){this._size=void 0,this._tree=e,this._prefix=t}atPrefix(e){if(!e.startsWith(this._prefix))throw new Error("Mismatched prefix");const[t,s]=Oe(this._tree,e.slice(this._prefix.length));if(t===void 0){const[n,r]=Je(s);for(const i of n.keys())if(i!==z&&i.startsWith(r)){const o=new Map;return o.set(i.slice(r.length),n.get(i)),new X(o,e)}}return new X(t,e)}clear(){this._size=void 0,this._tree.clear()}delete(e){return this._size=void 0,Ds(this._tree,e)}entries(){return new Le(this,As)}forEach(e){for(const[t,s]of this)e(t,s,this)}fuzzyGet(e,t){return Ls(this._tree,e,t)}get(e){const t=Be(this._tree,e);return t!==void 0?t.get(z):void 0}has(e){const t=Be(this._tree,e);return t!==void 0&&t.has(z)}keys(){return new Le(this,_t)}set(e,t){if(typeof e!="string")throw new Error("key must be a string");return this._size=void 0,De(this._tree,e).set(z,t),this}get size(){if(this._size)return this._size;this._size=0;const e=this.entries();for(;!e.next().done;)this._size+=1;return this._size}update(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;const s=De(this._tree,e);return s.set(z,t(s.get(z))),this}fetch(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;const s=De(this._tree,e);let n=s.get(z);return n===void 0&&s.set(z,n=t()),n}values(){return new Le(this,xt)}[Symbol.iterator](){return this.entries()}static from(e){const t=new X;for(const[s,n]of e)t.set(s,n);return t}static fromObject(e){return X.from(Object.entries(e))}}const Oe=(a,e,t=[])=>{if(e.length===0||a==null)return[a,t];for(const s of a.keys())if(s!==z&&e.startsWith(s))return t.push([a,s]),Oe(a.get(s),e.slice(s.length),t);return t.push([a,e]),Oe(void 0,"",t)},Be=(a,e)=>{if(e.length===0||a==null)return a;for(const t of a.keys())if(t!==z&&e.startsWith(t))return Be(a.get(t),e.slice(t.length))},De=(a,e)=>{const t=e.length;e:for(let s=0;a&&s{const[t,s]=Oe(a,e);if(t!==void 0){if(t.delete(z),t.size===0)Et(s);else if(t.size===1){const[n,r]=t.entries().next().value;It(s,n,r)}}},Et=a=>{if(a.length===0)return;const[e,t]=Je(a);if(e.delete(t),e.size===0)Et(a.slice(0,-1));else if(e.size===1){const[s,n]=e.entries().next().value;s!==z&&It(a.slice(0,-1),s,n)}},It=(a,e,t)=>{if(a.length===0)return;const[s,n]=Je(a);s.set(n+e,t),s.delete(n)},Je=a=>a[a.length-1],Ue="or",Tt="and",zs="and_not";class le{constructor(e){if((e==null?void 0:e.fields)==null)throw new Error('MiniSearch: option "fields" must be provided');const t=e.autoVacuum==null||e.autoVacuum===!0?je:e.autoVacuum;this._options=Object.assign(Object.assign(Object.assign({},Pe),e),{autoVacuum:t,searchOptions:Object.assign(Object.assign({},dt),e.searchOptions||{}),autoSuggestOptions:Object.assign(Object.assign({},Bs),e.autoSuggestOptions||{})}),this._index=new X,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldIds={},this._fieldLength=new Map,this._avgFieldLength=[],this._nextId=0,this._storedFields=new Map,this._dirtCount=0,this._currentVacuum=null,this._enqueuedVacuum=null,this._enqueuedVacuumConditions=Ke,this.addFields(this._options.fields)}add(e){const{extractField:t,tokenize:s,processTerm:n,fields:r,idField:i}=this._options,o=t(e,i);if(o==null)throw new Error(`MiniSearch: document does not have ID field "${i}"`);if(this._idToShortId.has(o))throw new Error(`MiniSearch: duplicate ID ${o}`);const c=this.addDocumentId(o);this.saveStoredFields(c,e);for(const l of r){const h=t(e,l);if(h==null)continue;const f=s(h.toString(),l),v=this._fieldIds[l],y=new Set(f).size;this.addFieldLength(c,v,this._documentCount-1,y);for(const w of f){const b=n(w,l);if(Array.isArray(b))for(const x of b)this.addTerm(v,c,x);else b&&this.addTerm(v,c,b)}}}addAll(e){for(const t of e)this.add(t)}addAllAsync(e,t={}){const{chunkSize:s=10}=t,n={chunk:[],promise:Promise.resolve()},{chunk:r,promise:i}=e.reduce(({chunk:o,promise:c},l,h)=>(o.push(l),(h+1)%s===0?{chunk:[],promise:c.then(()=>new Promise(f=>setTimeout(f,0))).then(()=>this.addAll(o))}:{chunk:o,promise:c}),n);return i.then(()=>this.addAll(r))}remove(e){const{tokenize:t,processTerm:s,extractField:n,fields:r,idField:i}=this._options,o=n(e,i);if(o==null)throw new Error(`MiniSearch: document does not have ID field "${i}"`);const c=this._idToShortId.get(o);if(c==null)throw new Error(`MiniSearch: cannot remove document with ID ${o}: it is not in the index`);for(const l of r){const h=n(e,l);if(h==null)continue;const f=t(h.toString(),l),v=this._fieldIds[l],y=new Set(f).size;this.removeFieldLength(c,v,this._documentCount,y);for(const w of f){const b=s(w,l);if(Array.isArray(b))for(const x of b)this.removeTerm(v,c,x);else b&&this.removeTerm(v,c,b)}}this._storedFields.delete(c),this._documentIds.delete(c),this._idToShortId.delete(o),this._fieldLength.delete(c),this._documentCount-=1}removeAll(e){if(e)for(const t of e)this.remove(t);else{if(arguments.length>0)throw new Error("Expected documents to be present. Omit the argument to remove all documents.");this._index=new X,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldLength=new Map,this._avgFieldLength=[],this._storedFields=new Map,this._nextId=0}}discard(e){const t=this._idToShortId.get(e);if(t==null)throw new Error(`MiniSearch: cannot discard document with ID ${e}: it is not in the index`);this._idToShortId.delete(e),this._documentIds.delete(t),this._storedFields.delete(t),(this._fieldLength.get(t)||[]).forEach((s,n)=>{this.removeFieldLength(t,n,this._documentCount,s)}),this._fieldLength.delete(t),this._documentCount-=1,this._dirtCount+=1,this.maybeAutoVacuum()}maybeAutoVacuum(){if(this._options.autoVacuum===!1)return;const{minDirtFactor:e,minDirtCount:t,batchSize:s,batchWait:n}=this._options.autoVacuum;this.conditionalVacuum({batchSize:s,batchWait:n},{minDirtCount:t,minDirtFactor:e})}discardAll(e){const t=this._options.autoVacuum;try{this._options.autoVacuum=!1;for(const s of e)this.discard(s)}finally{this._options.autoVacuum=t}this.maybeAutoVacuum()}replace(e){const{idField:t,extractField:s}=this._options,n=s(e,t);this.discard(n),this.add(e)}vacuum(e={}){return this.conditionalVacuum(e)}conditionalVacuum(e,t){return this._currentVacuum?(this._enqueuedVacuumConditions=this._enqueuedVacuumConditions&&t,this._enqueuedVacuum!=null?this._enqueuedVacuum:(this._enqueuedVacuum=this._currentVacuum.then(()=>{const s=this._enqueuedVacuumConditions;return this._enqueuedVacuumConditions=Ke,this.performVacuuming(e,s)}),this._enqueuedVacuum)):this.vacuumConditionsMet(t)===!1?Promise.resolve():(this._currentVacuum=this.performVacuuming(e),this._currentVacuum)}performVacuuming(e,t){return Ie(this,void 0,void 0,function*(){const s=this._dirtCount;if(this.vacuumConditionsMet(t)){const n=e.batchSize||We.batchSize,r=e.batchWait||We.batchWait;let i=1;for(const[o,c]of this._index){for(const[l,h]of c)for(const[f]of h)this._documentIds.has(f)||(h.size<=1?c.delete(l):h.delete(f));this._index.get(o).size===0&&this._index.delete(o),i%n===0&&(yield new Promise(l=>setTimeout(l,r))),i+=1}this._dirtCount-=s}yield null,this._currentVacuum=this._enqueuedVacuum,this._enqueuedVacuum=null})}vacuumConditionsMet(e){if(e==null)return!0;let{minDirtCount:t,minDirtFactor:s}=e;return t=t||je.minDirtCount,s=s||je.minDirtFactor,this.dirtCount>=t&&this.dirtFactor>=s}get isVacuuming(){return this._currentVacuum!=null}get dirtCount(){return this._dirtCount}get dirtFactor(){return this._dirtCount/(1+this._documentCount+this._dirtCount)}has(e){return this._idToShortId.has(e)}getStoredFields(e){const t=this._idToShortId.get(e);if(t!=null)return this._storedFields.get(t)}search(e,t={}){const s=this.executeQuery(e,t),n=[];for(const[r,{score:i,terms:o,match:c}]of s){const l=o.length||1,h={id:this._documentIds.get(r),score:i*l,terms:Object.keys(c),queryTerms:o,match:c};Object.assign(h,this._storedFields.get(r)),(t.filter==null||t.filter(h))&&n.push(h)}return e===le.wildcard&&t.boostDocument==null&&this._options.searchOptions.boostDocument==null||n.sort(ft),n}autoSuggest(e,t={}){t=Object.assign(Object.assign({},this._options.autoSuggestOptions),t);const s=new Map;for(const{score:r,terms:i}of this.search(e,t)){const o=i.join(" "),c=s.get(o);c!=null?(c.score+=r,c.count+=1):s.set(o,{score:r,terms:i,count:1})}const n=[];for(const[r,{score:i,terms:o,count:c}]of s)n.push({suggestion:r,terms:o,score:i/c});return n.sort(ft),n}get documentCount(){return this._documentCount}get termCount(){return this._index.size}static loadJSON(e,t){if(t==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJS(JSON.parse(e),t)}static loadJSONAsync(e,t){return Ie(this,void 0,void 0,function*(){if(t==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJSAsync(JSON.parse(e),t)})}static getDefault(e){if(Pe.hasOwnProperty(e))return ze(Pe,e);throw new Error(`MiniSearch: unknown option "${e}"`)}static loadJS(e,t){const{index:s,documentIds:n,fieldLength:r,storedFields:i,serializationVersion:o}=e,c=this.instantiateMiniSearch(e,t);c._documentIds=Se(n),c._fieldLength=Se(r),c._storedFields=Se(i);for(const[l,h]of c._documentIds)c._idToShortId.set(h,l);for(const[l,h]of s){const f=new Map;for(const v of Object.keys(h)){let y=h[v];o===1&&(y=y.ds),f.set(parseInt(v,10),Se(y))}c._index.set(l,f)}return c}static loadJSAsync(e,t){return Ie(this,void 0,void 0,function*(){const{index:s,documentIds:n,fieldLength:r,storedFields:i,serializationVersion:o}=e,c=this.instantiateMiniSearch(e,t);c._documentIds=yield Ee(n),c._fieldLength=yield Ee(r),c._storedFields=yield Ee(i);for(const[h,f]of c._documentIds)c._idToShortId.set(f,h);let l=0;for(const[h,f]of s){const v=new Map;for(const y of Object.keys(f)){let w=f[y];o===1&&(w=w.ds),v.set(parseInt(y,10),yield Ee(w))}++l%1e3===0&&(yield Nt(0)),c._index.set(h,v)}return c})}static instantiateMiniSearch(e,t){const{documentCount:s,nextId:n,fieldIds:r,averageFieldLength:i,dirtCount:o,serializationVersion:c}=e;if(c!==1&&c!==2)throw new Error("MiniSearch: cannot deserialize an index created with an incompatible version");const l=new le(t);return l._documentCount=s,l._nextId=n,l._idToShortId=new Map,l._fieldIds=r,l._avgFieldLength=i,l._dirtCount=o||0,l._index=new X,l}executeQuery(e,t={}){if(e===le.wildcard)return this.executeWildcardQuery(t);if(typeof e!="string"){const v=Object.assign(Object.assign(Object.assign({},t),e),{queries:void 0}),y=e.queries.map(w=>this.executeQuery(w,v));return this.combineResults(y,v.combineWith)}const{tokenize:s,processTerm:n,searchOptions:r}=this._options,i=Object.assign(Object.assign({tokenize:s,processTerm:n},r),t),{tokenize:o,processTerm:c}=i,f=o(e).flatMap(v=>c(v)).filter(v=>!!v).map($s(i)).map(v=>this.executeQuerySpec(v,i));return this.combineResults(f,i.combineWith)}executeQuerySpec(e,t){const s=Object.assign(Object.assign({},this._options.searchOptions),t),n=(s.fields||this._options.fields).reduce((b,x)=>Object.assign(Object.assign({},b),{[x]:ze(s.boost,x)||1}),{}),{boostDocument:r,weights:i,maxFuzzy:o,bm25:c}=s,{fuzzy:l,prefix:h}=Object.assign(Object.assign({},dt.weights),i),f=this._index.get(e.term),v=this.termResults(e.term,e.term,1,f,n,r,c);let y,w;if(e.prefix&&(y=this._index.atPrefix(e.term)),e.fuzzy){const b=e.fuzzy===!0?.2:e.fuzzy,x=b<1?Math.min(o,Math.round(e.term.length*b)):b;x&&(w=this._index.fuzzyGet(e.term,x))}if(y)for(const[b,x]of y){const C=b.length-e.term.length;if(!C)continue;w==null||w.delete(b);const R=h*b.length/(b.length+.3*C);this.termResults(e.term,b,R,x,n,r,c,v)}if(w)for(const b of w.keys()){const[x,C]=w.get(b);if(!C)continue;const R=l*b.length/(b.length+C);this.termResults(e.term,b,R,x,n,r,c,v)}return v}executeWildcardQuery(e){const t=new Map,s=Object.assign(Object.assign({},this._options.searchOptions),e);for(const[n,r]of this._documentIds){const i=s.boostDocument?s.boostDocument(r,"",this._storedFields.get(n)):1;t.set(n,{score:i,terms:[],match:{}})}return t}combineResults(e,t=Ue){if(e.length===0)return new Map;const s=t.toLowerCase(),n=Ps[s];if(!n)throw new Error(`Invalid combination operator: ${t}`);return e.reduce(n)||new Map}toJSON(){const e=[];for(const[t,s]of this._index){const n={};for(const[r,i]of s)n[r]=Object.fromEntries(i);e.push([t,n])}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:e,serializationVersion:2}}termResults(e,t,s,n,r,i,o,c=new Map){if(n==null)return c;for(const l of Object.keys(r)){const h=r[l],f=this._fieldIds[l],v=n.get(f);if(v==null)continue;let y=v.size;const w=this._avgFieldLength[f];for(const b of v.keys()){if(!this._documentIds.has(b)){this.removeTerm(f,b,t),y-=1;continue}const x=i?i(this._documentIds.get(b),t,this._storedFields.get(b)):1;if(!x)continue;const C=v.get(b),R=this._fieldLength.get(b)[f],W=Vs(C,y,this._documentCount,R,w,o),J=s*h*x*W,V=c.get(b);if(V){V.score+=J,Ws(V.terms,e);const U=ze(V.match,t);U?U.push(l):V.match[t]=[l]}else c.set(b,{score:J,terms:[e],match:{[t]:[l]}})}}return c}addTerm(e,t,s){const n=this._index.fetch(s,pt);let r=n.get(e);if(r==null)r=new Map,r.set(t,1),n.set(e,r);else{const i=r.get(t);r.set(t,(i||0)+1)}}removeTerm(e,t,s){if(!this._index.has(s)){this.warnDocumentChanged(t,e,s);return}const n=this._index.fetch(s,pt),r=n.get(e);r==null||r.get(t)==null?this.warnDocumentChanged(t,e,s):r.get(t)<=1?r.size<=1?n.delete(e):r.delete(t):r.set(t,r.get(t)-1),this._index.get(s).size===0&&this._index.delete(s)}warnDocumentChanged(e,t,s){for(const n of Object.keys(this._fieldIds))if(this._fieldIds[n]===t){this._options.logger("warn",`MiniSearch: document with ID ${this._documentIds.get(e)} has changed before removal: term "${s}" was not present in field "${n}". Removing a document after it has changed can corrupt the index!`,"version_conflict");return}}addDocumentId(e){const t=this._nextId;return this._idToShortId.set(e,t),this._documentIds.set(t,e),this._documentCount+=1,this._nextId+=1,t}addFields(e){for(let t=0;tObject.prototype.hasOwnProperty.call(a,e)?a[e]:void 0,Ps={[Ue]:(a,e)=>{for(const t of e.keys()){const s=a.get(t);if(s==null)a.set(t,e.get(t));else{const{score:n,terms:r,match:i}=e.get(t);s.score=s.score+n,s.match=Object.assign(s.match,i),ht(s.terms,r)}}return a},[Tt]:(a,e)=>{const t=new Map;for(const s of e.keys()){const n=a.get(s);if(n==null)continue;const{score:r,terms:i,match:o}=e.get(s);ht(n.terms,i),t.set(s,{score:n.score+r,terms:n.terms,match:Object.assign(n.match,o)})}return t},[zs]:(a,e)=>{for(const t of e.keys())a.delete(t);return a}},js={k:1.2,b:.7,d:.5},Vs=(a,e,t,s,n,r)=>{const{k:i,b:o,d:c}=r;return Math.log(1+(t-e+.5)/(e+.5))*(c+a*(i+1)/(a+i*(1-o+o*s/n)))},$s=a=>(e,t,s)=>{const n=typeof a.fuzzy=="function"?a.fuzzy(e,t,s):a.fuzzy||!1,r=typeof a.prefix=="function"?a.prefix(e,t,s):a.prefix===!0;return{term:e,fuzzy:n,prefix:r}},Pe={idField:"id",extractField:(a,e)=>a[e],tokenize:a=>a.split(Ks),processTerm:a=>a.toLowerCase(),fields:void 0,searchOptions:void 0,storeFields:[],logger:(a,e)=>{typeof(console==null?void 0:console[a])=="function"&&console[a](e)},autoVacuum:!0},dt={combineWith:Ue,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:js},Bs={combineWith:Tt,prefix:(a,e,t)=>e===t.length-1},We={batchSize:1e3,batchWait:10},Ke={minDirtFactor:.1,minDirtCount:20},je=Object.assign(Object.assign({},We),Ke),Ws=(a,e)=>{a.includes(e)||a.push(e)},ht=(a,e)=>{for(const t of e)a.includes(t)||a.push(t)},ft=({score:a},{score:e})=>e-a,pt=()=>new Map,Se=a=>{const e=new Map;for(const t of Object.keys(a))e.set(parseInt(t,10),a[t]);return e},Ee=a=>Ie(void 0,void 0,void 0,function*(){const e=new Map;let t=0;for(const s of Object.keys(a))e.set(parseInt(s,10),a[s]),++t%1e3===0&&(yield Nt(0));return e}),Nt=a=>new Promise(e=>setTimeout(e,a)),Ks=/[\n\r\p{Z}\p{P}]/u;class Js{constructor(e=10){Ce(this,"max");Ce(this,"cache");this.max=e,this.cache=new Map}get(e){let t=this.cache.get(e);return t!==void 0&&(this.cache.delete(e),this.cache.set(e,t)),t}set(e,t){this.cache.has(e)?this.cache.delete(e):this.cache.size===this.max&&this.cache.delete(this.first()),this.cache.set(e,t)}first(){return this.cache.keys().next().value}clear(){this.cache.clear()}}const B=a=>(Qt("data-v-f4c4f812"),a=a(),Ht(),a),Us=["aria-owns"],qs={class:"shell"},Gs=["title"],Qs=B(()=>_("span",{"aria-hidden":"true",class:"vpi-search search-icon local-search-icon"},null,-1)),Hs=[Qs],Ys={class:"search-actions before"},Zs=["title"],Xs=B(()=>_("span",{class:"vpi-arrow-left local-search-icon"},null,-1)),en=[Xs],tn=["placeholder"],sn={class:"search-actions"},nn=["title"],rn=B(()=>_("span",{class:"vpi-layout-list local-search-icon"},null,-1)),an=[rn],on=["disabled","title"],cn=B(()=>_("span",{class:"vpi-delete local-search-icon"},null,-1)),ln=[cn],un=["id","role","aria-labelledby"],dn=["aria-selected"],hn=["href","aria-label","onMouseenter","onFocusin"],fn={class:"titles"},pn=B(()=>_("span",{class:"title-icon"},"#",-1)),vn=["innerHTML"],mn=B(()=>_("span",{class:"vpi-chevron-right local-search-icon"},null,-1)),gn={class:"title main"},bn=["innerHTML"],yn={key:0,class:"excerpt-wrapper"},wn={key:0,class:"excerpt",inert:""},_n=["innerHTML"],xn=B(()=>_("div",{class:"excerpt-gradient-bottom"},null,-1)),Sn=B(()=>_("div",{class:"excerpt-gradient-top"},null,-1)),En={key:0,class:"no-results"},In={class:"search-keyboard-shortcuts"},Tn=["aria-label"],Nn=B(()=>_("span",{class:"vpi-arrow-up navigate-icon"},null,-1)),kn=[Nn],Fn=["aria-label"],On=B(()=>_("span",{class:"vpi-arrow-down navigate-icon"},null,-1)),Rn=[On],Cn=["aria-label"],Mn=B(()=>_("span",{class:"vpi-corner-down-left navigate-icon"},null,-1)),An=[Mn],Ln=["aria-label"],Dn=Mt({__name:"VPLocalSearchBox",emits:["close"],setup(a,{emit:e}){var F,M;const t=e,s=be(),n=be(),r=be(is),i=ss(),{activate:o}=Rs(s,{immediate:!0,allowOutsideClick:!0,clickOutsideDeactivates:!0,escapeDeactivates:!0}),{localeIndex:c,theme:l}=i,h=et(async()=>{var p,g,N,O,P,j,T,L,G;return it(le.loadJSON((N=await((g=(p=r.value)[c.value])==null?void 0:g.call(p)))==null?void 0:N.default,{fields:["title","titles","text"],storeFields:["title","titles"],searchOptions:{fuzzy:.2,prefix:!0,boost:{title:4,text:2,titles:1},...((O=l.value.search)==null?void 0:O.provider)==="local"&&((j=(P=l.value.search.options)==null?void 0:P.miniSearch)==null?void 0:j.searchOptions)},...((T=l.value.search)==null?void 0:T.provider)==="local"&&((G=(L=l.value.search.options)==null?void 0:L.miniSearch)==null?void 0:G.options)}))}),v=ye(()=>{var p,g;return((p=l.value.search)==null?void 0:p.provider)==="local"&&((g=l.value.search.options)==null?void 0:g.disableQueryPersistence)===!0}).value?ne(""):At("vitepress:local-search-filter",""),y=Lt("vitepress:local-search-detailed-list",((F=l.value.search)==null?void 0:F.provider)==="local"&&((M=l.value.search.options)==null?void 0:M.detailedView)===!0),w=ye(()=>{var p,g,N;return((p=l.value.search)==null?void 0:p.provider)==="local"&&(((g=l.value.search.options)==null?void 0:g.disableDetailedView)===!0||((N=l.value.search.options)==null?void 0:N.detailedView)===!1)}),b=ye(()=>{var g,N,O,P,j,T,L;const p=((g=l.value.search)==null?void 0:g.options)??l.value.algolia;return((j=(P=(O=(N=p==null?void 0:p.locales)==null?void 0:N[c.value])==null?void 0:O.translations)==null?void 0:P.button)==null?void 0:j.buttonText)||((L=(T=p==null?void 0:p.translations)==null?void 0:T.button)==null?void 0:L.buttonText)||"Search"});Dt(()=>{w.value&&(y.value=!1)});const x=be([]),C=ne(!1);Ve(v,()=>{C.value=!1});const R=et(async()=>{if(n.value)return it(new Ms(n.value))},null),W=new Js(16);zt(()=>[h.value,v.value,y.value],async([p,g,N],O,P)=>{var me,qe,Ge,Qe;(O==null?void 0:O[0])!==p&&W.clear();let j=!1;if(P(()=>{j=!0}),!p)return;x.value=p.search(g).slice(0,16),C.value=!0;const T=N?await Promise.all(x.value.map($=>J($.id))):[];if(j)return;for(const{id:$,mod:ee}of T){const te=$.slice(0,$.indexOf("#"));let Y=W.get(te);if(Y)continue;Y=new Map,W.set(te,Y);const Q=ee.default??ee;if(Q!=null&&Q.render||Q!=null&&Q.setup){const se=Yt(Q);se.config.warnHandler=()=>{},se.provide(Zt,i),Object.defineProperties(se.config.globalProperties,{$frontmatter:{get(){return i.frontmatter.value}},$params:{get(){return i.page.value.params}}});const He=document.createElement("div");se.mount(He),He.querySelectorAll("h1, h2, h3, h4, h5, h6").forEach(ue=>{var Xe;const ge=(Xe=ue.querySelector("a"))==null?void 0:Xe.getAttribute("href"),Ye=(ge==null?void 0:ge.startsWith("#"))&&ge.slice(1);if(!Ye)return;let Ze="";for(;(ue=ue.nextElementSibling)&&!/^h[1-6]$/i.test(ue.tagName);)Ze+=ue.outerHTML;Y.set(Ye,Ze)}),se.unmount()}if(j)return}const L=new Set;if(x.value=x.value.map($=>{const[ee,te]=$.id.split("#"),Y=W.get(ee),Q=(Y==null?void 0:Y.get(te))??"";for(const se in $.match)L.add(se);return{...$,text:Q}}),await de(),j)return;await new Promise($=>{var ee;(ee=R.value)==null||ee.unmark({done:()=>{var te;(te=R.value)==null||te.markRegExp(k(L),{done:$})}})});const G=((me=s.value)==null?void 0:me.querySelectorAll(".result .excerpt"))??[];for(const $ of G)(qe=$.querySelector('mark[data-markjs="true"]'))==null||qe.scrollIntoView({block:"center"});(Qe=(Ge=n.value)==null?void 0:Ge.firstElementChild)==null||Qe.scrollIntoView({block:"start"})},{debounce:200,immediate:!0});async function J(p){const g=Xt(p.slice(0,p.indexOf("#")));try{if(!g)throw new Error(`Cannot find file for id: ${p}`);return{id:p,mod:await import(g)}}catch(N){return console.error(N),{id:p,mod:{}}}}const V=ne(),U=ye(()=>{var p;return((p=v.value)==null?void 0:p.length)<=0});function q(p=!0){var g,N;(g=V.value)==null||g.focus(),p&&((N=V.value)==null||N.select())}Me(()=>{q()});function Re(p){p.pointerType==="mouse"&&q()}const A=ne(-1),K=ne(!1);Ve(x,p=>{A.value=p.length?0:-1,I()});function I(){de(()=>{const p=document.querySelector(".result.selected");p==null||p.scrollIntoView({block:"nearest"})})}we("ArrowUp",p=>{p.preventDefault(),A.value--,A.value<0&&(A.value=x.value.length-1),K.value=!0,I()}),we("ArrowDown",p=>{p.preventDefault(),A.value++,A.value>=x.value.length&&(A.value=0),K.value=!0,I()});const u=Pt();we("Enter",p=>{if(p.isComposing||p.target instanceof HTMLButtonElement&&p.target.type!=="submit")return;const g=x.value[A.value];if(p.target instanceof HTMLInputElement&&!g){p.preventDefault();return}g&&(u.go(g.id),t("close"))}),we("Escape",()=>{t("close")});const m=ns({modal:{displayDetails:"Display detailed list",resetButtonTitle:"Reset search",backButtonTitle:"Close search",noResultsText:"No results for",footer:{selectText:"to select",selectKeyAriaLabel:"enter",navigateText:"to navigate",navigateUpKeyAriaLabel:"up arrow",navigateDownKeyAriaLabel:"down arrow",closeText:"to close",closeKeyAriaLabel:"escape"}}});Me(()=>{window.history.pushState(null,"",null)}),jt("popstate",p=>{p.preventDefault(),t("close")});const S=Vt($t?document.body:null);Me(()=>{de(()=>{S.value=!0,de().then(()=>o())})}),Bt(()=>{S.value=!1});function E(){v.value="",de().then(()=>q(!1))}function k(p){return new RegExp([...p].sort((g,N)=>N.length-g.length).map(g=>`(${es(g)})`).join("|"),"gi")}return(p,g)=>{var N,O,P,j;return H(),Wt(Gt,{to:"body"},[_("div",{ref_key:"el",ref:s,role:"button","aria-owns":(N=x.value)!=null&&N.length?"localsearch-list":void 0,"aria-expanded":"true","aria-haspopup":"listbox","aria-labelledby":"localsearch-label",class:"VPLocalSearchBox"},[_("div",{class:"backdrop",onClick:g[0]||(g[0]=T=>p.$emit("close"))}),_("div",qs,[_("form",{class:"search-bar",onPointerup:g[4]||(g[4]=T=>Re(T)),onSubmit:g[5]||(g[5]=Kt(()=>{},["prevent"]))},[_("label",{title:b.value,id:"localsearch-label",for:"localsearch-input"},Hs,8,Gs),_("div",Ys,[_("button",{class:"back-button",title:D(m)("modal.backButtonTitle"),onClick:g[1]||(g[1]=T=>p.$emit("close"))},en,8,Zs)]),Jt(_("input",{ref_key:"searchInput",ref:V,"onUpdate:modelValue":g[2]||(g[2]=T=>qt(v)?v.value=T:null),placeholder:b.value,id:"localsearch-input","aria-labelledby":"localsearch-label",class:"search-input"},null,8,tn),[[Ut,D(v)]]),_("div",sn,[w.value?_e("",!0):(H(),Z("button",{key:0,class:tt(["toggle-layout-button",{"detailed-list":D(y)}]),type:"button",title:D(m)("modal.displayDetails"),onClick:g[3]||(g[3]=T=>A.value>-1&&(y.value=!D(y)))},an,10,nn)),_("button",{class:"clear-button",type:"reset",disabled:U.value,title:D(m)("modal.resetButtonTitle"),onClick:E},ln,8,on)])],32),_("ul",{ref_key:"resultsEl",ref:n,id:(O=x.value)!=null&&O.length?"localsearch-list":void 0,role:(P=x.value)!=null&&P.length?"listbox":void 0,"aria-labelledby":(j=x.value)!=null&&j.length?"localsearch-label":void 0,class:"results",onMousemove:g[7]||(g[7]=T=>K.value=!1)},[(H(!0),Z(nt,null,st(x.value,(T,L)=>(H(),Z("li",{key:T.id,role:"option","aria-selected":A.value===L?"true":"false"},[_("a",{href:T.id,class:tt(["result",{selected:A.value===L}]),"aria-label":[...T.titles,T.title].join(" > "),onMouseenter:G=>!K.value&&(A.value=L),onFocusin:G=>A.value=L,onClick:g[6]||(g[6]=G=>p.$emit("close"))},[_("div",null,[_("div",fn,[pn,(H(!0),Z(nt,null,st(T.titles,(G,me)=>(H(),Z("span",{key:me,class:"title"},[_("span",{class:"text",innerHTML:G},null,8,vn),mn]))),128)),_("span",gn,[_("span",{class:"text",innerHTML:T.title},null,8,bn)])]),D(y)?(H(),Z("div",yn,[T.text?(H(),Z("div",wn,[_("div",{class:"vp-doc",innerHTML:T.text},null,8,_n)])):_e("",!0),xn,Sn])):_e("",!0)])],42,hn)],8,dn))),128)),D(v)&&!x.value.length&&C.value?(H(),Z("li",En,[he(fe(D(m)("modal.noResultsText"))+' "',1),_("strong",null,fe(D(v)),1),he('" ')])):_e("",!0)],40,un),_("div",In,[_("span",null,[_("kbd",{"aria-label":D(m)("modal.footer.navigateUpKeyAriaLabel")},kn,8,Tn),_("kbd",{"aria-label":D(m)("modal.footer.navigateDownKeyAriaLabel")},Rn,8,Fn),he(" "+fe(D(m)("modal.footer.navigateText")),1)]),_("span",null,[_("kbd",{"aria-label":D(m)("modal.footer.selectKeyAriaLabel")},An,8,Cn),he(" "+fe(D(m)("modal.footer.selectText")),1)]),_("span",null,[_("kbd",{"aria-label":D(m)("modal.footer.closeKeyAriaLabel")},"esc",8,Ln),he(" "+fe(D(m)("modal.footer.closeText")),1)])])])],8,Us)])}}}),Bn=ts(Dn,[["__scopeId","data-v-f4c4f812"]]);export{Bn as default}; +*/function at(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter(function(n){return Object.getOwnPropertyDescriptor(a,n).enumerable})),t.push.apply(t,s)}return t}function ot(a){for(var e=1;e0){var s=e[e.length-1];s!==t&&s.pause()}var n=e.indexOf(t);n===-1||e.splice(n,1),e.push(t)},deactivateTrap:function(e,t){var s=e.indexOf(t);s!==-1&&e.splice(s,1),e.length>0&&e[e.length-1].unpause()}},Is=function(e){return e.tagName&&e.tagName.toLowerCase()==="input"&&typeof e.select=="function"},Ts=function(e){return(e==null?void 0:e.key)==="Escape"||(e==null?void 0:e.key)==="Esc"||(e==null?void 0:e.keyCode)===27},ve=function(e){return(e==null?void 0:e.key)==="Tab"||(e==null?void 0:e.keyCode)===9},Ns=function(e){return ve(e)&&!e.shiftKey},ks=function(e){return ve(e)&&e.shiftKey},lt=function(e){return setTimeout(e,0)},ut=function(e,t){var s=-1;return e.every(function(n,r){return t(n)?(s=r,!1):!0}),s},pe=function(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),n=1;n1?m-1:0),E=1;E=0)u=s.activeElement;else{var d=i.tabbableGroups[0],m=d&&d.firstTabbableNode;u=m||h("fallbackFocus")}if(!u)throw new Error("Your focus-trap needs to have at least one focusable element");return u},v=function(){if(i.containerGroups=i.containers.map(function(u){var d=ys(u,r.tabbableOptions),m=ws(u,r.tabbableOptions),S=d.length>0?d[0]:void 0,E=d.length>0?d[d.length-1]:void 0,k=m.find(function(p){return ae(p)}),F=m.slice().reverse().find(function(p){return ae(p)}),M=!!d.find(function(p){return ie(p)>0});return{container:u,tabbableNodes:d,focusableNodes:m,posTabIndexesFound:M,firstTabbableNode:S,lastTabbableNode:E,firstDomTabbableNode:k,lastDomTabbableNode:F,nextTabbableNode:function(g){var N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,O=d.indexOf(g);return O<0?N?m.slice(m.indexOf(g)+1).find(function(P){return ae(P)}):m.slice(0,m.indexOf(g)).reverse().find(function(P){return ae(P)}):d[O+(N?1:-1)]}}}),i.tabbableGroups=i.containerGroups.filter(function(u){return u.tabbableNodes.length>0}),i.tabbableGroups.length<=0&&!h("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(i.containerGroups.find(function(u){return u.posTabIndexesFound})&&i.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},y=function I(u){var d=u.activeElement;if(d)return d.shadowRoot&&d.shadowRoot.activeElement!==null?I(d.shadowRoot):d},w=function I(u){if(u!==!1&&u!==y(document)){if(!u||!u.focus){I(f());return}u.focus({preventScroll:!!r.preventScroll}),i.mostRecentlyFocusedNode=u,Is(u)&&u.select()}},b=function(u){var d=h("setReturnFocus",u);return d||(d===!1?!1:u)},x=function(u){var d=u.target,m=u.event,S=u.isBackward,E=S===void 0?!1:S;d=d||xe(m),v();var k=null;if(i.tabbableGroups.length>0){var F=l(d,m),M=F>=0?i.containerGroups[F]:void 0;if(F<0)E?k=i.tabbableGroups[i.tabbableGroups.length-1].lastTabbableNode:k=i.tabbableGroups[0].firstTabbableNode;else if(E){var p=ut(i.tabbableGroups,function(T){var L=T.firstTabbableNode;return d===L});if(p<0&&(M.container===d||Ae(d,r.tabbableOptions)&&!ae(d,r.tabbableOptions)&&!M.nextTabbableNode(d,!1))&&(p=F),p>=0){var g=p===0?i.tabbableGroups.length-1:p-1,N=i.tabbableGroups[g];k=ie(d)>=0?N.lastTabbableNode:N.lastDomTabbableNode}else ve(m)||(k=M.nextTabbableNode(d,!1))}else{var O=ut(i.tabbableGroups,function(T){var L=T.lastTabbableNode;return d===L});if(O<0&&(M.container===d||Ae(d,r.tabbableOptions)&&!ae(d,r.tabbableOptions)&&!M.nextTabbableNode(d))&&(O=F),O>=0){var P=O===i.tabbableGroups.length-1?0:O+1,j=i.tabbableGroups[P];k=ie(d)>=0?j.firstTabbableNode:j.firstDomTabbableNode}else ve(m)||(k=M.nextTabbableNode(d))}}else k=h("fallbackFocus");return k},C=function(u){var d=xe(u);if(!(l(d,u)>=0)){if(pe(r.clickOutsideDeactivates,u)){o.deactivate({returnFocus:r.returnFocusOnDeactivate});return}pe(r.allowOutsideClick,u)||u.preventDefault()}},R=function(u){var d=xe(u),m=l(d,u)>=0;if(m||d instanceof Document)m&&(i.mostRecentlyFocusedNode=d);else{u.stopImmediatePropagation();var S,E=!0;if(i.mostRecentlyFocusedNode)if(ie(i.mostRecentlyFocusedNode)>0){var k=l(i.mostRecentlyFocusedNode),F=i.containerGroups[k].tabbableNodes;if(F.length>0){var M=F.findIndex(function(p){return p===i.mostRecentlyFocusedNode});M>=0&&(r.isKeyForward(i.recentNavEvent)?M+1=0&&(S=F[M-1],E=!1))}}else i.containerGroups.some(function(p){return p.tabbableNodes.some(function(g){return ie(g)>0})})||(E=!1);else E=!1;E&&(S=x({target:i.mostRecentlyFocusedNode,isBackward:r.isKeyBackward(i.recentNavEvent)})),w(S||i.mostRecentlyFocusedNode||f())}i.recentNavEvent=void 0},W=function(u){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;i.recentNavEvent=u;var m=x({event:u,isBackward:d});m&&(ve(u)&&u.preventDefault(),w(m))},J=function(u){if(Ts(u)&&pe(r.escapeDeactivates,u)!==!1){u.preventDefault(),o.deactivate();return}(r.isKeyForward(u)||r.isKeyBackward(u))&&W(u,r.isKeyBackward(u))},V=function(u){var d=xe(u);l(d,u)>=0||pe(r.clickOutsideDeactivates,u)||pe(r.allowOutsideClick,u)||(u.preventDefault(),u.stopImmediatePropagation())},U=function(){if(i.active)return ct.activateTrap(n,o),i.delayInitialFocusTimer=r.delayInitialFocus?lt(function(){w(f())}):w(f()),s.addEventListener("focusin",R,!0),s.addEventListener("mousedown",C,{capture:!0,passive:!1}),s.addEventListener("touchstart",C,{capture:!0,passive:!1}),s.addEventListener("click",V,{capture:!0,passive:!1}),s.addEventListener("keydown",J,{capture:!0,passive:!1}),o},q=function(){if(i.active)return s.removeEventListener("focusin",R,!0),s.removeEventListener("mousedown",C,!0),s.removeEventListener("touchstart",C,!0),s.removeEventListener("click",V,!0),s.removeEventListener("keydown",J,!0),o},Re=function(u){var d=u.some(function(m){var S=Array.from(m.removedNodes);return S.some(function(E){return E===i.mostRecentlyFocusedNode})});d&&w(f())},A=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(Re):void 0,K=function(){A&&(A.disconnect(),i.active&&!i.paused&&i.containers.map(function(u){A.observe(u,{subtree:!0,childList:!0})}))};return o={get active(){return i.active},get paused(){return i.paused},activate:function(u){if(i.active)return this;var d=c(u,"onActivate"),m=c(u,"onPostActivate"),S=c(u,"checkCanFocusTrap");S||v(),i.active=!0,i.paused=!1,i.nodeFocusedBeforeActivation=s.activeElement,d==null||d();var E=function(){S&&v(),U(),K(),m==null||m()};return S?(S(i.containers.concat()).then(E,E),this):(E(),this)},deactivate:function(u){if(!i.active)return this;var d=ot({onDeactivate:r.onDeactivate,onPostDeactivate:r.onPostDeactivate,checkCanReturnFocus:r.checkCanReturnFocus},u);clearTimeout(i.delayInitialFocusTimer),i.delayInitialFocusTimer=void 0,q(),i.active=!1,i.paused=!1,K(),ct.deactivateTrap(n,o);var m=c(d,"onDeactivate"),S=c(d,"onPostDeactivate"),E=c(d,"checkCanReturnFocus"),k=c(d,"returnFocus","returnFocusOnDeactivate");m==null||m();var F=function(){lt(function(){k&&w(b(i.nodeFocusedBeforeActivation)),S==null||S()})};return k&&E?(E(b(i.nodeFocusedBeforeActivation)).then(F,F),this):(F(),this)},pause:function(u){if(i.paused||!i.active)return this;var d=c(u,"onPause"),m=c(u,"onPostPause");return i.paused=!0,d==null||d(),q(),K(),m==null||m(),this},unpause:function(u){if(!i.paused||!i.active)return this;var d=c(u,"onUnpause"),m=c(u,"onPostUnpause");return i.paused=!1,d==null||d(),v(),U(),K(),m==null||m(),this},updateContainerElements:function(u){var d=[].concat(u).filter(Boolean);return i.containers=d.map(function(m){return typeof m=="string"?s.querySelector(m):m}),i.active&&v(),K(),this}},o.updateContainerElements(e),o};function Rs(a,e={}){let t;const{immediate:s,...n}=e,r=ne(!1),i=ne(!1),o=f=>t&&t.activate(f),c=f=>t&&t.deactivate(f),l=()=>{t&&(t.pause(),i.value=!0)},h=()=>{t&&(t.unpause(),i.value=!1)};return Ve(()=>Rt(a),f=>{f&&(t=Os(f,{...n,onActivate(){r.value=!0,e.onActivate&&e.onActivate()},onDeactivate(){r.value=!1,e.onDeactivate&&e.onDeactivate()}}),s&&o())},{flush:"post"}),Ct(()=>c()),{hasFocus:r,isPaused:i,activate:o,deactivate:c,pause:l,unpause:h}}class ce{constructor(e,t=!0,s=[],n=5e3){this.ctx=e,this.iframes=t,this.exclude=s,this.iframesTimeout=n}static matches(e,t){const s=typeof t=="string"?[t]:t,n=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(n){let r=!1;return s.every(i=>n.call(e,i)?(r=!0,!1):!0),r}else return!1}getContexts(){let e,t=[];return typeof this.ctx>"u"||!this.ctx?e=[]:NodeList.prototype.isPrototypeOf(this.ctx)?e=Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?e=this.ctx:typeof this.ctx=="string"?e=Array.prototype.slice.call(document.querySelectorAll(this.ctx)):e=[this.ctx],e.forEach(s=>{const n=t.filter(r=>r.contains(s)).length>0;t.indexOf(s)===-1&&!n&&t.push(s)}),t}getIframeContents(e,t,s=()=>{}){let n;try{const r=e.contentWindow;if(n=r.document,!r||!n)throw new Error("iframe inaccessible")}catch{s()}n&&t(n)}isIframeBlank(e){const t="about:blank",s=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&s!==t&&s}observeIframeLoad(e,t,s){let n=!1,r=null;const i=()=>{if(!n){n=!0,clearTimeout(r);try{this.isIframeBlank(e)||(e.removeEventListener("load",i),this.getIframeContents(e,t,s))}catch{s()}}};e.addEventListener("load",i),r=setTimeout(i,this.iframesTimeout)}onIframeReady(e,t,s){try{e.contentWindow.document.readyState==="complete"?this.isIframeBlank(e)?this.observeIframeLoad(e,t,s):this.getIframeContents(e,t,s):this.observeIframeLoad(e,t,s)}catch{s()}}waitForIframes(e,t){let s=0;this.forEachIframe(e,()=>!0,n=>{s++,this.waitForIframes(n.querySelector("html"),()=>{--s||t()})},n=>{n||t()})}forEachIframe(e,t,s,n=()=>{}){let r=e.querySelectorAll("iframe"),i=r.length,o=0;r=Array.prototype.slice.call(r);const c=()=>{--i<=0&&n(o)};i||c(),r.forEach(l=>{ce.matches(l,this.exclude)?c():this.onIframeReady(l,h=>{t(l)&&(o++,s(h)),c()},c)})}createIterator(e,t,s){return document.createNodeIterator(e,t,s,!1)}createInstanceOnIframe(e){return new ce(e.querySelector("html"),this.iframes)}compareNodeIframe(e,t,s){const n=e.compareDocumentPosition(s),r=Node.DOCUMENT_POSITION_PRECEDING;if(n&r)if(t!==null){const i=t.compareDocumentPosition(s),o=Node.DOCUMENT_POSITION_FOLLOWING;if(i&o)return!0}else return!0;return!1}getIteratorNode(e){const t=e.previousNode();let s;return t===null?s=e.nextNode():s=e.nextNode()&&e.nextNode(),{prevNode:t,node:s}}checkIframeFilter(e,t,s,n){let r=!1,i=!1;return n.forEach((o,c)=>{o.val===s&&(r=c,i=o.handled)}),this.compareNodeIframe(e,t,s)?(r===!1&&!i?n.push({val:s,handled:!0}):r!==!1&&!i&&(n[r].handled=!0),!0):(r===!1&&n.push({val:s,handled:!1}),!1)}handleOpenIframes(e,t,s,n){e.forEach(r=>{r.handled||this.getIframeContents(r.val,i=>{this.createInstanceOnIframe(i).forEachNode(t,s,n)})})}iterateThroughNodes(e,t,s,n,r){const i=this.createIterator(t,e,n);let o=[],c=[],l,h,f=()=>({prevNode:h,node:l}=this.getIteratorNode(i),l);for(;f();)this.iframes&&this.forEachIframe(t,v=>this.checkIframeFilter(l,h,v,o),v=>{this.createInstanceOnIframe(v).forEachNode(e,y=>c.push(y),n)}),c.push(l);c.forEach(v=>{s(v)}),this.iframes&&this.handleOpenIframes(o,e,s,n),r()}forEachNode(e,t,s,n=()=>{}){const r=this.getContexts();let i=r.length;i||n(),r.forEach(o=>{const c=()=>{this.iterateThroughNodes(e,o,t,s,()=>{--i<=0&&n()})};this.iframes?this.waitForIframes(o,c):c()})}}let Cs=class{constructor(e){this.ctx=e,this.ie=!1;const t=window.navigator.userAgent;(t.indexOf("MSIE")>-1||t.indexOf("Trident")>-1)&&(this.ie=!0)}set opt(e){this._opt=Object.assign({},{element:"",className:"",exclude:[],iframes:!1,iframesTimeout:5e3,separateWordSearch:!0,diacritics:!0,synonyms:{},accuracy:"partially",acrossElements:!1,caseSensitive:!1,ignoreJoiners:!1,ignoreGroups:0,ignorePunctuation:[],wildcards:"disabled",each:()=>{},noMatch:()=>{},filter:()=>!0,done:()=>{},debug:!1,log:window.console},e)}get opt(){return this._opt}get iterator(){return new ce(this.ctx,this.opt.iframes,this.opt.exclude,this.opt.iframesTimeout)}log(e,t="debug"){const s=this.opt.log;this.opt.debug&&typeof s=="object"&&typeof s[t]=="function"&&s[t](`mark.js: ${e}`)}escapeStr(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}createRegExp(e){return this.opt.wildcards!=="disabled"&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),this.opt.wildcards!=="disabled"&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e),e}createSynonymsRegExp(e){const t=this.opt.synonyms,s=this.opt.caseSensitive?"":"i",n=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(let r in t)if(t.hasOwnProperty(r)){const i=t[r],o=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(r):this.escapeStr(r),c=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(i):this.escapeStr(i);o!==""&&c!==""&&(e=e.replace(new RegExp(`(${this.escapeStr(o)}|${this.escapeStr(c)})`,`gm${s}`),n+`(${this.processSynomyms(o)}|${this.processSynomyms(c)})`+n))}return e}processSynomyms(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}setupWildcardsRegExp(e){return e=e.replace(/(?:\\)*\?/g,t=>t.charAt(0)==="\\"?"?":""),e.replace(/(?:\\)*\*/g,t=>t.charAt(0)==="\\"?"*":"")}createWildcardsRegExp(e){let t=this.opt.wildcards==="withSpaces";return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}setupIgnoreJoinersRegExp(e){return e.replace(/[^(|)\\]/g,(t,s,n)=>{let r=n.charAt(s+1);return/[(|)\\]/.test(r)||r===""?t:t+"\0"})}createJoinersRegExp(e){let t=[];const s=this.opt.ignorePunctuation;return Array.isArray(s)&&s.length&&t.push(this.escapeStr(s.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join(`[${t.join("")}]*`):e}createDiacriticsRegExp(e){const t=this.opt.caseSensitive?"":"i",s=this.opt.caseSensitive?["aàáảãạăằắẳẵặâầấẩẫậäåāą","AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćč","CÇĆČ","dđď","DĐĎ","eèéẻẽẹêềếểễệëěēę","EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïī","IÌÍỈĨỊÎÏĪ","lł","LŁ","nñňń","NÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøō","OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rř","RŘ","sšśșş","SŠŚȘŞ","tťțţ","TŤȚŢ","uùúủũụưừứửữựûüůū","UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿ","YÝỲỶỸỴŸ","zžżź","ZŽŻŹ"]:["aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćčCÇĆČ","dđďDĐĎ","eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïīIÌÍỈĨỊÎÏĪ","lłLŁ","nñňńNÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rřRŘ","sšśșşSŠŚȘŞ","tťțţTŤȚŢ","uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿYÝỲỶỸỴŸ","zžżźZŽŻŹ"];let n=[];return e.split("").forEach(r=>{s.every(i=>{if(i.indexOf(r)!==-1){if(n.indexOf(i)>-1)return!1;e=e.replace(new RegExp(`[${i}]`,`gm${t}`),`[${i}]`),n.push(i)}return!0})}),e}createMergedBlanksRegExp(e){return e.replace(/[\s]+/gmi,"[\\s]+")}createAccuracyRegExp(e){const t="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~¡¿";let s=this.opt.accuracy,n=typeof s=="string"?s:s.value,r=typeof s=="string"?[]:s.limiters,i="";switch(r.forEach(o=>{i+=`|${this.escapeStr(o)}`}),n){case"partially":default:return`()(${e})`;case"complementary":return i="\\s"+(i||this.escapeStr(t)),`()([^${i}]*${e}[^${i}]*)`;case"exactly":return`(^|\\s${i})(${e})(?=$|\\s${i})`}}getSeparatedKeywords(e){let t=[];return e.forEach(s=>{this.opt.separateWordSearch?s.split(" ").forEach(n=>{n.trim()&&t.indexOf(n)===-1&&t.push(n)}):s.trim()&&t.indexOf(s)===-1&&t.push(s)}),{keywords:t.sort((s,n)=>n.length-s.length),length:t.length}}isNumeric(e){return Number(parseFloat(e))==e}checkRanges(e){if(!Array.isArray(e)||Object.prototype.toString.call(e[0])!=="[object Object]")return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];const t=[];let s=0;return e.sort((n,r)=>n.start-r.start).forEach(n=>{let{start:r,end:i,valid:o}=this.callNoMatchOnInvalidRanges(n,s);o&&(n.start=r,n.length=i-r,t.push(n),s=i)}),t}callNoMatchOnInvalidRanges(e,t){let s,n,r=!1;return e&&typeof e.start<"u"?(s=parseInt(e.start,10),n=s+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&n-t>0&&n-s>0?r=!0:(this.log(`Ignoring invalid or overlapping range: ${JSON.stringify(e)}`),this.opt.noMatch(e))):(this.log(`Ignoring invalid range: ${JSON.stringify(e)}`),this.opt.noMatch(e)),{start:s,end:n,valid:r}}checkWhitespaceRanges(e,t,s){let n,r=!0,i=s.length,o=t-i,c=parseInt(e.start,10)-o;return c=c>i?i:c,n=c+parseInt(e.length,10),n>i&&(n=i,this.log(`End range automatically set to the max value of ${i}`)),c<0||n-c<0||c>i||n>i?(r=!1,this.log(`Invalid range: ${JSON.stringify(e)}`),this.opt.noMatch(e)):s.substring(c,n).replace(/\s+/g,"")===""&&(r=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:c,end:n,valid:r}}getTextNodes(e){let t="",s=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,n=>{s.push({start:t.length,end:(t+=n.textContent).length,node:n})},n=>this.matchesExclude(n.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT,()=>{e({value:t,nodes:s})})}matchesExclude(e){return ce.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}wrapRangeInTextNode(e,t,s){const n=this.opt.element?this.opt.element:"mark",r=e.splitText(t),i=r.splitText(s-t);let o=document.createElement(n);return o.setAttribute("data-markjs","true"),this.opt.className&&o.setAttribute("class",this.opt.className),o.textContent=r.textContent,r.parentNode.replaceChild(o,r),i}wrapRangeInMappedTextNode(e,t,s,n,r){e.nodes.every((i,o)=>{const c=e.nodes[o+1];if(typeof c>"u"||c.start>t){if(!n(i.node))return!1;const l=t-i.start,h=(s>i.end?i.end:s)-i.start,f=e.value.substr(0,i.start),v=e.value.substr(h+i.start);if(i.node=this.wrapRangeInTextNode(i.node,l,h),e.value=f+v,e.nodes.forEach((y,w)=>{w>=o&&(e.nodes[w].start>0&&w!==o&&(e.nodes[w].start-=h),e.nodes[w].end-=h)}),s-=h,r(i.node.previousSibling,i.start),s>i.end)t=i.end;else return!1}return!0})}wrapMatches(e,t,s,n,r){const i=t===0?0:t+1;this.getTextNodes(o=>{o.nodes.forEach(c=>{c=c.node;let l;for(;(l=e.exec(c.textContent))!==null&&l[i]!=="";){if(!s(l[i],c))continue;let h=l.index;if(i!==0)for(let f=1;f{let c;for(;(c=e.exec(o.value))!==null&&c[i]!=="";){let l=c.index;if(i!==0)for(let f=1;fs(c[i],f),(f,v)=>{e.lastIndex=v,n(f)})}r()})}wrapRangeFromIndex(e,t,s,n){this.getTextNodes(r=>{const i=r.value.length;e.forEach((o,c)=>{let{start:l,end:h,valid:f}=this.checkWhitespaceRanges(o,i,r.value);f&&this.wrapRangeInMappedTextNode(r,l,h,v=>t(v,o,r.value.substring(l,h),c),v=>{s(v,o)})}),n()})}unwrapMatches(e){const t=e.parentNode;let s=document.createDocumentFragment();for(;e.firstChild;)s.appendChild(e.removeChild(e.firstChild));t.replaceChild(s,e),this.ie?this.normalizeTextNode(t):t.normalize()}normalizeTextNode(e){if(e){if(e.nodeType===3)for(;e.nextSibling&&e.nextSibling.nodeType===3;)e.nodeValue+=e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);else this.normalizeTextNode(e.firstChild);this.normalizeTextNode(e.nextSibling)}}markRegExp(e,t){this.opt=t,this.log(`Searching with expression "${e}"`);let s=0,n="wrapMatches";const r=i=>{s++,this.opt.each(i)};this.opt.acrossElements&&(n="wrapMatchesAcrossElements"),this[n](e,this.opt.ignoreGroups,(i,o)=>this.opt.filter(o,i,s),r,()=>{s===0&&this.opt.noMatch(e),this.opt.done(s)})}mark(e,t){this.opt=t;let s=0,n="wrapMatches";const{keywords:r,length:i}=this.getSeparatedKeywords(typeof e=="string"?[e]:e),o=this.opt.caseSensitive?"":"i",c=l=>{let h=new RegExp(this.createRegExp(l),`gm${o}`),f=0;this.log(`Searching with expression "${h}"`),this[n](h,1,(v,y)=>this.opt.filter(y,l,s,f),v=>{f++,s++,this.opt.each(v)},()=>{f===0&&this.opt.noMatch(l),r[i-1]===l?this.opt.done(s):c(r[r.indexOf(l)+1])})};this.opt.acrossElements&&(n="wrapMatchesAcrossElements"),i===0?this.opt.done(s):c(r[0])}markRanges(e,t){this.opt=t;let s=0,n=this.checkRanges(e);n&&n.length?(this.log("Starting to mark with the following ranges: "+JSON.stringify(n)),this.wrapRangeFromIndex(n,(r,i,o,c)=>this.opt.filter(r,i,o,c),(r,i)=>{s++,this.opt.each(r,i)},()=>{this.opt.done(s)})):this.opt.done(s)}unmark(e){this.opt=e;let t=this.opt.element?this.opt.element:"*";t+="[data-markjs]",this.opt.className&&(t+=`.${this.opt.className}`),this.log(`Removal selector "${t}"`),this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT,s=>{this.unwrapMatches(s)},s=>{const n=ce.matches(s,t),r=this.matchesExclude(s);return!n||r?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},this.opt.done)}};function Ms(a){const e=new Cs(a);return this.mark=(t,s)=>(e.mark(t,s),this),this.markRegExp=(t,s)=>(e.markRegExp(t,s),this),this.markRanges=(t,s)=>(e.markRanges(t,s),this),this.unmark=t=>(e.unmark(t),this),this}function Ie(a,e,t,s){function n(r){return r instanceof t?r:new t(function(i){i(r)})}return new(t||(t=Promise))(function(r,i){function o(h){try{l(s.next(h))}catch(f){i(f)}}function c(h){try{l(s.throw(h))}catch(f){i(f)}}function l(h){h.done?r(h.value):n(h.value).then(o,c)}l((s=s.apply(a,[])).next())})}const As="ENTRIES",_t="KEYS",xt="VALUES",z="";class Le{constructor(e,t){const s=e._tree,n=Array.from(s.keys());this.set=e,this._type=t,this._path=n.length>0?[{node:s,keys:n}]:[]}next(){const e=this.dive();return this.backtrack(),e}dive(){if(this._path.length===0)return{done:!0,value:void 0};const{node:e,keys:t}=oe(this._path);if(oe(t)===z)return{done:!1,value:this.result()};const s=e.get(oe(t));return this._path.push({node:s,keys:Array.from(s.keys())}),this.dive()}backtrack(){if(this._path.length===0)return;const e=oe(this._path).keys;e.pop(),!(e.length>0)&&(this._path.pop(),this.backtrack())}key(){return this.set._prefix+this._path.map(({keys:e})=>oe(e)).filter(e=>e!==z).join("")}value(){return oe(this._path).node.get(z)}result(){switch(this._type){case xt:return this.value();case _t:return this.key();default:return[this.key(),this.value()]}}[Symbol.iterator](){return this}}const oe=a=>a[a.length-1],Ls=(a,e,t)=>{const s=new Map;if(e===void 0)return s;const n=e.length+1,r=n+t,i=new Uint8Array(r*n).fill(t+1);for(let o=0;o{const c=r*i;e:for(const l of a.keys())if(l===z){const h=n[c-1];h<=t&&s.set(o,[a.get(l),h])}else{let h=r;for(let f=0;ft)continue e}St(a.get(l),e,t,s,n,h,i,o+l)}};class X{constructor(e=new Map,t=""){this._size=void 0,this._tree=e,this._prefix=t}atPrefix(e){if(!e.startsWith(this._prefix))throw new Error("Mismatched prefix");const[t,s]=Oe(this._tree,e.slice(this._prefix.length));if(t===void 0){const[n,r]=Je(s);for(const i of n.keys())if(i!==z&&i.startsWith(r)){const o=new Map;return o.set(i.slice(r.length),n.get(i)),new X(o,e)}}return new X(t,e)}clear(){this._size=void 0,this._tree.clear()}delete(e){return this._size=void 0,Ds(this._tree,e)}entries(){return new Le(this,As)}forEach(e){for(const[t,s]of this)e(t,s,this)}fuzzyGet(e,t){return Ls(this._tree,e,t)}get(e){const t=Be(this._tree,e);return t!==void 0?t.get(z):void 0}has(e){const t=Be(this._tree,e);return t!==void 0&&t.has(z)}keys(){return new Le(this,_t)}set(e,t){if(typeof e!="string")throw new Error("key must be a string");return this._size=void 0,De(this._tree,e).set(z,t),this}get size(){if(this._size)return this._size;this._size=0;const e=this.entries();for(;!e.next().done;)this._size+=1;return this._size}update(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;const s=De(this._tree,e);return s.set(z,t(s.get(z))),this}fetch(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;const s=De(this._tree,e);let n=s.get(z);return n===void 0&&s.set(z,n=t()),n}values(){return new Le(this,xt)}[Symbol.iterator](){return this.entries()}static from(e){const t=new X;for(const[s,n]of e)t.set(s,n);return t}static fromObject(e){return X.from(Object.entries(e))}}const Oe=(a,e,t=[])=>{if(e.length===0||a==null)return[a,t];for(const s of a.keys())if(s!==z&&e.startsWith(s))return t.push([a,s]),Oe(a.get(s),e.slice(s.length),t);return t.push([a,e]),Oe(void 0,"",t)},Be=(a,e)=>{if(e.length===0||a==null)return a;for(const t of a.keys())if(t!==z&&e.startsWith(t))return Be(a.get(t),e.slice(t.length))},De=(a,e)=>{const t=e.length;e:for(let s=0;a&&s{const[t,s]=Oe(a,e);if(t!==void 0){if(t.delete(z),t.size===0)Et(s);else if(t.size===1){const[n,r]=t.entries().next().value;It(s,n,r)}}},Et=a=>{if(a.length===0)return;const[e,t]=Je(a);if(e.delete(t),e.size===0)Et(a.slice(0,-1));else if(e.size===1){const[s,n]=e.entries().next().value;s!==z&&It(a.slice(0,-1),s,n)}},It=(a,e,t)=>{if(a.length===0)return;const[s,n]=Je(a);s.set(n+e,t),s.delete(n)},Je=a=>a[a.length-1],Ue="or",Tt="and",zs="and_not";class le{constructor(e){if((e==null?void 0:e.fields)==null)throw new Error('MiniSearch: option "fields" must be provided');const t=e.autoVacuum==null||e.autoVacuum===!0?je:e.autoVacuum;this._options=Object.assign(Object.assign(Object.assign({},Pe),e),{autoVacuum:t,searchOptions:Object.assign(Object.assign({},dt),e.searchOptions||{}),autoSuggestOptions:Object.assign(Object.assign({},Bs),e.autoSuggestOptions||{})}),this._index=new X,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldIds={},this._fieldLength=new Map,this._avgFieldLength=[],this._nextId=0,this._storedFields=new Map,this._dirtCount=0,this._currentVacuum=null,this._enqueuedVacuum=null,this._enqueuedVacuumConditions=Ke,this.addFields(this._options.fields)}add(e){const{extractField:t,tokenize:s,processTerm:n,fields:r,idField:i}=this._options,o=t(e,i);if(o==null)throw new Error(`MiniSearch: document does not have ID field "${i}"`);if(this._idToShortId.has(o))throw new Error(`MiniSearch: duplicate ID ${o}`);const c=this.addDocumentId(o);this.saveStoredFields(c,e);for(const l of r){const h=t(e,l);if(h==null)continue;const f=s(h.toString(),l),v=this._fieldIds[l],y=new Set(f).size;this.addFieldLength(c,v,this._documentCount-1,y);for(const w of f){const b=n(w,l);if(Array.isArray(b))for(const x of b)this.addTerm(v,c,x);else b&&this.addTerm(v,c,b)}}}addAll(e){for(const t of e)this.add(t)}addAllAsync(e,t={}){const{chunkSize:s=10}=t,n={chunk:[],promise:Promise.resolve()},{chunk:r,promise:i}=e.reduce(({chunk:o,promise:c},l,h)=>(o.push(l),(h+1)%s===0?{chunk:[],promise:c.then(()=>new Promise(f=>setTimeout(f,0))).then(()=>this.addAll(o))}:{chunk:o,promise:c}),n);return i.then(()=>this.addAll(r))}remove(e){const{tokenize:t,processTerm:s,extractField:n,fields:r,idField:i}=this._options,o=n(e,i);if(o==null)throw new Error(`MiniSearch: document does not have ID field "${i}"`);const c=this._idToShortId.get(o);if(c==null)throw new Error(`MiniSearch: cannot remove document with ID ${o}: it is not in the index`);for(const l of r){const h=n(e,l);if(h==null)continue;const f=t(h.toString(),l),v=this._fieldIds[l],y=new Set(f).size;this.removeFieldLength(c,v,this._documentCount,y);for(const w of f){const b=s(w,l);if(Array.isArray(b))for(const x of b)this.removeTerm(v,c,x);else b&&this.removeTerm(v,c,b)}}this._storedFields.delete(c),this._documentIds.delete(c),this._idToShortId.delete(o),this._fieldLength.delete(c),this._documentCount-=1}removeAll(e){if(e)for(const t of e)this.remove(t);else{if(arguments.length>0)throw new Error("Expected documents to be present. Omit the argument to remove all documents.");this._index=new X,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldLength=new Map,this._avgFieldLength=[],this._storedFields=new Map,this._nextId=0}}discard(e){const t=this._idToShortId.get(e);if(t==null)throw new Error(`MiniSearch: cannot discard document with ID ${e}: it is not in the index`);this._idToShortId.delete(e),this._documentIds.delete(t),this._storedFields.delete(t),(this._fieldLength.get(t)||[]).forEach((s,n)=>{this.removeFieldLength(t,n,this._documentCount,s)}),this._fieldLength.delete(t),this._documentCount-=1,this._dirtCount+=1,this.maybeAutoVacuum()}maybeAutoVacuum(){if(this._options.autoVacuum===!1)return;const{minDirtFactor:e,minDirtCount:t,batchSize:s,batchWait:n}=this._options.autoVacuum;this.conditionalVacuum({batchSize:s,batchWait:n},{minDirtCount:t,minDirtFactor:e})}discardAll(e){const t=this._options.autoVacuum;try{this._options.autoVacuum=!1;for(const s of e)this.discard(s)}finally{this._options.autoVacuum=t}this.maybeAutoVacuum()}replace(e){const{idField:t,extractField:s}=this._options,n=s(e,t);this.discard(n),this.add(e)}vacuum(e={}){return this.conditionalVacuum(e)}conditionalVacuum(e,t){return this._currentVacuum?(this._enqueuedVacuumConditions=this._enqueuedVacuumConditions&&t,this._enqueuedVacuum!=null?this._enqueuedVacuum:(this._enqueuedVacuum=this._currentVacuum.then(()=>{const s=this._enqueuedVacuumConditions;return this._enqueuedVacuumConditions=Ke,this.performVacuuming(e,s)}),this._enqueuedVacuum)):this.vacuumConditionsMet(t)===!1?Promise.resolve():(this._currentVacuum=this.performVacuuming(e),this._currentVacuum)}performVacuuming(e,t){return Ie(this,void 0,void 0,function*(){const s=this._dirtCount;if(this.vacuumConditionsMet(t)){const n=e.batchSize||We.batchSize,r=e.batchWait||We.batchWait;let i=1;for(const[o,c]of this._index){for(const[l,h]of c)for(const[f]of h)this._documentIds.has(f)||(h.size<=1?c.delete(l):h.delete(f));this._index.get(o).size===0&&this._index.delete(o),i%n===0&&(yield new Promise(l=>setTimeout(l,r))),i+=1}this._dirtCount-=s}yield null,this._currentVacuum=this._enqueuedVacuum,this._enqueuedVacuum=null})}vacuumConditionsMet(e){if(e==null)return!0;let{minDirtCount:t,minDirtFactor:s}=e;return t=t||je.minDirtCount,s=s||je.minDirtFactor,this.dirtCount>=t&&this.dirtFactor>=s}get isVacuuming(){return this._currentVacuum!=null}get dirtCount(){return this._dirtCount}get dirtFactor(){return this._dirtCount/(1+this._documentCount+this._dirtCount)}has(e){return this._idToShortId.has(e)}getStoredFields(e){const t=this._idToShortId.get(e);if(t!=null)return this._storedFields.get(t)}search(e,t={}){const s=this.executeQuery(e,t),n=[];for(const[r,{score:i,terms:o,match:c}]of s){const l=o.length||1,h={id:this._documentIds.get(r),score:i*l,terms:Object.keys(c),queryTerms:o,match:c};Object.assign(h,this._storedFields.get(r)),(t.filter==null||t.filter(h))&&n.push(h)}return e===le.wildcard&&t.boostDocument==null&&this._options.searchOptions.boostDocument==null||n.sort(ft),n}autoSuggest(e,t={}){t=Object.assign(Object.assign({},this._options.autoSuggestOptions),t);const s=new Map;for(const{score:r,terms:i}of this.search(e,t)){const o=i.join(" "),c=s.get(o);c!=null?(c.score+=r,c.count+=1):s.set(o,{score:r,terms:i,count:1})}const n=[];for(const[r,{score:i,terms:o,count:c}]of s)n.push({suggestion:r,terms:o,score:i/c});return n.sort(ft),n}get documentCount(){return this._documentCount}get termCount(){return this._index.size}static loadJSON(e,t){if(t==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJS(JSON.parse(e),t)}static loadJSONAsync(e,t){return Ie(this,void 0,void 0,function*(){if(t==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJSAsync(JSON.parse(e),t)})}static getDefault(e){if(Pe.hasOwnProperty(e))return ze(Pe,e);throw new Error(`MiniSearch: unknown option "${e}"`)}static loadJS(e,t){const{index:s,documentIds:n,fieldLength:r,storedFields:i,serializationVersion:o}=e,c=this.instantiateMiniSearch(e,t);c._documentIds=Se(n),c._fieldLength=Se(r),c._storedFields=Se(i);for(const[l,h]of c._documentIds)c._idToShortId.set(h,l);for(const[l,h]of s){const f=new Map;for(const v of Object.keys(h)){let y=h[v];o===1&&(y=y.ds),f.set(parseInt(v,10),Se(y))}c._index.set(l,f)}return c}static loadJSAsync(e,t){return Ie(this,void 0,void 0,function*(){const{index:s,documentIds:n,fieldLength:r,storedFields:i,serializationVersion:o}=e,c=this.instantiateMiniSearch(e,t);c._documentIds=yield Ee(n),c._fieldLength=yield Ee(r),c._storedFields=yield Ee(i);for(const[h,f]of c._documentIds)c._idToShortId.set(f,h);let l=0;for(const[h,f]of s){const v=new Map;for(const y of Object.keys(f)){let w=f[y];o===1&&(w=w.ds),v.set(parseInt(y,10),yield Ee(w))}++l%1e3===0&&(yield Nt(0)),c._index.set(h,v)}return c})}static instantiateMiniSearch(e,t){const{documentCount:s,nextId:n,fieldIds:r,averageFieldLength:i,dirtCount:o,serializationVersion:c}=e;if(c!==1&&c!==2)throw new Error("MiniSearch: cannot deserialize an index created with an incompatible version");const l=new le(t);return l._documentCount=s,l._nextId=n,l._idToShortId=new Map,l._fieldIds=r,l._avgFieldLength=i,l._dirtCount=o||0,l._index=new X,l}executeQuery(e,t={}){if(e===le.wildcard)return this.executeWildcardQuery(t);if(typeof e!="string"){const v=Object.assign(Object.assign(Object.assign({},t),e),{queries:void 0}),y=e.queries.map(w=>this.executeQuery(w,v));return this.combineResults(y,v.combineWith)}const{tokenize:s,processTerm:n,searchOptions:r}=this._options,i=Object.assign(Object.assign({tokenize:s,processTerm:n},r),t),{tokenize:o,processTerm:c}=i,f=o(e).flatMap(v=>c(v)).filter(v=>!!v).map($s(i)).map(v=>this.executeQuerySpec(v,i));return this.combineResults(f,i.combineWith)}executeQuerySpec(e,t){const s=Object.assign(Object.assign({},this._options.searchOptions),t),n=(s.fields||this._options.fields).reduce((b,x)=>Object.assign(Object.assign({},b),{[x]:ze(s.boost,x)||1}),{}),{boostDocument:r,weights:i,maxFuzzy:o,bm25:c}=s,{fuzzy:l,prefix:h}=Object.assign(Object.assign({},dt.weights),i),f=this._index.get(e.term),v=this.termResults(e.term,e.term,1,f,n,r,c);let y,w;if(e.prefix&&(y=this._index.atPrefix(e.term)),e.fuzzy){const b=e.fuzzy===!0?.2:e.fuzzy,x=b<1?Math.min(o,Math.round(e.term.length*b)):b;x&&(w=this._index.fuzzyGet(e.term,x))}if(y)for(const[b,x]of y){const C=b.length-e.term.length;if(!C)continue;w==null||w.delete(b);const R=h*b.length/(b.length+.3*C);this.termResults(e.term,b,R,x,n,r,c,v)}if(w)for(const b of w.keys()){const[x,C]=w.get(b);if(!C)continue;const R=l*b.length/(b.length+C);this.termResults(e.term,b,R,x,n,r,c,v)}return v}executeWildcardQuery(e){const t=new Map,s=Object.assign(Object.assign({},this._options.searchOptions),e);for(const[n,r]of this._documentIds){const i=s.boostDocument?s.boostDocument(r,"",this._storedFields.get(n)):1;t.set(n,{score:i,terms:[],match:{}})}return t}combineResults(e,t=Ue){if(e.length===0)return new Map;const s=t.toLowerCase(),n=Ps[s];if(!n)throw new Error(`Invalid combination operator: ${t}`);return e.reduce(n)||new Map}toJSON(){const e=[];for(const[t,s]of this._index){const n={};for(const[r,i]of s)n[r]=Object.fromEntries(i);e.push([t,n])}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:e,serializationVersion:2}}termResults(e,t,s,n,r,i,o,c=new Map){if(n==null)return c;for(const l of Object.keys(r)){const h=r[l],f=this._fieldIds[l],v=n.get(f);if(v==null)continue;let y=v.size;const w=this._avgFieldLength[f];for(const b of v.keys()){if(!this._documentIds.has(b)){this.removeTerm(f,b,t),y-=1;continue}const x=i?i(this._documentIds.get(b),t,this._storedFields.get(b)):1;if(!x)continue;const C=v.get(b),R=this._fieldLength.get(b)[f],W=Vs(C,y,this._documentCount,R,w,o),J=s*h*x*W,V=c.get(b);if(V){V.score+=J,Ws(V.terms,e);const U=ze(V.match,t);U?U.push(l):V.match[t]=[l]}else c.set(b,{score:J,terms:[e],match:{[t]:[l]}})}}return c}addTerm(e,t,s){const n=this._index.fetch(s,pt);let r=n.get(e);if(r==null)r=new Map,r.set(t,1),n.set(e,r);else{const i=r.get(t);r.set(t,(i||0)+1)}}removeTerm(e,t,s){if(!this._index.has(s)){this.warnDocumentChanged(t,e,s);return}const n=this._index.fetch(s,pt),r=n.get(e);r==null||r.get(t)==null?this.warnDocumentChanged(t,e,s):r.get(t)<=1?r.size<=1?n.delete(e):r.delete(t):r.set(t,r.get(t)-1),this._index.get(s).size===0&&this._index.delete(s)}warnDocumentChanged(e,t,s){for(const n of Object.keys(this._fieldIds))if(this._fieldIds[n]===t){this._options.logger("warn",`MiniSearch: document with ID ${this._documentIds.get(e)} has changed before removal: term "${s}" was not present in field "${n}". Removing a document after it has changed can corrupt the index!`,"version_conflict");return}}addDocumentId(e){const t=this._nextId;return this._idToShortId.set(e,t),this._documentIds.set(t,e),this._documentCount+=1,this._nextId+=1,t}addFields(e){for(let t=0;tObject.prototype.hasOwnProperty.call(a,e)?a[e]:void 0,Ps={[Ue]:(a,e)=>{for(const t of e.keys()){const s=a.get(t);if(s==null)a.set(t,e.get(t));else{const{score:n,terms:r,match:i}=e.get(t);s.score=s.score+n,s.match=Object.assign(s.match,i),ht(s.terms,r)}}return a},[Tt]:(a,e)=>{const t=new Map;for(const s of e.keys()){const n=a.get(s);if(n==null)continue;const{score:r,terms:i,match:o}=e.get(s);ht(n.terms,i),t.set(s,{score:n.score+r,terms:n.terms,match:Object.assign(n.match,o)})}return t},[zs]:(a,e)=>{for(const t of e.keys())a.delete(t);return a}},js={k:1.2,b:.7,d:.5},Vs=(a,e,t,s,n,r)=>{const{k:i,b:o,d:c}=r;return Math.log(1+(t-e+.5)/(e+.5))*(c+a*(i+1)/(a+i*(1-o+o*s/n)))},$s=a=>(e,t,s)=>{const n=typeof a.fuzzy=="function"?a.fuzzy(e,t,s):a.fuzzy||!1,r=typeof a.prefix=="function"?a.prefix(e,t,s):a.prefix===!0;return{term:e,fuzzy:n,prefix:r}},Pe={idField:"id",extractField:(a,e)=>a[e],tokenize:a=>a.split(Ks),processTerm:a=>a.toLowerCase(),fields:void 0,searchOptions:void 0,storeFields:[],logger:(a,e)=>{typeof(console==null?void 0:console[a])=="function"&&console[a](e)},autoVacuum:!0},dt={combineWith:Ue,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:js},Bs={combineWith:Tt,prefix:(a,e,t)=>e===t.length-1},We={batchSize:1e3,batchWait:10},Ke={minDirtFactor:.1,minDirtCount:20},je=Object.assign(Object.assign({},We),Ke),Ws=(a,e)=>{a.includes(e)||a.push(e)},ht=(a,e)=>{for(const t of e)a.includes(t)||a.push(t)},ft=({score:a},{score:e})=>e-a,pt=()=>new Map,Se=a=>{const e=new Map;for(const t of Object.keys(a))e.set(parseInt(t,10),a[t]);return e},Ee=a=>Ie(void 0,void 0,void 0,function*(){const e=new Map;let t=0;for(const s of Object.keys(a))e.set(parseInt(s,10),a[s]),++t%1e3===0&&(yield Nt(0));return e}),Nt=a=>new Promise(e=>setTimeout(e,a)),Ks=/[\n\r\p{Z}\p{P}]+/u;class Js{constructor(e=10){Ce(this,"max");Ce(this,"cache");this.max=e,this.cache=new Map}get(e){let t=this.cache.get(e);return t!==void 0&&(this.cache.delete(e),this.cache.set(e,t)),t}set(e,t){this.cache.has(e)?this.cache.delete(e):this.cache.size===this.max&&this.cache.delete(this.first()),this.cache.set(e,t)}first(){return this.cache.keys().next().value}clear(){this.cache.clear()}}const B=a=>(Qt("data-v-f4c4f812"),a=a(),Ht(),a),Us=["aria-owns"],qs={class:"shell"},Gs=["title"],Qs=B(()=>_("span",{"aria-hidden":"true",class:"vpi-search search-icon local-search-icon"},null,-1)),Hs=[Qs],Ys={class:"search-actions before"},Zs=["title"],Xs=B(()=>_("span",{class:"vpi-arrow-left local-search-icon"},null,-1)),en=[Xs],tn=["placeholder"],sn={class:"search-actions"},nn=["title"],rn=B(()=>_("span",{class:"vpi-layout-list local-search-icon"},null,-1)),an=[rn],on=["disabled","title"],cn=B(()=>_("span",{class:"vpi-delete local-search-icon"},null,-1)),ln=[cn],un=["id","role","aria-labelledby"],dn=["aria-selected"],hn=["href","aria-label","onMouseenter","onFocusin"],fn={class:"titles"},pn=B(()=>_("span",{class:"title-icon"},"#",-1)),vn=["innerHTML"],mn=B(()=>_("span",{class:"vpi-chevron-right local-search-icon"},null,-1)),gn={class:"title main"},bn=["innerHTML"],yn={key:0,class:"excerpt-wrapper"},wn={key:0,class:"excerpt",inert:""},_n=["innerHTML"],xn=B(()=>_("div",{class:"excerpt-gradient-bottom"},null,-1)),Sn=B(()=>_("div",{class:"excerpt-gradient-top"},null,-1)),En={key:0,class:"no-results"},In={class:"search-keyboard-shortcuts"},Tn=["aria-label"],Nn=B(()=>_("span",{class:"vpi-arrow-up navigate-icon"},null,-1)),kn=[Nn],Fn=["aria-label"],On=B(()=>_("span",{class:"vpi-arrow-down navigate-icon"},null,-1)),Rn=[On],Cn=["aria-label"],Mn=B(()=>_("span",{class:"vpi-corner-down-left navigate-icon"},null,-1)),An=[Mn],Ln=["aria-label"],Dn=Mt({__name:"VPLocalSearchBox",emits:["close"],setup(a,{emit:e}){var F,M;const t=e,s=be(),n=be(),r=be(is),i=ss(),{activate:o}=Rs(s,{immediate:!0,allowOutsideClick:!0,clickOutsideDeactivates:!0,escapeDeactivates:!0}),{localeIndex:c,theme:l}=i,h=et(async()=>{var p,g,N,O,P,j,T,L,G;return it(le.loadJSON((N=await((g=(p=r.value)[c.value])==null?void 0:g.call(p)))==null?void 0:N.default,{fields:["title","titles","text"],storeFields:["title","titles"],searchOptions:{fuzzy:.2,prefix:!0,boost:{title:4,text:2,titles:1},...((O=l.value.search)==null?void 0:O.provider)==="local"&&((j=(P=l.value.search.options)==null?void 0:P.miniSearch)==null?void 0:j.searchOptions)},...((T=l.value.search)==null?void 0:T.provider)==="local"&&((G=(L=l.value.search.options)==null?void 0:L.miniSearch)==null?void 0:G.options)}))}),v=ye(()=>{var p,g;return((p=l.value.search)==null?void 0:p.provider)==="local"&&((g=l.value.search.options)==null?void 0:g.disableQueryPersistence)===!0}).value?ne(""):At("vitepress:local-search-filter",""),y=Lt("vitepress:local-search-detailed-list",((F=l.value.search)==null?void 0:F.provider)==="local"&&((M=l.value.search.options)==null?void 0:M.detailedView)===!0),w=ye(()=>{var p,g,N;return((p=l.value.search)==null?void 0:p.provider)==="local"&&(((g=l.value.search.options)==null?void 0:g.disableDetailedView)===!0||((N=l.value.search.options)==null?void 0:N.detailedView)===!1)}),b=ye(()=>{var g,N,O,P,j,T,L;const p=((g=l.value.search)==null?void 0:g.options)??l.value.algolia;return((j=(P=(O=(N=p==null?void 0:p.locales)==null?void 0:N[c.value])==null?void 0:O.translations)==null?void 0:P.button)==null?void 0:j.buttonText)||((L=(T=p==null?void 0:p.translations)==null?void 0:T.button)==null?void 0:L.buttonText)||"Search"});Dt(()=>{w.value&&(y.value=!1)});const x=be([]),C=ne(!1);Ve(v,()=>{C.value=!1});const R=et(async()=>{if(n.value)return it(new Ms(n.value))},null),W=new Js(16);zt(()=>[h.value,v.value,y.value],async([p,g,N],O,P)=>{var me,qe,Ge,Qe;(O==null?void 0:O[0])!==p&&W.clear();let j=!1;if(P(()=>{j=!0}),!p)return;x.value=p.search(g).slice(0,16),C.value=!0;const T=N?await Promise.all(x.value.map($=>J($.id))):[];if(j)return;for(const{id:$,mod:ee}of T){const te=$.slice(0,$.indexOf("#"));let Y=W.get(te);if(Y)continue;Y=new Map,W.set(te,Y);const Q=ee.default??ee;if(Q!=null&&Q.render||Q!=null&&Q.setup){const se=Yt(Q);se.config.warnHandler=()=>{},se.provide(Zt,i),Object.defineProperties(se.config.globalProperties,{$frontmatter:{get(){return i.frontmatter.value}},$params:{get(){return i.page.value.params}}});const He=document.createElement("div");se.mount(He),He.querySelectorAll("h1, h2, h3, h4, h5, h6").forEach(ue=>{var Xe;const ge=(Xe=ue.querySelector("a"))==null?void 0:Xe.getAttribute("href"),Ye=(ge==null?void 0:ge.startsWith("#"))&&ge.slice(1);if(!Ye)return;let Ze="";for(;(ue=ue.nextElementSibling)&&!/^h[1-6]$/i.test(ue.tagName);)Ze+=ue.outerHTML;Y.set(Ye,Ze)}),se.unmount()}if(j)return}const L=new Set;if(x.value=x.value.map($=>{const[ee,te]=$.id.split("#"),Y=W.get(ee),Q=(Y==null?void 0:Y.get(te))??"";for(const se in $.match)L.add(se);return{...$,text:Q}}),await de(),j)return;await new Promise($=>{var ee;(ee=R.value)==null||ee.unmark({done:()=>{var te;(te=R.value)==null||te.markRegExp(k(L),{done:$})}})});const G=((me=s.value)==null?void 0:me.querySelectorAll(".result .excerpt"))??[];for(const $ of G)(qe=$.querySelector('mark[data-markjs="true"]'))==null||qe.scrollIntoView({block:"center"});(Qe=(Ge=n.value)==null?void 0:Ge.firstElementChild)==null||Qe.scrollIntoView({block:"start"})},{debounce:200,immediate:!0});async function J(p){const g=Xt(p.slice(0,p.indexOf("#")));try{if(!g)throw new Error(`Cannot find file for id: ${p}`);return{id:p,mod:await import(g)}}catch(N){return console.error(N),{id:p,mod:{}}}}const V=ne(),U=ye(()=>{var p;return((p=v.value)==null?void 0:p.length)<=0});function q(p=!0){var g,N;(g=V.value)==null||g.focus(),p&&((N=V.value)==null||N.select())}Me(()=>{q()});function Re(p){p.pointerType==="mouse"&&q()}const A=ne(-1),K=ne(!1);Ve(x,p=>{A.value=p.length?0:-1,I()});function I(){de(()=>{const p=document.querySelector(".result.selected");p==null||p.scrollIntoView({block:"nearest"})})}we("ArrowUp",p=>{p.preventDefault(),A.value--,A.value<0&&(A.value=x.value.length-1),K.value=!0,I()}),we("ArrowDown",p=>{p.preventDefault(),A.value++,A.value>=x.value.length&&(A.value=0),K.value=!0,I()});const u=Pt();we("Enter",p=>{if(p.isComposing||p.target instanceof HTMLButtonElement&&p.target.type!=="submit")return;const g=x.value[A.value];if(p.target instanceof HTMLInputElement&&!g){p.preventDefault();return}g&&(u.go(g.id),t("close"))}),we("Escape",()=>{t("close")});const m=ns({modal:{displayDetails:"Display detailed list",resetButtonTitle:"Reset search",backButtonTitle:"Close search",noResultsText:"No results for",footer:{selectText:"to select",selectKeyAriaLabel:"enter",navigateText:"to navigate",navigateUpKeyAriaLabel:"up arrow",navigateDownKeyAriaLabel:"down arrow",closeText:"to close",closeKeyAriaLabel:"escape"}}});Me(()=>{window.history.pushState(null,"",null)}),jt("popstate",p=>{p.preventDefault(),t("close")});const S=Vt($t?document.body:null);Me(()=>{de(()=>{S.value=!0,de().then(()=>o())})}),Bt(()=>{S.value=!1});function E(){v.value="",de().then(()=>q(!1))}function k(p){return new RegExp([...p].sort((g,N)=>N.length-g.length).map(g=>`(${es(g)})`).join("|"),"gi")}return(p,g)=>{var N,O,P,j;return H(),Wt(Gt,{to:"body"},[_("div",{ref_key:"el",ref:s,role:"button","aria-owns":(N=x.value)!=null&&N.length?"localsearch-list":void 0,"aria-expanded":"true","aria-haspopup":"listbox","aria-labelledby":"localsearch-label",class:"VPLocalSearchBox"},[_("div",{class:"backdrop",onClick:g[0]||(g[0]=T=>p.$emit("close"))}),_("div",qs,[_("form",{class:"search-bar",onPointerup:g[4]||(g[4]=T=>Re(T)),onSubmit:g[5]||(g[5]=Kt(()=>{},["prevent"]))},[_("label",{title:b.value,id:"localsearch-label",for:"localsearch-input"},Hs,8,Gs),_("div",Ys,[_("button",{class:"back-button",title:D(m)("modal.backButtonTitle"),onClick:g[1]||(g[1]=T=>p.$emit("close"))},en,8,Zs)]),Jt(_("input",{ref_key:"searchInput",ref:V,"onUpdate:modelValue":g[2]||(g[2]=T=>qt(v)?v.value=T:null),placeholder:b.value,id:"localsearch-input","aria-labelledby":"localsearch-label",class:"search-input"},null,8,tn),[[Ut,D(v)]]),_("div",sn,[w.value?_e("",!0):(H(),Z("button",{key:0,class:tt(["toggle-layout-button",{"detailed-list":D(y)}]),type:"button",title:D(m)("modal.displayDetails"),onClick:g[3]||(g[3]=T=>A.value>-1&&(y.value=!D(y)))},an,10,nn)),_("button",{class:"clear-button",type:"reset",disabled:U.value,title:D(m)("modal.resetButtonTitle"),onClick:E},ln,8,on)])],32),_("ul",{ref_key:"resultsEl",ref:n,id:(O=x.value)!=null&&O.length?"localsearch-list":void 0,role:(P=x.value)!=null&&P.length?"listbox":void 0,"aria-labelledby":(j=x.value)!=null&&j.length?"localsearch-label":void 0,class:"results",onMousemove:g[7]||(g[7]=T=>K.value=!1)},[(H(!0),Z(nt,null,st(x.value,(T,L)=>(H(),Z("li",{key:T.id,role:"option","aria-selected":A.value===L?"true":"false"},[_("a",{href:T.id,class:tt(["result",{selected:A.value===L}]),"aria-label":[...T.titles,T.title].join(" > "),onMouseenter:G=>!K.value&&(A.value=L),onFocusin:G=>A.value=L,onClick:g[6]||(g[6]=G=>p.$emit("close"))},[_("div",null,[_("div",fn,[pn,(H(!0),Z(nt,null,st(T.titles,(G,me)=>(H(),Z("span",{key:me,class:"title"},[_("span",{class:"text",innerHTML:G},null,8,vn),mn]))),128)),_("span",gn,[_("span",{class:"text",innerHTML:T.title},null,8,bn)])]),D(y)?(H(),Z("div",yn,[T.text?(H(),Z("div",wn,[_("div",{class:"vp-doc",innerHTML:T.text},null,8,_n)])):_e("",!0),xn,Sn])):_e("",!0)])],42,hn)],8,dn))),128)),D(v)&&!x.value.length&&C.value?(H(),Z("li",En,[he(fe(D(m)("modal.noResultsText"))+' "',1),_("strong",null,fe(D(v)),1),he('" ')])):_e("",!0)],40,un),_("div",In,[_("span",null,[_("kbd",{"aria-label":D(m)("modal.footer.navigateUpKeyAriaLabel")},kn,8,Tn),_("kbd",{"aria-label":D(m)("modal.footer.navigateDownKeyAriaLabel")},Rn,8,Fn),he(" "+fe(D(m)("modal.footer.navigateText")),1)]),_("span",null,[_("kbd",{"aria-label":D(m)("modal.footer.selectKeyAriaLabel")},An,8,Cn),he(" "+fe(D(m)("modal.footer.selectText")),1)]),_("span",null,[_("kbd",{"aria-label":D(m)("modal.footer.closeKeyAriaLabel")},"esc",8,Ln),he(" "+fe(D(m)("modal.footer.closeText")),1)])])])],8,Us)])}}}),Bn=ts(Dn,[["__scopeId","data-v-f4c4f812"]]);export{Bn as default}; diff --git a/dev/assets/chunks/framework.B24clL9_.js b/dev/assets/chunks/framework.B24clL9_.js deleted file mode 100644 index 146ce764f..000000000 --- a/dev/assets/chunks/framework.B24clL9_.js +++ /dev/null @@ -1,17 +0,0 @@ -/** -* @vue/shared v3.4.31 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**//*! #__NO_SIDE_EFFECTS__ */function wr(e,t){const n=new Set(e.split(","));return r=>n.has(r)}const te={},mt=[],xe=()=>{},Ii=()=>!1,kt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Er=e=>e.startsWith("onUpdate:"),le=Object.assign,Cr=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Mi=Object.prototype.hasOwnProperty,Y=(e,t)=>Mi.call(e,t),B=Array.isArray,yt=e=>Sn(e)==="[object Map]",Ys=e=>Sn(e)==="[object Set]",K=e=>typeof e=="function",oe=e=>typeof e=="string",Ze=e=>typeof e=="symbol",Z=e=>e!==null&&typeof e=="object",Js=e=>(Z(e)||K(e))&&K(e.then)&&K(e.catch),Qs=Object.prototype.toString,Sn=e=>Qs.call(e),Pi=e=>Sn(e).slice(8,-1),Zs=e=>Sn(e)==="[object Object]",xr=e=>oe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,_t=wr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Tn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Ni=/-(\w)/g,$e=Tn(e=>e.replace(Ni,(t,n)=>n?n.toUpperCase():"")),Fi=/\B([A-Z])/g,ft=Tn(e=>e.replace(Fi,"-$1").toLowerCase()),An=Tn(e=>e.charAt(0).toUpperCase()+e.slice(1)),un=Tn(e=>e?`on${An(e)}`:""),Je=(e,t)=>!Object.is(e,t),fn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},cr=e=>{const t=parseFloat(e);return isNaN(t)?e:t},$i=e=>{const t=oe(e)?Number(e):NaN;return isNaN(t)?e:t};let Jr;const to=()=>Jr||(Jr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Sr(e){if(B(e)){const t={};for(let n=0;n{if(n){const r=n.split(ji);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Tr(e){let t="";if(oe(e))t=e;else if(B(e))for(let n=0;n!!(e&&e.__v_isRef===!0),ki=e=>oe(e)?e:e==null?"":B(e)||Z(e)&&(e.toString===Qs||!K(e.toString))?ro(e)?ki(e.value):JSON.stringify(e,so,2):String(e),so=(e,t)=>ro(t)?so(e,t.value):yt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[kn(r,o)+" =>"]=s,n),{})}:Ys(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>kn(n))}:Ze(t)?kn(t):Z(t)&&!B(t)&&!Zs(t)?String(t):t,kn=(e,t="")=>{var n;return Ze(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** -* @vue/reactivity v3.4.31 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let we;class Ki{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=we,!t&&we&&(this.index=(we.scopes||(we.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=we;try{return we=this,t()}finally{we=n}}}on(){we=this}off(){we=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n=4))break}this._dirtyLevel===1&&(this._dirtyLevel=0),tt()}return this._dirtyLevel>=4}set dirty(t){this._dirtyLevel=t?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=Xe,n=ct;try{return Xe=!0,ct=this,this._runnings++,Qr(this),this.fn()}finally{Zr(this),this._runnings--,ct=n,Xe=t}}stop(){this.active&&(Qr(this),Zr(this),this.onStop&&this.onStop(),this.active=!1)}}function Gi(e){return e.value}function Qr(e){e._trackId++,e._depsLength=0}function Zr(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},mn=new WeakMap,at=Symbol(""),fr=Symbol("");function ve(e,t,n){if(Xe&&ct){let r=mn.get(e);r||mn.set(e,r=new Map);let s=r.get(n);s||r.set(n,s=uo(()=>r.delete(n))),co(ct,s)}}function De(e,t,n,r,s,o){const i=mn.get(e);if(!i)return;let l=[];if(t==="clear")l=[...i.values()];else if(n==="length"&&B(e)){const c=Number(r);i.forEach((a,f)=>{(f==="length"||!Ze(f)&&f>=c)&&l.push(a)})}else switch(n!==void 0&&l.push(i.get(n)),t){case"add":B(e)?xr(n)&&l.push(i.get("length")):(l.push(i.get(at)),yt(e)&&l.push(i.get(fr)));break;case"delete":B(e)||(l.push(i.get(at)),yt(e)&&l.push(i.get(fr)));break;case"set":yt(e)&&l.push(i.get(at));break}Rr();for(const c of l)c&&ao(c,4);Or()}function zi(e,t){const n=mn.get(e);return n&&n.get(t)}const Xi=wr("__proto__,__v_isRef,__isVue"),fo=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Ze)),es=Yi();function Yi(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=J(this);for(let o=0,i=this.length;o{e[t]=function(...n){et(),Rr();const r=J(this)[t].apply(this,n);return Or(),tt(),r}}),e}function Ji(e){Ze(e)||(e=String(e));const t=J(this);return ve(t,"has",e),t.hasOwnProperty(e)}class ho{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?ul:yo:o?mo:go).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=B(t);if(!s){if(i&&Y(es,n))return Reflect.get(es,n,r);if(n==="hasOwnProperty")return Ji}const l=Reflect.get(t,n,r);return(Ze(n)?fo.has(n):Xi(n))||(s||ve(t,"get",n),o)?l:de(l)?i&&xr(n)?l:l.value:Z(l)?s?Ln(l):On(l):l}}class po extends ho{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];if(!this._isShallow){const c=$t(o);if(!yn(r)&&!$t(r)&&(o=J(o),r=J(r)),!B(t)&&de(o)&&!de(r))return c?!1:(o.value=r,!0)}const i=B(t)&&xr(n)?Number(n)e,Rn=e=>Reflect.getPrototypeOf(e);function Yt(e,t,n=!1,r=!1){e=e.__v_raw;const s=J(e),o=J(t);n||(Je(t,o)&&ve(s,"get",t),ve(s,"get",o));const{has:i}=Rn(s),l=r?Lr:n?Pr:Ht;if(i.call(s,t))return l(e.get(t));if(i.call(s,o))return l(e.get(o));e!==s&&e.get(t)}function Jt(e,t=!1){const n=this.__v_raw,r=J(n),s=J(e);return t||(Je(e,s)&&ve(r,"has",e),ve(r,"has",s)),e===s?n.has(e):n.has(e)||n.has(s)}function Qt(e,t=!1){return e=e.__v_raw,!t&&ve(J(e),"iterate",at),Reflect.get(e,"size",e)}function ts(e){e=J(e);const t=J(this);return Rn(t).has.call(t,e)||(t.add(e),De(t,"add",e,e)),this}function ns(e,t){t=J(t);const n=J(this),{has:r,get:s}=Rn(n);let o=r.call(n,e);o||(e=J(e),o=r.call(n,e));const i=s.call(n,e);return n.set(e,t),o?Je(t,i)&&De(n,"set",e,t):De(n,"add",e,t),this}function rs(e){const t=J(this),{has:n,get:r}=Rn(t);let s=n.call(t,e);s||(e=J(e),s=n.call(t,e)),r&&r.call(t,e);const o=t.delete(e);return s&&De(t,"delete",e,void 0),o}function ss(){const e=J(this),t=e.size!==0,n=e.clear();return t&&De(e,"clear",void 0,void 0),n}function Zt(e,t){return function(r,s){const o=this,i=o.__v_raw,l=J(i),c=t?Lr:e?Pr:Ht;return!e&&ve(l,"iterate",at),i.forEach((a,f)=>r.call(s,c(a),c(f),o))}}function en(e,t,n){return function(...r){const s=this.__v_raw,o=J(s),i=yt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,a=s[e](...r),f=n?Lr:t?Pr:Ht;return!t&&ve(o,"iterate",c?fr:at),{next(){const{value:h,done:m}=a.next();return m?{value:h,done:m}:{value:l?[f(h[0]),f(h[1])]:f(h),done:m}},[Symbol.iterator](){return this}}}}function Be(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function nl(){const e={get(o){return Yt(this,o)},get size(){return Qt(this)},has:Jt,add:ts,set:ns,delete:rs,clear:ss,forEach:Zt(!1,!1)},t={get(o){return Yt(this,o,!1,!0)},get size(){return Qt(this)},has:Jt,add:ts,set:ns,delete:rs,clear:ss,forEach:Zt(!1,!0)},n={get(o){return Yt(this,o,!0)},get size(){return Qt(this,!0)},has(o){return Jt.call(this,o,!0)},add:Be("add"),set:Be("set"),delete:Be("delete"),clear:Be("clear"),forEach:Zt(!0,!1)},r={get(o){return Yt(this,o,!0,!0)},get size(){return Qt(this,!0)},has(o){return Jt.call(this,o,!0)},add:Be("add"),set:Be("set"),delete:Be("delete"),clear:Be("clear"),forEach:Zt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=en(o,!1,!1),n[o]=en(o,!0,!1),t[o]=en(o,!1,!0),r[o]=en(o,!0,!0)}),[e,n,t,r]}const[rl,sl,ol,il]=nl();function Ir(e,t){const n=t?e?il:ol:e?sl:rl;return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(Y(n,s)&&s in r?n:r,s,o)}const ll={get:Ir(!1,!1)},cl={get:Ir(!1,!0)},al={get:Ir(!0,!1)};const go=new WeakMap,mo=new WeakMap,yo=new WeakMap,ul=new WeakMap;function fl(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function dl(e){return e.__v_skip||!Object.isExtensible(e)?0:fl(Pi(e))}function On(e){return $t(e)?e:Mr(e,!1,Zi,ll,go)}function hl(e){return Mr(e,!1,tl,cl,mo)}function Ln(e){return Mr(e,!0,el,al,yo)}function Mr(e,t,n,r,s){if(!Z(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=s.get(e);if(o)return o;const i=dl(e);if(i===0)return e;const l=new Proxy(e,i===2?r:n);return s.set(e,l),l}function Rt(e){return $t(e)?Rt(e.__v_raw):!!(e&&e.__v_isReactive)}function $t(e){return!!(e&&e.__v_isReadonly)}function yn(e){return!!(e&&e.__v_isShallow)}function _o(e){return e?!!e.__v_raw:!1}function J(e){const t=e&&e.__v_raw;return t?J(t):e}function dn(e){return Object.isExtensible(e)&&eo(e,"__v_skip",!0),e}const Ht=e=>Z(e)?On(e):e,Pr=e=>Z(e)?Ln(e):e;class vo{constructor(t,n,r,s){this.getter=t,this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new Ar(()=>t(this._value),()=>Ot(this,this.effect._dirtyLevel===2?2:3)),this.effect.computed=this,this.effect.active=this._cacheable=!s,this.__v_isReadonly=r}get value(){const t=J(this);return(!t._cacheable||t.effect.dirty)&&Je(t._value,t._value=t.effect.run())&&Ot(t,4),Nr(t),t.effect._dirtyLevel>=2&&Ot(t,2),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function pl(e,t,n=!1){let r,s;const o=K(e);return o?(r=e,s=xe):(r=e.get,s=e.set),new vo(r,s,o||!s,n)}function Nr(e){var t;Xe&&ct&&(e=J(e),co(ct,(t=e.dep)!=null?t:e.dep=uo(()=>e.dep=void 0,e instanceof vo?e:void 0)))}function Ot(e,t=4,n,r){e=J(e);const s=e.dep;s&&ao(s,t)}function de(e){return!!(e&&e.__v_isRef===!0)}function se(e){return bo(e,!1)}function Fr(e){return bo(e,!0)}function bo(e,t){return de(e)?e:new gl(e,t)}class gl{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:J(t),this._value=n?t:Ht(t)}get value(){return Nr(this),this._value}set value(t){const n=this.__v_isShallow||yn(t)||$t(t);t=n?t:J(t),Je(t,this._rawValue)&&(this._rawValue,this._rawValue=t,this._value=n?t:Ht(t),Ot(this,4))}}function wo(e){return de(e)?e.value:e}const ml={get:(e,t,n)=>wo(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return de(s)&&!de(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Eo(e){return Rt(e)?e:new Proxy(e,ml)}class yl{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:r}=t(()=>Nr(this),()=>Ot(this));this._get=n,this._set=r}get value(){return this._get()}set value(t){this._set(t)}}function _l(e){return new yl(e)}class vl{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return zi(J(this._object),this._key)}}class bl{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function wl(e,t,n){return de(e)?e:K(e)?new bl(e):Z(e)&&arguments.length>1?El(e,t,n):se(e)}function El(e,t,n){const r=e[t];return de(r)?r:new vl(e,t,n)}/** -* @vue/runtime-core v3.4.31 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function Ye(e,t,n,r){try{return r?e(...r):e()}catch(s){Kt(s,t,n)}}function Se(e,t,n,r){if(K(e)){const s=Ye(e,t,n,r);return s&&Js(s)&&s.catch(o=>{Kt(o,t,n)}),s}if(B(e)){const s=[];for(let o=0;o>>1,s=pe[r],o=Vt(s);oPe&&pe.splice(t,1)}function Tl(e){B(e)?vt.push(...e):(!We||!We.includes(e,e.allowRecurse?it+1:it))&&vt.push(e),xo()}function os(e,t,n=jt?Pe+1:0){for(;nVt(n)-Vt(r));if(vt.length=0,We){We.push(...t);return}for(We=t,it=0;ite.id==null?1/0:e.id,Al=(e,t)=>{const n=Vt(e)-Vt(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function So(e){dr=!1,jt=!0,pe.sort(Al);try{for(Pe=0;Peoe(_)?_.trim():_)),h&&(s=n.map(cr))}let l,c=r[l=un(t)]||r[l=un($e(t))];!c&&o&&(c=r[l=un(ft(t))]),c&&Se(c,e,6,s);const a=r[l+"Once"];if(a){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Se(a,e,6,s)}}function To(e,t,n=!1){const r=t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!K(e)){const c=a=>{const f=To(a,t,!0);f&&(l=!0,le(i,f))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(Z(e)&&r.set(e,null),null):(B(o)?o.forEach(c=>i[c]=null):le(i,o),Z(e)&&r.set(e,i),i)}function Pn(e,t){return!e||!kt(t)?!1:(t=t.slice(2).replace(/Once$/,""),Y(e,t[0].toLowerCase()+t.slice(1))||Y(e,ft(t))||Y(e,t))}let fe=null,Nn=null;function vn(e){const t=fe;return fe=e,Nn=e&&e.type.__scopeId||null,t}function su(e){Nn=e}function ou(){Nn=null}function Ol(e,t=fe,n){if(!t||e._n)return e;const r=(...s)=>{r._d&&ws(-1);const o=vn(t);let i;try{i=e(...s)}finally{vn(o),r._d&&ws(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Kn(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:a,renderCache:f,props:h,data:m,setupState:_,ctx:C,inheritAttrs:L}=e,k=vn(e);let W,V;try{if(n.shapeFlag&4){const y=s||r,M=y;W=Ae(a.call(M,y,f,h,_,m,C)),V=l}else{const y=t;W=Ae(y.length>1?y(h,{attrs:l,slots:i,emit:c}):y(h,null)),V=t.props?l:Ll(l)}}catch(y){Nt.length=0,Kt(y,e,1),W=ie(me)}let p=W;if(V&&L!==!1){const y=Object.keys(V),{shapeFlag:M}=p;y.length&&M&7&&(o&&y.some(Er)&&(V=Il(V,o)),p=Qe(p,V,!1,!0))}return n.dirs&&(p=Qe(p,null,!1,!0),p.dirs=p.dirs?p.dirs.concat(n.dirs):n.dirs),n.transition&&(p.transition=n.transition),W=p,vn(k),W}const Ll=e=>{let t;for(const n in e)(n==="class"||n==="style"||kt(n))&&((t||(t={}))[n]=e[n]);return t},Il=(e,t)=>{const n={};for(const r in e)(!Er(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Ml(e,t,n){const{props:r,children:s,component:o}=e,{props:i,children:l,patchFlag:c}=t,a=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?is(r,i,a):!!i;if(c&8){const f=t.dynamicProps;for(let h=0;he.__isSuspense;function Lo(e,t){t&&t.pendingBranch?B(e)?t.effects.push(...e):t.effects.push(e):Tl(e)}function Fn(e,t,n=ue,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{et();const l=qt(n),c=Se(t,n,e,i);return l(),tt(),c});return r?s.unshift(o):s.push(o),o}}const Ue=e=>(t,n=ue)=>{(!Gt||e==="sp")&&Fn(e,(...r)=>t(...r),n)},Fl=Ue("bm"),xt=Ue("m"),$l=Ue("bu"),Hl=Ue("u"),Io=Ue("bum"),$n=Ue("um"),jl=Ue("sp"),Vl=Ue("rtg"),Dl=Ue("rtc");function Ul(e,t=ue){Fn("ec",e,t)}function cu(e,t){if(fe===null)return e;const n=Vn(fe),r=e.dirs||(e.dirs=[]);for(let s=0;st(i,l,void 0,o));else{const i=Object.keys(e);s=new Array(i.length);for(let l=0,c=i.length;l!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function uu(e){K(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:s=200,timeout:o,suspensible:i=!0,onError:l}=e;let c=null,a,f=0;const h=()=>(f++,c=null,m()),m=()=>{let _;return c||(_=c=t().catch(C=>{if(C=C instanceof Error?C:new Error(String(C)),l)return new Promise((L,k)=>{l(C,()=>L(h()),()=>k(C),f+1)});throw C}).then(C=>_!==c&&c?c:(C&&(C.__esModule||C[Symbol.toStringTag]==="Module")&&(C=C.default),a=C,C)))};return Hr({name:"AsyncComponentWrapper",__asyncLoader:m,get __asyncResolved(){return a},setup(){const _=ue;if(a)return()=>Wn(a,_);const C=V=>{c=null,Kt(V,_,13,!r)};if(i&&_.suspense||Gt)return m().then(V=>()=>Wn(V,_)).catch(V=>(C(V),()=>r?ie(r,{error:V}):null));const L=se(!1),k=se(),W=se(!!s);return s&&setTimeout(()=>{W.value=!1},s),o!=null&&setTimeout(()=>{if(!L.value&&!k.value){const V=new Error(`Async component timed out after ${o}ms.`);C(V),k.value=V}},o),m().then(()=>{L.value=!0,_.parent&&Wt(_.parent.vnode)&&(_.parent.effect.dirty=!0,Mn(_.parent.update))}).catch(V=>{C(V),k.value=V}),()=>{if(L.value&&a)return Wn(a,_);if(k.value&&r)return ie(r,{error:k.value});if(n&&!W.value)return ie(n)}}})}function Wn(e,t){const{ref:n,props:r,children:s,ce:o}=t.vnode,i=ie(e,r,s);return i.ref=n,i.ce=o,delete t.vnode.ce,i}function fu(e,t,n={},r,s){if(fe.isCE||fe.parent&&bt(fe.parent)&&fe.parent.isCE)return t!=="default"&&(n.name=t),ie("slot",n,r&&r());let o=e[t];o&&o._c&&(o._d=!1),Zo();const i=o&&Mo(o(n)),l=ti(_e,{key:n.key||i&&i.key||`_${t}`},i||(r?r():[]),i&&e._===1?64:-2);return!s&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),o&&o._c&&(o._d=!0),l}function Mo(e){return e.some(t=>Cn(t)?!(t.type===me||t.type===_e&&!Mo(t.children)):!0)?e:null}function du(e,t){const n={};for(const r in e)n[/[A-Z]/.test(r)?`on:${r}`:un(r)]=e[r];return n}const hr=e=>e?oi(e)?Vn(e):hr(e.parent):null,Lt=le(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>hr(e.parent),$root:e=>hr(e.root),$emit:e=>e.emit,$options:e=>jr(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,Mn(e.update)}),$nextTick:e=>e.n||(e.n=In.bind(e.proxy)),$watch:e=>fc.bind(e)}),qn=(e,t)=>e!==te&&!e.__isScriptSetup&&Y(e,t),Bl={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:l,appContext:c}=e;let a;if(t[0]!=="$"){const _=i[t];if(_!==void 0)switch(_){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(qn(r,t))return i[t]=1,r[t];if(s!==te&&Y(s,t))return i[t]=2,s[t];if((a=e.propsOptions[0])&&Y(a,t))return i[t]=3,o[t];if(n!==te&&Y(n,t))return i[t]=4,n[t];pr&&(i[t]=0)}}const f=Lt[t];let h,m;if(f)return t==="$attrs"&&ve(e.attrs,"get",""),f(e);if((h=l.__cssModules)&&(h=h[t]))return h;if(n!==te&&Y(n,t))return i[t]=4,n[t];if(m=c.config.globalProperties,Y(m,t))return m[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return qn(s,t)?(s[t]=n,!0):r!==te&&Y(r,t)?(r[t]=n,!0):Y(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,propsOptions:o}},i){let l;return!!n[i]||e!==te&&Y(e,i)||qn(t,i)||(l=o[0])&&Y(l,i)||Y(r,i)||Y(Lt,i)||Y(s.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Y(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function hu(){return kl().slots}function kl(){const e=jn();return e.setupContext||(e.setupContext=li(e))}function cs(e){return B(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let pr=!0;function Kl(e){const t=jr(e),n=e.proxy,r=e.ctx;pr=!1,t.beforeCreate&&as(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:a,created:f,beforeMount:h,mounted:m,beforeUpdate:_,updated:C,activated:L,deactivated:k,beforeDestroy:W,beforeUnmount:V,destroyed:p,unmounted:y,render:M,renderTracked:A,renderTriggered:F,errorCaptured:$,serverPrefetch:I,expose:w,inheritAttrs:N,components:T,directives:G,filters:ne}=t;if(a&&Wl(a,r,null),i)for(const X in i){const j=i[X];K(j)&&(r[X]=j.bind(n))}if(s){const X=s.call(n,n);Z(X)&&(e.data=On(X))}if(pr=!0,o)for(const X in o){const j=o[X],He=K(j)?j.bind(n,n):K(j.get)?j.get.bind(n,n):xe,zt=!K(j)&&K(j.set)?j.set.bind(n):xe,nt=re({get:He,set:zt});Object.defineProperty(r,X,{enumerable:!0,configurable:!0,get:()=>nt.value,set:Le=>nt.value=Le})}if(l)for(const X in l)Po(l[X],r,n,X);if(c){const X=K(c)?c.call(n):c;Reflect.ownKeys(X).forEach(j=>{Jl(j,X[j])})}f&&as(f,e,"c");function D(X,j){B(j)?j.forEach(He=>X(He.bind(n))):j&&X(j.bind(n))}if(D(Fl,h),D(xt,m),D($l,_),D(Hl,C),D(dc,L),D(hc,k),D(Ul,$),D(Dl,A),D(Vl,F),D(Io,V),D($n,y),D(jl,I),B(w))if(w.length){const X=e.exposed||(e.exposed={});w.forEach(j=>{Object.defineProperty(X,j,{get:()=>n[j],set:He=>n[j]=He})})}else e.exposed||(e.exposed={});M&&e.render===xe&&(e.render=M),N!=null&&(e.inheritAttrs=N),T&&(e.components=T),G&&(e.directives=G)}function Wl(e,t,n=xe){B(e)&&(e=gr(e));for(const r in e){const s=e[r];let o;Z(s)?"default"in s?o=wt(s.from||r,s.default,!0):o=wt(s.from||r):o=wt(s),de(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function as(e,t,n){Se(B(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Po(e,t,n,r){const s=r.includes(".")?qo(n,r):()=>n[r];if(oe(e)){const o=t[e];K(o)&&Ne(s,o)}else if(K(e))Ne(s,e.bind(n));else if(Z(e))if(B(e))e.forEach(o=>Po(o,t,n,r));else{const o=K(e.handler)?e.handler.bind(n):t[e.handler];K(o)&&Ne(s,o,e)}}function jr(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(a=>bn(c,a,i,!0)),bn(c,t,i)),Z(t)&&o.set(t,c),c}function bn(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&bn(e,o,n,!0),s&&s.forEach(i=>bn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=ql[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const ql={data:us,props:fs,emits:fs,methods:At,computed:At,beforeCreate:ge,created:ge,beforeMount:ge,mounted:ge,beforeUpdate:ge,updated:ge,beforeDestroy:ge,beforeUnmount:ge,destroyed:ge,unmounted:ge,activated:ge,deactivated:ge,errorCaptured:ge,serverPrefetch:ge,components:At,directives:At,watch:zl,provide:us,inject:Gl};function us(e,t){return t?e?function(){return le(K(e)?e.call(this,this):e,K(t)?t.call(this,this):t)}:t:e}function Gl(e,t){return At(gr(e),gr(t))}function gr(e){if(B(e)){const t={};for(let n=0;n1)return n&&K(t)?t.call(r&&r.proxy):t}}const Fo={},$o=()=>Object.create(Fo),Ho=e=>Object.getPrototypeOf(e)===Fo;function Ql(e,t,n,r=!1){const s={},o=$o();e.propsDefaults=Object.create(null),jo(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:hl(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Zl(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=J(s),[c]=e.propsOptions;let a=!1;if((r||i>0)&&!(i&16)){if(i&8){const f=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[m,_]=Vo(h,t,!0);le(i,m),_&&l.push(..._)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!o&&!c)return Z(e)&&r.set(e,mt),mt;if(B(o))for(let f=0;f-1,_[1]=L<0||C-1||Y(_,"default"))&&l.push(h)}}}const a=[i,l];return Z(e)&&r.set(e,a),a}function ds(e){return e[0]!=="$"&&!_t(e)}function hs(e){return e===null?"null":typeof e=="function"?e.name||"":typeof e=="object"&&e.constructor&&e.constructor.name||""}function ps(e,t){return hs(e)===hs(t)}function gs(e,t){return B(t)?t.findIndex(n=>ps(n,e)):K(t)&&ps(t,e)?0:-1}const Do=e=>e[0]==="_"||e==="$stable",Vr=e=>B(e)?e.map(Ae):[Ae(e)],ec=(e,t,n)=>{if(t._n)return t;const r=Ol((...s)=>Vr(t(...s)),n);return r._c=!1,r},Uo=(e,t,n)=>{const r=e._ctx;for(const s in e){if(Do(s))continue;const o=e[s];if(K(o))t[s]=ec(s,o,r);else if(o!=null){const i=Vr(o);t[s]=()=>i}}},Bo=(e,t)=>{const n=Vr(t);e.slots.default=()=>n},tc=(e,t)=>{const n=e.slots=$o();if(e.vnode.shapeFlag&32){const r=t._;r?(le(n,t),eo(n,"_",r,!0)):Uo(t,n)}else t&&Bo(e,t)},nc=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=te;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:(le(s,t),!n&&l===1&&delete s._):(o=!t.$stable,Uo(t,s)),i=t}else t&&(Bo(e,t),i={default:1});if(o)for(const l in s)!Do(l)&&i[l]==null&&delete s[l]};function wn(e,t,n,r,s=!1){if(B(e)){e.forEach((m,_)=>wn(m,t&&(B(t)?t[_]:t),n,r,s));return}if(bt(r)&&!s)return;const o=r.shapeFlag&4?Vn(r.component):r.el,i=s?null:o,{i:l,r:c}=e,a=t&&t.r,f=l.refs===te?l.refs={}:l.refs,h=l.setupState;if(a!=null&&a!==c&&(oe(a)?(f[a]=null,Y(h,a)&&(h[a]=null)):de(a)&&(a.value=null)),K(c))Ye(c,l,12,[i,f]);else{const m=oe(c),_=de(c);if(m||_){const C=()=>{if(e.f){const L=m?Y(h,c)?h[c]:f[c]:c.value;s?B(L)&&Cr(L,o):B(L)?L.includes(o)||L.push(o):m?(f[c]=[o],Y(h,c)&&(h[c]=f[c])):(c.value=[o],e.k&&(f[e.k]=c.value))}else m?(f[c]=i,Y(h,c)&&(h[c]=i)):_&&(c.value=i,e.k&&(f[e.k]=i))};i?(C.id=-1,ye(C,n)):C()}}}let ms=!1;const pt=()=>{ms||(console.error("Hydration completed but contains mismatches."),ms=!0)},rc=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",sc=e=>e.namespaceURI.includes("MathML"),tn=e=>{if(rc(e))return"svg";if(sc(e))return"mathml"},nn=e=>e.nodeType===8;function oc(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:o,parentNode:i,remove:l,insert:c,createComment:a}}=e,f=(p,y)=>{if(!y.hasChildNodes()){n(null,p,y),_n(),y._vnode=p;return}h(y.firstChild,p,null,null,null),_n(),y._vnode=p},h=(p,y,M,A,F,$=!1)=>{$=$||!!y.dynamicChildren;const I=nn(p)&&p.data==="[",w=()=>L(p,y,M,A,F,I),{type:N,ref:T,shapeFlag:G,patchFlag:ne}=y;let ce=p.nodeType;y.el=p,ne===-2&&($=!1,y.dynamicChildren=null);let D=null;switch(N){case Et:ce!==3?y.children===""?(c(y.el=s(""),i(p),p),D=p):D=w():(p.data!==y.children&&(pt(),p.data=y.children),D=o(p));break;case me:V(p)?(D=o(p),W(y.el=p.content.firstChild,p,M)):ce!==8||I?D=w():D=o(p);break;case Pt:if(I&&(p=o(p),ce=p.nodeType),ce===1||ce===3){D=p;const X=!y.children.length;for(let j=0;j{$=$||!!y.dynamicChildren;const{type:I,props:w,patchFlag:N,shapeFlag:T,dirs:G,transition:ne}=y,ce=I==="input"||I==="option";if(ce||N!==-1){G&&Me(y,null,M,"created");let D=!1;if(V(p)){D=Ko(A,ne)&&M&&M.vnode.props&&M.vnode.props.appear;const j=p.content.firstChild;D&&ne.beforeEnter(j),W(j,p,M),y.el=p=j}if(T&16&&!(w&&(w.innerHTML||w.textContent))){let j=_(p.firstChild,y,p,M,A,F,$);for(;j;){pt();const He=j;j=j.nextSibling,l(He)}}else T&8&&p.textContent!==y.children&&(pt(),p.textContent=y.children);if(w)if(ce||!$||N&48)for(const j in w)(ce&&(j.endsWith("value")||j==="indeterminate")||kt(j)&&!_t(j)||j[0]===".")&&r(p,j,null,w[j],void 0,void 0,M);else w.onClick&&r(p,"onClick",null,w.onClick,void 0,void 0,M);let X;(X=w&&w.onVnodeBeforeMount)&&Ce(X,M,y),G&&Me(y,null,M,"beforeMount"),((X=w&&w.onVnodeMounted)||G||D)&&Lo(()=>{X&&Ce(X,M,y),D&&ne.enter(p),G&&Me(y,null,M,"mounted")},A)}return p.nextSibling},_=(p,y,M,A,F,$,I)=>{I=I||!!y.dynamicChildren;const w=y.children,N=w.length;for(let T=0;T{const{slotScopeIds:I}=y;I&&(F=F?F.concat(I):I);const w=i(p),N=_(o(p),y,w,M,A,F,$);return N&&nn(N)&&N.data==="]"?o(y.anchor=N):(pt(),c(y.anchor=a("]"),w,N),N)},L=(p,y,M,A,F,$)=>{if(pt(),y.el=null,$){const N=k(p);for(;;){const T=o(p);if(T&&T!==N)l(T);else break}}const I=o(p),w=i(p);return l(p),n(null,y,w,I,M,A,tn(w),F),I},k=(p,y="[",M="]")=>{let A=0;for(;p;)if(p=o(p),p&&nn(p)&&(p.data===y&&A++,p.data===M)){if(A===0)return o(p);A--}return p},W=(p,y,M)=>{const A=y.parentNode;A&&A.replaceChild(p,y);let F=M;for(;F;)F.vnode.el===y&&(F.vnode.el=F.subTree.el=p),F=F.parent},V=p=>p.nodeType===1&&p.tagName.toLowerCase()==="template";return[f,h]}const ye=Lo;function ic(e){return ko(e)}function lc(e){return ko(e,oc)}function ko(e,t){const n=to();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:a,setElementText:f,parentNode:h,nextSibling:m,setScopeId:_=xe,insertStaticContent:C}=e,L=(u,d,g,v=null,b=null,S=null,O=void 0,x=null,R=!!d.dynamicChildren)=>{if(u===d)return;u&&!lt(u,d)&&(v=Xt(u),Le(u,b,S,!0),u=null),d.patchFlag===-2&&(R=!1,d.dynamicChildren=null);const{type:E,ref:P,shapeFlag:U}=d;switch(E){case Et:k(u,d,g,v);break;case me:W(u,d,g,v);break;case Pt:u==null&&V(d,g,v,O);break;case _e:T(u,d,g,v,b,S,O,x,R);break;default:U&1?M(u,d,g,v,b,S,O,x,R):U&6?G(u,d,g,v,b,S,O,x,R):(U&64||U&128)&&E.process(u,d,g,v,b,S,O,x,R,dt)}P!=null&&b&&wn(P,u&&u.ref,S,d||u,!d)},k=(u,d,g,v)=>{if(u==null)r(d.el=l(d.children),g,v);else{const b=d.el=u.el;d.children!==u.children&&a(b,d.children)}},W=(u,d,g,v)=>{u==null?r(d.el=c(d.children||""),g,v):d.el=u.el},V=(u,d,g,v)=>{[u.el,u.anchor]=C(u.children,d,g,v,u.el,u.anchor)},p=({el:u,anchor:d},g,v)=>{let b;for(;u&&u!==d;)b=m(u),r(u,g,v),u=b;r(d,g,v)},y=({el:u,anchor:d})=>{let g;for(;u&&u!==d;)g=m(u),s(u),u=g;s(d)},M=(u,d,g,v,b,S,O,x,R)=>{d.type==="svg"?O="svg":d.type==="math"&&(O="mathml"),u==null?A(d,g,v,b,S,O,x,R):I(u,d,b,S,O,x,R)},A=(u,d,g,v,b,S,O,x)=>{let R,E;const{props:P,shapeFlag:U,transition:H,dirs:q}=u;if(R=u.el=i(u.type,S,P&&P.is,P),U&8?f(R,u.children):U&16&&$(u.children,R,null,v,b,Gn(u,S),O,x),q&&Me(u,null,v,"created"),F(R,u,u.scopeId,O,v),P){for(const ee in P)ee!=="value"&&!_t(ee)&&o(R,ee,null,P[ee],S,u.children,v,b,je);"value"in P&&o(R,"value",null,P.value,S),(E=P.onVnodeBeforeMount)&&Ce(E,v,u)}q&&Me(u,null,v,"beforeMount");const z=Ko(b,H);z&&H.beforeEnter(R),r(R,d,g),((E=P&&P.onVnodeMounted)||z||q)&&ye(()=>{E&&Ce(E,v,u),z&&H.enter(R),q&&Me(u,null,v,"mounted")},b)},F=(u,d,g,v,b)=>{if(g&&_(u,g),v)for(let S=0;S{for(let E=R;E{const x=d.el=u.el;let{patchFlag:R,dynamicChildren:E,dirs:P}=d;R|=u.patchFlag&16;const U=u.props||te,H=d.props||te;let q;if(g&&rt(g,!1),(q=H.onVnodeBeforeUpdate)&&Ce(q,g,d,u),P&&Me(d,u,g,"beforeUpdate"),g&&rt(g,!0),E?w(u.dynamicChildren,E,x,g,v,Gn(d,b),S):O||j(u,d,x,null,g,v,Gn(d,b),S,!1),R>0){if(R&16)N(x,d,U,H,g,v,b);else if(R&2&&U.class!==H.class&&o(x,"class",null,H.class,b),R&4&&o(x,"style",U.style,H.style,b),R&8){const z=d.dynamicProps;for(let ee=0;ee{q&&Ce(q,g,d,u),P&&Me(d,u,g,"updated")},v)},w=(u,d,g,v,b,S,O)=>{for(let x=0;x{if(g!==v){if(g!==te)for(const x in g)!_t(x)&&!(x in v)&&o(u,x,g[x],null,O,d.children,b,S,je);for(const x in v){if(_t(x))continue;const R=v[x],E=g[x];R!==E&&x!=="value"&&o(u,x,E,R,O,d.children,b,S,je)}"value"in v&&o(u,"value",g.value,v.value,O)}},T=(u,d,g,v,b,S,O,x,R)=>{const E=d.el=u?u.el:l(""),P=d.anchor=u?u.anchor:l("");let{patchFlag:U,dynamicChildren:H,slotScopeIds:q}=d;q&&(x=x?x.concat(q):q),u==null?(r(E,g,v),r(P,g,v),$(d.children||[],g,P,b,S,O,x,R)):U>0&&U&64&&H&&u.dynamicChildren?(w(u.dynamicChildren,H,g,b,S,O,x),(d.key!=null||b&&d===b.subTree)&&Dr(u,d,!0)):j(u,d,g,P,b,S,O,x,R)},G=(u,d,g,v,b,S,O,x,R)=>{d.slotScopeIds=x,u==null?d.shapeFlag&512?b.ctx.activate(d,g,v,O,R):ne(d,g,v,b,S,O,R):ce(u,d,R)},ne=(u,d,g,v,b,S,O)=>{const x=u.component=Ac(u,v,b);if(Wt(u)&&(x.ctx.renderer=dt),Rc(x),x.asyncDep){if(b&&b.registerDep(x,D,O),!u.el){const R=x.subTree=ie(me);W(null,R,d,g)}}else D(x,u,d,g,b,S,O)},ce=(u,d,g)=>{const v=d.component=u.component;if(Ml(u,d,g))if(v.asyncDep&&!v.asyncResolved){X(v,d,g);return}else v.next=d,Sl(v.update),v.effect.dirty=!0,v.update();else d.el=u.el,v.vnode=d},D=(u,d,g,v,b,S,O)=>{const x=()=>{if(u.isMounted){let{next:P,bu:U,u:H,parent:q,vnode:z}=u;{const ht=Wo(u);if(ht){P&&(P.el=z.el,X(u,P,O)),ht.asyncDep.then(()=>{u.isUnmounted||x()});return}}let ee=P,Q;rt(u,!1),P?(P.el=z.el,X(u,P,O)):P=z,U&&fn(U),(Q=P.props&&P.props.onVnodeBeforeUpdate)&&Ce(Q,q,P,z),rt(u,!0);const ae=Kn(u),Te=u.subTree;u.subTree=ae,L(Te,ae,h(Te.el),Xt(Te),u,b,S),P.el=ae.el,ee===null&&Pl(u,ae.el),H&&ye(H,b),(Q=P.props&&P.props.onVnodeUpdated)&&ye(()=>Ce(Q,q,P,z),b)}else{let P;const{el:U,props:H}=d,{bm:q,m:z,parent:ee}=u,Q=bt(d);if(rt(u,!1),q&&fn(q),!Q&&(P=H&&H.onVnodeBeforeMount)&&Ce(P,ee,d),rt(u,!0),U&&Bn){const ae=()=>{u.subTree=Kn(u),Bn(U,u.subTree,u,b,null)};Q?d.type.__asyncLoader().then(()=>!u.isUnmounted&&ae()):ae()}else{const ae=u.subTree=Kn(u);L(null,ae,g,v,u,b,S),d.el=ae.el}if(z&&ye(z,b),!Q&&(P=H&&H.onVnodeMounted)){const ae=d;ye(()=>Ce(P,ee,ae),b)}(d.shapeFlag&256||ee&&bt(ee.vnode)&&ee.vnode.shapeFlag&256)&&u.a&&ye(u.a,b),u.isMounted=!0,d=g=v=null}},R=u.effect=new Ar(x,xe,()=>Mn(E),u.scope),E=u.update=()=>{R.dirty&&R.run()};E.id=u.uid,rt(u,!0),E()},X=(u,d,g)=>{d.component=u;const v=u.vnode.props;u.vnode=d,u.next=null,Zl(u,d.props,v,g),nc(u,d.children,g),et(),os(u),tt()},j=(u,d,g,v,b,S,O,x,R=!1)=>{const E=u&&u.children,P=u?u.shapeFlag:0,U=d.children,{patchFlag:H,shapeFlag:q}=d;if(H>0){if(H&128){zt(E,U,g,v,b,S,O,x,R);return}else if(H&256){He(E,U,g,v,b,S,O,x,R);return}}q&8?(P&16&&je(E,b,S),U!==E&&f(g,U)):P&16?q&16?zt(E,U,g,v,b,S,O,x,R):je(E,b,S,!0):(P&8&&f(g,""),q&16&&$(U,g,v,b,S,O,x,R))},He=(u,d,g,v,b,S,O,x,R)=>{u=u||mt,d=d||mt;const E=u.length,P=d.length,U=Math.min(E,P);let H;for(H=0;HP?je(u,b,S,!0,!1,U):$(d,g,v,b,S,O,x,R,U)},zt=(u,d,g,v,b,S,O,x,R)=>{let E=0;const P=d.length;let U=u.length-1,H=P-1;for(;E<=U&&E<=H;){const q=u[E],z=d[E]=R?Ge(d[E]):Ae(d[E]);if(lt(q,z))L(q,z,g,null,b,S,O,x,R);else break;E++}for(;E<=U&&E<=H;){const q=u[U],z=d[H]=R?Ge(d[H]):Ae(d[H]);if(lt(q,z))L(q,z,g,null,b,S,O,x,R);else break;U--,H--}if(E>U){if(E<=H){const q=H+1,z=qH)for(;E<=U;)Le(u[E],b,S,!0),E++;else{const q=E,z=E,ee=new Map;for(E=z;E<=H;E++){const be=d[E]=R?Ge(d[E]):Ae(d[E]);be.key!=null&&ee.set(be.key,E)}let Q,ae=0;const Te=H-z+1;let ht=!1,zr=0;const St=new Array(Te);for(E=0;E=Te){Le(be,b,S,!0);continue}let Ie;if(be.key!=null)Ie=ee.get(be.key);else for(Q=z;Q<=H;Q++)if(St[Q-z]===0&<(be,d[Q])){Ie=Q;break}Ie===void 0?Le(be,b,S,!0):(St[Ie-z]=E+1,Ie>=zr?zr=Ie:ht=!0,L(be,d[Ie],g,null,b,S,O,x,R),ae++)}const Xr=ht?cc(St):mt;for(Q=Xr.length-1,E=Te-1;E>=0;E--){const be=z+E,Ie=d[be],Yr=be+1{const{el:S,type:O,transition:x,children:R,shapeFlag:E}=u;if(E&6){nt(u.component.subTree,d,g,v);return}if(E&128){u.suspense.move(d,g,v);return}if(E&64){O.move(u,d,g,dt);return}if(O===_e){r(S,d,g);for(let U=0;Ux.enter(S),b);else{const{leave:U,delayLeave:H,afterLeave:q}=x,z=()=>r(S,d,g),ee=()=>{U(S,()=>{z(),q&&q()})};H?H(S,z,ee):ee()}else r(S,d,g)},Le=(u,d,g,v=!1,b=!1)=>{const{type:S,props:O,ref:x,children:R,dynamicChildren:E,shapeFlag:P,patchFlag:U,dirs:H,memoIndex:q}=u;if(U===-2&&(b=!1),x!=null&&wn(x,null,g,u,!0),q!=null&&(d.renderCache[q]=void 0),P&256){d.ctx.deactivate(u);return}const z=P&1&&H,ee=!bt(u);let Q;if(ee&&(Q=O&&O.onVnodeBeforeUnmount)&&Ce(Q,d,u),P&6)Li(u.component,g,v);else{if(P&128){u.suspense.unmount(g,v);return}z&&Me(u,null,d,"beforeUnmount"),P&64?u.type.remove(u,d,g,dt,v):E&&(S!==_e||U>0&&U&64)?je(E,d,g,!1,!0):(S===_e&&U&384||!b&&P&16)&&je(R,d,g),v&&qr(u)}(ee&&(Q=O&&O.onVnodeUnmounted)||z)&&ye(()=>{Q&&Ce(Q,d,u),z&&Me(u,null,d,"unmounted")},g)},qr=u=>{const{type:d,el:g,anchor:v,transition:b}=u;if(d===_e){Oi(g,v);return}if(d===Pt){y(u);return}const S=()=>{s(g),b&&!b.persisted&&b.afterLeave&&b.afterLeave()};if(u.shapeFlag&1&&b&&!b.persisted){const{leave:O,delayLeave:x}=b,R=()=>O(g,S);x?x(u.el,S,R):R()}else S()},Oi=(u,d)=>{let g;for(;u!==d;)g=m(u),s(u),u=g;s(d)},Li=(u,d,g)=>{const{bum:v,scope:b,update:S,subTree:O,um:x,m:R,a:E}=u;ys(R),ys(E),v&&fn(v),b.stop(),S&&(S.active=!1,Le(O,u,d,g)),x&&ye(x,d),ye(()=>{u.isUnmounted=!0},d),d&&d.pendingBranch&&!d.isUnmounted&&u.asyncDep&&!u.asyncResolved&&u.suspenseId===d.pendingId&&(d.deps--,d.deps===0&&d.resolve())},je=(u,d,g,v=!1,b=!1,S=0)=>{for(let O=S;Ou.shapeFlag&6?Xt(u.component.subTree):u.shapeFlag&128?u.suspense.next():m(u.anchor||u.el);let Dn=!1;const Gr=(u,d,g)=>{u==null?d._vnode&&Le(d._vnode,null,null,!0):L(d._vnode||null,u,d,null,null,null,g),Dn||(Dn=!0,os(),_n(),Dn=!1),d._vnode=u},dt={p:L,um:Le,m:nt,r:qr,mt:ne,mc:$,pc:j,pbc:w,n:Xt,o:e};let Un,Bn;return t&&([Un,Bn]=t(dt)),{render:Gr,hydrate:Un,createApp:Yl(Gr,Un)}}function Gn({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function rt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Ko(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Dr(e,t,n=!1){const r=e.children,s=t.children;if(B(r)&&B(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Wo(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Wo(t)}function ys(e){if(e)for(let t=0;twt(ac);function Ur(e,t){return Hn(e,null,t)}function pu(e,t){return Hn(e,null,{flush:"post"})}const rn={};function Ne(e,t,n){return Hn(e,t,n)}function Hn(e,t,{immediate:n,deep:r,flush:s,once:o,onTrack:i,onTrigger:l}=te){if(t&&o){const A=t;t=(...F)=>{A(...F),M()}}const c=ue,a=A=>r===!0?A:ze(A,r===!1?1:void 0);let f,h=!1,m=!1;if(de(e)?(f=()=>e.value,h=yn(e)):Rt(e)?(f=()=>a(e),h=!0):B(e)?(m=!0,h=e.some(A=>Rt(A)||yn(A)),f=()=>e.map(A=>{if(de(A))return A.value;if(Rt(A))return a(A);if(K(A))return Ye(A,c,2)})):K(e)?t?f=()=>Ye(e,c,2):f=()=>(_&&_(),Se(e,c,3,[C])):f=xe,t&&r){const A=f;f=()=>ze(A())}let _,C=A=>{_=p.onStop=()=>{Ye(A,c,4),_=p.onStop=void 0}},L;if(Gt)if(C=xe,t?n&&Se(t,c,3,[f(),m?[]:void 0,C]):f(),s==="sync"){const A=uc();L=A.__watcherHandles||(A.__watcherHandles=[])}else return xe;let k=m?new Array(e.length).fill(rn):rn;const W=()=>{if(!(!p.active||!p.dirty))if(t){const A=p.run();(r||h||(m?A.some((F,$)=>Je(F,k[$])):Je(A,k)))&&(_&&_(),Se(t,c,3,[A,k===rn?void 0:m&&k[0]===rn?[]:k,C]),k=A)}else p.run()};W.allowRecurse=!!t;let V;s==="sync"?V=W:s==="post"?V=()=>ye(W,c&&c.suspense):(W.pre=!0,c&&(W.id=c.uid),V=()=>Mn(W));const p=new Ar(f,xe,V),y=oo(),M=()=>{p.stop(),y&&Cr(y.effects,p)};return t?n?W():k=p.run():s==="post"?ye(p.run.bind(p),c&&c.suspense):p.run(),L&&L.push(M),M}function fc(e,t,n){const r=this.proxy,s=oe(e)?e.includes(".")?qo(r,e):()=>r[e]:e.bind(r,r);let o;K(t)?o=t:(o=t.handler,n=t);const i=qt(this),l=Hn(s,o.bind(r),n);return i(),l}function qo(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;s{ze(r,t,n)});else if(Zs(e)){for(const r in e)ze(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&ze(e[r],t,n)}return e}const Wt=e=>e.type.__isKeepAlive;function dc(e,t){Go(e,"a",t)}function hc(e,t){Go(e,"da",t)}function Go(e,t,n=ue){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Fn(t,r,n),n){let s=n.parent;for(;s&&s.parent;)Wt(s.parent.vnode)&&pc(r,t,n,s),s=s.parent}}function pc(e,t,n,r){const s=Fn(t,e,r,!0);$n(()=>{Cr(r[t],s)},n)}const qe=Symbol("_leaveCb"),sn=Symbol("_enterCb");function gc(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return xt(()=>{e.isMounted=!0}),Io(()=>{e.isUnmounting=!0}),e}const Ee=[Function,Array],zo={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Ee,onEnter:Ee,onAfterEnter:Ee,onEnterCancelled:Ee,onBeforeLeave:Ee,onLeave:Ee,onAfterLeave:Ee,onLeaveCancelled:Ee,onBeforeAppear:Ee,onAppear:Ee,onAfterAppear:Ee,onAppearCancelled:Ee},Xo=e=>{const t=e.subTree;return t.component?Xo(t.component):t},mc={name:"BaseTransition",props:zo,setup(e,{slots:t}){const n=jn(),r=gc();return()=>{const s=t.default&&Jo(t.default(),!0);if(!s||!s.length)return;let o=s[0];if(s.length>1){for(const m of s)if(m.type!==me){o=m;break}}const i=J(e),{mode:l}=i;if(r.isLeaving)return zn(o);const c=_s(o);if(!c)return zn(o);let a=yr(c,i,r,n,m=>a=m);En(c,a);const f=n.subTree,h=f&&_s(f);if(h&&h.type!==me&&!lt(c,h)&&Xo(n).type!==me){const m=yr(h,i,r,n);if(En(h,m),l==="out-in"&&c.type!==me)return r.isLeaving=!0,m.afterLeave=()=>{r.isLeaving=!1,n.update.active!==!1&&(n.effect.dirty=!0,n.update())},zn(o);l==="in-out"&&c.type!==me&&(m.delayLeave=(_,C,L)=>{const k=Yo(r,h);k[String(h.key)]=h,_[qe]=()=>{C(),_[qe]=void 0,delete a.delayedLeave},a.delayedLeave=L})}return o}}},yc=mc;function Yo(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function yr(e,t,n,r,s){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:c,onEnter:a,onAfterEnter:f,onEnterCancelled:h,onBeforeLeave:m,onLeave:_,onAfterLeave:C,onLeaveCancelled:L,onBeforeAppear:k,onAppear:W,onAfterAppear:V,onAppearCancelled:p}=t,y=String(e.key),M=Yo(n,e),A=(I,w)=>{I&&Se(I,r,9,w)},F=(I,w)=>{const N=w[1];A(I,w),B(I)?I.every(T=>T.length<=1)&&N():I.length<=1&&N()},$={mode:i,persisted:l,beforeEnter(I){let w=c;if(!n.isMounted)if(o)w=k||c;else return;I[qe]&&I[qe](!0);const N=M[y];N&<(e,N)&&N.el[qe]&&N.el[qe](),A(w,[I])},enter(I){let w=a,N=f,T=h;if(!n.isMounted)if(o)w=W||a,N=V||f,T=p||h;else return;let G=!1;const ne=I[sn]=ce=>{G||(G=!0,ce?A(T,[I]):A(N,[I]),$.delayedLeave&&$.delayedLeave(),I[sn]=void 0)};w?F(w,[I,ne]):ne()},leave(I,w){const N=String(e.key);if(I[sn]&&I[sn](!0),n.isUnmounting)return w();A(m,[I]);let T=!1;const G=I[qe]=ne=>{T||(T=!0,w(),ne?A(L,[I]):A(C,[I]),I[qe]=void 0,M[N]===e&&delete M[N])};M[N]=e,_?F(_,[I,G]):G()},clone(I){const w=yr(I,t,n,r,s);return s&&s(w),w}};return $}function zn(e){if(Wt(e))return e=Qe(e),e.children=null,e}function _s(e){if(!Wt(e))return e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&K(n.default))return n.default()}}function En(e,t){e.shapeFlag&6&&e.component?En(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Jo(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;oe.__isTeleport,Mt=e=>e&&(e.disabled||e.disabled===""),vs=e=>typeof SVGElement<"u"&&e instanceof SVGElement,bs=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,_r=(e,t)=>{const n=e&&e.to;return oe(n)?t?t(n):null:n},vc={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,a){const{mc:f,pc:h,pbc:m,o:{insert:_,querySelector:C,createText:L,createComment:k}}=a,W=Mt(t.props);let{shapeFlag:V,children:p,dynamicChildren:y}=t;if(e==null){const M=t.el=L(""),A=t.anchor=L("");_(M,n,r),_(A,n,r);const F=t.target=_r(t.props,C),$=t.targetAnchor=L("");F&&(_($,F),i==="svg"||vs(F)?i="svg":(i==="mathml"||bs(F))&&(i="mathml"));const I=(w,N)=>{V&16&&f(p,w,N,s,o,i,l,c)};W?I(n,A):F&&I(F,$)}else{t.el=e.el;const M=t.anchor=e.anchor,A=t.target=e.target,F=t.targetAnchor=e.targetAnchor,$=Mt(e.props),I=$?n:A,w=$?M:F;if(i==="svg"||vs(A)?i="svg":(i==="mathml"||bs(A))&&(i="mathml"),y?(m(e.dynamicChildren,y,I,s,o,i,l),Dr(e,t,!0)):c||h(e,t,I,w,s,o,i,l,!1),W)$?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):on(t,n,M,a,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const N=t.target=_r(t.props,C);N&&on(t,N,null,a,0)}else $&&on(t,A,F,a,1)}Qo(t)},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetAnchor:a,target:f,props:h}=e;if(f&&s(a),o&&s(c),i&16){const m=o||!Mt(h);for(let _=0;_0?Re||mt:null,wc(),Dt>0&&Re&&Re.push(e),e}function mu(e,t,n,r,s,o){return ei(ri(e,t,n,r,s,o,!0))}function ti(e,t,n,r,s){return ei(ie(e,t,n,r,s,!0))}function Cn(e){return e?e.__v_isVNode===!0:!1}function lt(e,t){return e.type===t.type&&e.key===t.key}const ni=({key:e})=>e??null,hn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?oe(e)||de(e)||K(e)?{i:fe,r:e,k:t,f:!!n}:e:null);function ri(e,t=null,n=null,r=0,s=null,o=e===_e?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ni(t),ref:t&&hn(t),scopeId:Nn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:fe};return l?(Br(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=oe(n)?8:16),Dt>0&&!i&&Re&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Re.push(c),c}const ie=Ec;function Ec(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===Ro)&&(e=me),Cn(e)){const l=Qe(e,t,!0);return n&&Br(l,n),Dt>0&&!o&&Re&&(l.shapeFlag&6?Re[Re.indexOf(e)]=l:Re.push(l)),l.patchFlag=-2,l}if(Mc(e)&&(e=e.__vccOpts),t){t=Cc(t);let{class:l,style:c}=t;l&&!oe(l)&&(t.class=Tr(l)),Z(c)&&(_o(c)&&!B(c)&&(c=le({},c)),t.style=Sr(c))}const i=oe(e)?1:Nl(e)?128:_c(e)?64:Z(e)?4:K(e)?2:0;return ri(e,t,n,r,s,i,o,!0)}function Cc(e){return e?_o(e)||Ho(e)?le({},e):e:null}function Qe(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,a=t?xc(s||{},t):s,f={__v_isVNode:!0,__v_skip:!0,type:e.type,props:a,key:a&&ni(a),ref:t&&t.ref?n&&o?B(o)?o.concat(hn(t)):[o,hn(t)]:hn(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==_e?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Qe(e.ssContent),ssFallback:e.ssFallback&&Qe(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&En(f,c.clone(f)),f}function si(e=" ",t=0){return ie(Et,null,e,t)}function yu(e,t){const n=ie(Pt,null,e);return n.staticCount=t,n}function _u(e="",t=!1){return t?(Zo(),ti(me,null,e)):ie(me,null,e)}function Ae(e){return e==null||typeof e=="boolean"?ie(me):B(e)?ie(_e,null,e.slice()):typeof e=="object"?Ge(e):ie(Et,null,String(e))}function Ge(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Qe(e)}function Br(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(B(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Br(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Ho(t)?t._ctx=fe:s===3&&fe&&(fe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else K(t)?(t={default:t,_ctx:fe},n=32):(t=String(t),r&64?(n=16,t=[si(t)]):n=8);e.children=t,e.shapeFlag|=n}function xc(...e){const t={};for(let n=0;nue||fe;let xn,vr;{const e=to(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};xn=t("__VUE_INSTANCE_SETTERS__",n=>ue=n),vr=t("__VUE_SSR_SETTERS__",n=>Gt=n)}const qt=e=>{const t=ue;return xn(e),e.scope.on(),()=>{e.scope.off(),xn(t)}},Es=()=>{ue&&ue.scope.off(),xn(null)};function oi(e){return e.vnode.shapeFlag&4}let Gt=!1;function Rc(e,t=!1){t&&vr(t);const{props:n,children:r}=e.vnode,s=oi(e);Ql(e,n,s,t),tc(e,r);const o=s?Oc(e,t):void 0;return t&&vr(!1),o}function Oc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Bl);const{setup:r}=n;if(r){const s=e.setupContext=r.length>1?li(e):null,o=qt(e);et();const i=Ye(r,e,0,[e.props,s]);if(tt(),o(),Js(i)){if(i.then(Es,Es),t)return i.then(l=>{Cs(e,l,t)}).catch(l=>{Kt(l,e,0)});e.asyncDep=i}else Cs(e,i,t)}else ii(e,t)}function Cs(e,t,n){K(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Z(t)&&(e.setupState=Eo(t)),ii(e,n)}let xs;function ii(e,t,n){const r=e.type;if(!e.render){if(!t&&xs&&!r.render){const s=r.template||jr(e).template;if(s){const{isCustomElement:o,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:c}=r,a=le(le({isCustomElement:o,delimiters:l},i),c);r.render=xs(s,a)}}e.render=r.render||xe}{const s=qt(e);et();try{Kl(e)}finally{tt(),s()}}}const Lc={get(e,t){return ve(e,"get",""),e[t]}};function li(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Lc),slots:e.slots,emit:e.emit,expose:t}}function Vn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Eo(dn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Lt)return Lt[n](e)},has(t,n){return n in t||n in Lt}})):e.proxy}function Ic(e,t=!0){return K(e)?e.displayName||e.name:e.name||t&&e.__name}function Mc(e){return K(e)&&"__vccOpts"in e}const re=(e,t)=>pl(e,t,Gt);function br(e,t,n){const r=arguments.length;return r===2?Z(t)&&!B(t)?Cn(t)?ie(e,null,[t]):ie(e,t):ie(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Cn(n)&&(n=[n]),ie(e,t,n))}const Pc="3.4.31";/** -* @vue/runtime-dom v3.4.31 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/const Nc="http://www.w3.org/2000/svg",Fc="http://www.w3.org/1998/Math/MathML",Ve=typeof document<"u"?document:null,Ss=Ve&&Ve.createElement("template"),$c={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?Ve.createElementNS(Nc,e):t==="mathml"?Ve.createElementNS(Fc,e):n?Ve.createElement(e,{is:n}):Ve.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>Ve.createTextNode(e),createComment:e=>Ve.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ve.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{Ss.innerHTML=r==="svg"?`${e}`:r==="mathml"?`${e}`:e;const l=Ss.content;if(r==="svg"||r==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},ke="transition",Tt="animation",Ut=Symbol("_vtc"),ci=(e,{slots:t})=>br(yc,Hc(e),t);ci.displayName="Transition";const ai={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};ci.props=le({},zo,ai);const st=(e,t=[])=>{B(e)?e.forEach(n=>n(...t)):e&&e(...t)},Ts=e=>e?B(e)?e.some(t=>t.length>1):e.length>1:!1;function Hc(e){const t={};for(const T in e)T in ai||(t[T]=e[T]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:a=i,appearToClass:f=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:m=`${n}-leave-active`,leaveToClass:_=`${n}-leave-to`}=e,C=jc(s),L=C&&C[0],k=C&&C[1],{onBeforeEnter:W,onEnter:V,onEnterCancelled:p,onLeave:y,onLeaveCancelled:M,onBeforeAppear:A=W,onAppear:F=V,onAppearCancelled:$=p}=t,I=(T,G,ne)=>{ot(T,G?f:l),ot(T,G?a:i),ne&&ne()},w=(T,G)=>{T._isLeaving=!1,ot(T,h),ot(T,_),ot(T,m),G&&G()},N=T=>(G,ne)=>{const ce=T?F:V,D=()=>I(G,T,ne);st(ce,[G,D]),As(()=>{ot(G,T?c:o),Ke(G,T?f:l),Ts(ce)||Rs(G,r,L,D)})};return le(t,{onBeforeEnter(T){st(W,[T]),Ke(T,o),Ke(T,i)},onBeforeAppear(T){st(A,[T]),Ke(T,c),Ke(T,a)},onEnter:N(!1),onAppear:N(!0),onLeave(T,G){T._isLeaving=!0;const ne=()=>w(T,G);Ke(T,h),Ke(T,m),Uc(),As(()=>{T._isLeaving&&(ot(T,h),Ke(T,_),Ts(y)||Rs(T,r,k,ne))}),st(y,[T,ne])},onEnterCancelled(T){I(T,!1),st(p,[T])},onAppearCancelled(T){I(T,!0),st($,[T])},onLeaveCancelled(T){w(T),st(M,[T])}})}function jc(e){if(e==null)return null;if(Z(e))return[Xn(e.enter),Xn(e.leave)];{const t=Xn(e);return[t,t]}}function Xn(e){return $i(e)}function Ke(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Ut]||(e[Ut]=new Set)).add(t)}function ot(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Ut];n&&(n.delete(t),n.size||(e[Ut]=void 0))}function As(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Vc=0;function Rs(e,t,n,r){const s=e._endId=++Vc,o=()=>{s===e._endId&&r()};if(n)return setTimeout(o,n);const{type:i,timeout:l,propCount:c}=Dc(e,t);if(!i)return r();const a=i+"end";let f=0;const h=()=>{e.removeEventListener(a,m),o()},m=_=>{_.target===e&&++f>=c&&h()};setTimeout(()=>{f(n[C]||"").split(", "),s=r(`${ke}Delay`),o=r(`${ke}Duration`),i=Os(s,o),l=r(`${Tt}Delay`),c=r(`${Tt}Duration`),a=Os(l,c);let f=null,h=0,m=0;t===ke?i>0&&(f=ke,h=i,m=o.length):t===Tt?a>0&&(f=Tt,h=a,m=c.length):(h=Math.max(i,a),f=h>0?i>a?ke:Tt:null,m=f?f===ke?o.length:c.length:0);const _=f===ke&&/\b(transform|all)(,|$)/.test(r(`${ke}Property`).toString());return{type:f,timeout:h,propCount:m,hasTransform:_}}function Os(e,t){for(;e.lengthLs(n)+Ls(e[r])))}function Ls(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Uc(){return document.body.offsetHeight}function Bc(e,t,n){const r=e[Ut];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Is=Symbol("_vod"),kc=Symbol("_vsh"),Kc=Symbol(""),Wc=/(^|;)\s*display\s*:/;function qc(e,t,n){const r=e.style,s=oe(n);let o=!1;if(n&&!s){if(t)if(oe(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&pn(r,l,"")}else for(const i in t)n[i]==null&&pn(r,i,"");for(const i in n)i==="display"&&(o=!0),pn(r,i,n[i])}else if(s){if(t!==n){const i=r[Kc];i&&(n+=";"+i),r.cssText=n,o=Wc.test(n)}}else t&&e.removeAttribute("style");Is in e&&(e[Is]=o?r.display:"",e[kc]&&(r.display="none"))}const Ms=/\s*!important$/;function pn(e,t,n){if(B(n))n.forEach(r=>pn(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Gc(e,t);Ms.test(n)?e.setProperty(ft(r),n.replace(Ms,""),"important"):e[r]=n}}const Ps=["Webkit","Moz","ms"],Yn={};function Gc(e,t){const n=Yn[t];if(n)return n;let r=$e(t);if(r!=="filter"&&r in e)return Yn[t]=r;r=An(r);for(let s=0;sJn||(Qc.then(()=>Jn=0),Jn=Date.now());function ea(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Se(ta(r,n.value),t,5,[r])};return n.value=e,n.attached=Zc(),n}function ta(e,t){if(B(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const js=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,na=(e,t,n,r,s,o,i,l,c)=>{const a=s==="svg";t==="class"?Bc(e,r,a):t==="style"?qc(e,n,r):kt(t)?Er(t)||Yc(e,t,n,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):ra(e,t,r,a))?(zc(e,t,r,o,i,l,c),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Fs(e,t,r,a,i,t!=="value")):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Fs(e,t,r,a))};function ra(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&js(t)&&K(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return js(t)&&oe(n)?!1:t in e}const Vs=e=>{const t=e.props["onUpdate:modelValue"]||!1;return B(t)?n=>fn(t,n):t};function sa(e){e.target.composing=!0}function Ds(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Qn=Symbol("_assign"),vu={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Qn]=Vs(s);const o=r||s.props&&s.props.type==="number";gt(e,t?"change":"input",i=>{if(i.target.composing)return;let l=e.value;n&&(l=l.trim()),o&&(l=cr(l)),e[Qn](l)}),n&>(e,"change",()=>{e.value=e.value.trim()}),t||(gt(e,"compositionstart",sa),gt(e,"compositionend",Ds),gt(e,"change",Ds))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Qn]=Vs(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?cr(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},oa=["ctrl","shift","alt","meta"],ia={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>oa.some(n=>e[`${n}Key`]&&!t.includes(n))},bu=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(s,...o)=>{for(let i=0;i{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=s=>{if(!("key"in s))return;const o=ft(s.key);if(t.some(i=>i===o||la[i]===o))return e(s)})},ui=le({patchProp:na},$c);let Ft,Us=!1;function ca(){return Ft||(Ft=ic(ui))}function aa(){return Ft=Us?Ft:lc(ui),Us=!0,Ft}const Eu=(...e)=>{const t=ca().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=di(r);if(!s)return;const o=t._component;!K(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.innerHTML="";const i=n(s,!1,fi(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t},Cu=(...e)=>{const t=aa().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=di(r);if(s)return n(s,!0,fi(s))},t};function fi(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function di(e){return oe(e)?document.querySelector(e):e}const xu=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},ua="modulepreload",fa=function(e){return"/GeometryOps.jl/dev/"+e},Bs={},Su=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),i=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));s=Promise.all(n.map(l=>{if(l=fa(l),l in Bs)return;Bs[l]=!0;const c=l.endsWith(".css"),a=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${a}`))return;const f=document.createElement("link");if(f.rel=c?"stylesheet":ua,c||(f.as="script",f.crossOrigin=""),f.href=l,i&&f.setAttribute("nonce",i),document.head.appendChild(f),c)return new Promise((h,m)=>{f.addEventListener("load",h),f.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${l}`)))})}))}return s.then(()=>t()).catch(o=>{const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=o,window.dispatchEvent(i),!i.defaultPrevented)throw o})},da=window.__VP_SITE_DATA__;function kr(e){return oo()?(qi(e),!0):!1}function Fe(e){return typeof e=="function"?e():wo(e)}const hi=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ha=Object.prototype.toString,pa=e=>ha.call(e)==="[object Object]",Bt=()=>{},ks=ga();function ga(){var e,t;return hi&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function ma(e,t){function n(...r){return new Promise((s,o)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(s).catch(o)})}return n}const pi=e=>e();function ya(e,t={}){let n,r,s=Bt;const o=l=>{clearTimeout(l),s(),s=Bt};return l=>{const c=Fe(e),a=Fe(t.maxWait);return n&&o(n),c<=0||a!==void 0&&a<=0?(r&&(o(r),r=null),Promise.resolve(l())):new Promise((f,h)=>{s=t.rejectOnCancel?h:f,a&&!r&&(r=setTimeout(()=>{n&&o(n),r=null,f(l())},a)),n=setTimeout(()=>{r&&o(r),r=null,f(l())},c)})}}function _a(e=pi){const t=se(!0);function n(){t.value=!1}function r(){t.value=!0}const s=(...o)=>{t.value&&e(...o)};return{isActive:Ln(t),pause:n,resume:r,eventFilter:s}}function va(e){return jn()}function gi(...e){if(e.length!==1)return wl(...e);const t=e[0];return typeof t=="function"?Ln(_l(()=>({get:t,set:Bt}))):se(t)}function mi(e,t,n={}){const{eventFilter:r=pi,...s}=n;return Ne(e,ma(r,t),s)}function ba(e,t,n={}){const{eventFilter:r,...s}=n,{eventFilter:o,pause:i,resume:l,isActive:c}=_a(r);return{stop:mi(e,t,{...s,eventFilter:o}),pause:i,resume:l,isActive:c}}function Kr(e,t=!0,n){va()?xt(e,n):t?e():In(e)}function Tu(e,t,n={}){const{debounce:r=0,maxWait:s=void 0,...o}=n;return mi(e,t,{...o,eventFilter:ya(r,{maxWait:s})})}function Au(e,t,n){let r;de(n)?r={evaluating:n}:r={};const{lazy:s=!1,evaluating:o=void 0,shallow:i=!0,onError:l=Bt}=r,c=se(!s),a=i?Fr(t):se(t);let f=0;return Ur(async h=>{if(!c.value)return;f++;const m=f;let _=!1;o&&Promise.resolve().then(()=>{o.value=!0});try{const C=await e(L=>{h(()=>{o&&(o.value=!1),_||L()})});m===f&&(a.value=C)}catch(C){l(C)}finally{o&&m===f&&(o.value=!1),_=!0}}),s?re(()=>(c.value=!0,a.value)):a}function yi(e){var t;const n=Fe(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Oe=hi?window:void 0;function Ct(...e){let t,n,r,s;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,s]=e,t=Oe):[t,n,r,s]=e,!t)return Bt;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const o=[],i=()=>{o.forEach(f=>f()),o.length=0},l=(f,h,m,_)=>(f.addEventListener(h,m,_),()=>f.removeEventListener(h,m,_)),c=Ne(()=>[yi(t),Fe(s)],([f,h])=>{if(i(),!f)return;const m=pa(h)?{...h}:h;o.push(...n.flatMap(_=>r.map(C=>l(f,_,C,m))))},{immediate:!0,flush:"post"}),a=()=>{c(),i()};return kr(a),a}function wa(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function Ru(...e){let t,n,r={};e.length===3?(t=e[0],n=e[1],r=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],r=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:s=Oe,eventName:o="keydown",passive:i=!1,dedupe:l=!1}=r,c=wa(t);return Ct(s,o,f=>{f.repeat&&Fe(l)||c(f)&&n(f)},i)}function Ea(){const e=se(!1),t=jn();return t&&xt(()=>{e.value=!0},t),e}function Ca(e){const t=Ea();return re(()=>(t.value,!!e()))}function _i(e,t={}){const{window:n=Oe}=t,r=Ca(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let s;const o=se(!1),i=a=>{o.value=a.matches},l=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",i):s.removeListener(i))},c=Ur(()=>{r.value&&(l(),s=n.matchMedia(Fe(e)),"addEventListener"in s?s.addEventListener("change",i):s.addListener(i),o.value=s.matches)});return kr(()=>{c(),l(),s=void 0}),o}const ln=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},cn="__vueuse_ssr_handlers__",xa=Sa();function Sa(){return cn in ln||(ln[cn]=ln[cn]||{}),ln[cn]}function vi(e,t){return xa[e]||t}function Ta(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Aa={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Ks="vueuse-storage";function Wr(e,t,n,r={}){var s;const{flush:o="pre",deep:i=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:a=!1,shallow:f,window:h=Oe,eventFilter:m,onError:_=w=>{console.error(w)},initOnMounted:C}=r,L=(f?Fr:se)(typeof t=="function"?t():t);if(!n)try{n=vi("getDefaultStorage",()=>{var w;return(w=Oe)==null?void 0:w.localStorage})()}catch(w){_(w)}if(!n)return L;const k=Fe(t),W=Ta(k),V=(s=r.serializer)!=null?s:Aa[W],{pause:p,resume:y}=ba(L,()=>A(L.value),{flush:o,deep:i,eventFilter:m});h&&l&&Kr(()=>{Ct(h,"storage",$),Ct(h,Ks,I),C&&$()}),C||$();function M(w,N){h&&h.dispatchEvent(new CustomEvent(Ks,{detail:{key:e,oldValue:w,newValue:N,storageArea:n}}))}function A(w){try{const N=n.getItem(e);if(w==null)M(N,null),n.removeItem(e);else{const T=V.write(w);N!==T&&(n.setItem(e,T),M(N,T))}}catch(N){_(N)}}function F(w){const N=w?w.newValue:n.getItem(e);if(N==null)return c&&k!=null&&n.setItem(e,V.write(k)),k;if(!w&&a){const T=V.read(N);return typeof a=="function"?a(T,k):W==="object"&&!Array.isArray(T)?{...k,...T}:T}else return typeof N!="string"?N:V.read(N)}function $(w){if(!(w&&w.storageArea!==n)){if(w&&w.key==null){L.value=k;return}if(!(w&&w.key!==e)){p();try{(w==null?void 0:w.newValue)!==V.write(L.value)&&(L.value=F(w))}catch(N){_(N)}finally{w?In(y):y()}}}}function I(w){$(w.detail)}return L}function bi(e){return _i("(prefers-color-scheme: dark)",e)}function Ra(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:s=Oe,storage:o,storageKey:i="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:a,disableTransition:f=!0}=e,h={auto:"",light:"light",dark:"dark",...e.modes||{}},m=bi({window:s}),_=re(()=>m.value?"dark":"light"),C=c||(i==null?gi(r):Wr(i,r,o,{window:s,listenToStorageChanges:l})),L=re(()=>C.value==="auto"?_.value:C.value),k=vi("updateHTMLAttrs",(y,M,A)=>{const F=typeof y=="string"?s==null?void 0:s.document.querySelector(y):yi(y);if(!F)return;let $;if(f&&($=s.document.createElement("style"),$.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),s.document.head.appendChild($)),M==="class"){const I=A.split(/\s/g);Object.values(h).flatMap(w=>(w||"").split(/\s/g)).filter(Boolean).forEach(w=>{I.includes(w)?F.classList.add(w):F.classList.remove(w)})}else F.setAttribute(M,A);f&&(s.getComputedStyle($).opacity,document.head.removeChild($))});function W(y){var M;k(t,n,(M=h[y])!=null?M:y)}function V(y){e.onChanged?e.onChanged(y,W):W(y)}Ne(L,V,{flush:"post",immediate:!0}),Kr(()=>V(L.value));const p=re({get(){return a?C.value:L.value},set(y){C.value=y}});try{return Object.assign(p,{store:C,system:_,state:L})}catch{return p}}function Oa(e={}){const{valueDark:t="dark",valueLight:n="",window:r=Oe}=e,s=Ra({...e,onChanged:(l,c)=>{var a;e.onChanged?(a=e.onChanged)==null||a.call(e,l==="dark",c,l):c(l)},modes:{dark:t,light:n}}),o=re(()=>s.system?s.system.value:bi({window:r}).value?"dark":"light");return re({get(){return s.value==="dark"},set(l){const c=l?"dark":"light";o.value===c?s.value="auto":s.value=c}})}function Zn(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function Ou(e,t,n={}){const{window:r=Oe}=n;return Wr(e,t,r==null?void 0:r.localStorage,n)}function wi(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const er=new WeakMap;function Lu(e,t=!1){const n=se(t);let r=null,s="";Ne(gi(e),l=>{const c=Zn(Fe(l));if(c){const a=c;if(er.get(a)||er.set(a,a.style.overflow),a.style.overflow!=="hidden"&&(s=a.style.overflow),a.style.overflow==="hidden")return n.value=!0;if(n.value)return a.style.overflow="hidden"}},{immediate:!0});const o=()=>{const l=Zn(Fe(e));!l||n.value||(ks&&(r=Ct(l,"touchmove",c=>{La(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},i=()=>{const l=Zn(Fe(e));!l||!n.value||(ks&&(r==null||r()),l.style.overflow=s,er.delete(l),n.value=!1)};return kr(i),re({get(){return n.value},set(l){l?o():i()}})}function Iu(e,t,n={}){const{window:r=Oe}=n;return Wr(e,t,r==null?void 0:r.sessionStorage,n)}function Mu(e={}){const{window:t=Oe,behavior:n="auto"}=e;if(!t)return{x:se(0),y:se(0)};const r=se(t.scrollX),s=se(t.scrollY),o=re({get(){return r.value},set(l){scrollTo({left:l,behavior:n})}}),i=re({get(){return s.value},set(l){scrollTo({top:l,behavior:n})}});return Ct(t,"scroll",()=>{r.value=t.scrollX,s.value=t.scrollY},{capture:!1,passive:!0}),{x:o,y:i}}function Pu(e={}){const{window:t=Oe,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:r=Number.POSITIVE_INFINITY,listenOrientation:s=!0,includeScrollbar:o=!0}=e,i=se(n),l=se(r),c=()=>{t&&(o?(i.value=t.innerWidth,l.value=t.innerHeight):(i.value=t.document.documentElement.clientWidth,l.value=t.document.documentElement.clientHeight))};if(c(),Kr(c),Ct("resize",c,{passive:!0}),s){const a=_i("(orientation: portrait)");Ne(a,()=>c())}return{width:i,height:l}}var tr={BASE_URL:"/GeometryOps.jl/dev/",MODE:"production",DEV:!1,PROD:!0,SSR:!1},nr={};const Ei=/^(?:[a-z]+:|\/\/)/i,Ia="vitepress-theme-appearance",Ma=/#.*$/,Pa=/[?#].*$/,Na=/(?:(^|\/)index)?\.(?:md|html)$/,he=typeof document<"u",Ci={relativePath:"404.md",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function Fa(e,t,n=!1){if(t===void 0)return!1;if(e=Ws(`/${e}`),n)return new RegExp(t).test(e);if(Ws(t)!==e)return!1;const r=t.match(Ma);return r?(he?location.hash:"")===r[0]:!0}function Ws(e){return decodeURI(e).replace(Pa,"").replace(Na,"$1")}function $a(e){return Ei.test(e)}function Ha(e,t){return Object.keys((e==null?void 0:e.locales)||{}).find(n=>n!=="root"&&!$a(n)&&Fa(t,`/${n}/`,!0))||"root"}function ja(e,t){var r,s,o,i,l,c,a;const n=Ha(e,t);return Object.assign({},e,{localeIndex:n,lang:((r=e.locales[n])==null?void 0:r.lang)??e.lang,dir:((s=e.locales[n])==null?void 0:s.dir)??e.dir,title:((o=e.locales[n])==null?void 0:o.title)??e.title,titleTemplate:((i=e.locales[n])==null?void 0:i.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:Si(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(a=e.locales[n])==null?void 0:a.themeConfig}})}function xi(e,t){const n=t.title||e.title,r=t.titleTemplate??e.titleTemplate;if(typeof r=="string"&&r.includes(":title"))return r.replace(/:title/g,n);const s=Va(e.title,r);return n===s.slice(3)?n:`${n}${s}`}function Va(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function Da(e,t){const[n,r]=t;if(n!=="meta")return!1;const s=Object.entries(r)[0];return s==null?!1:e.some(([o,i])=>o===n&&i[s[0]]===s[1])}function Si(e,t){return[...e.filter(n=>!Da(t,n)),...t]}const Ua=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,Ba=/^[a-z]:/i;function qs(e){const t=Ba.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(Ua,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const rr=new Set;function ka(e){if(rr.size===0){const n=typeof process=="object"&&(nr==null?void 0:nr.VITE_EXTRA_EXTENSIONS)||(tr==null?void 0:tr.VITE_EXTRA_EXTENSIONS)||"";("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip"+(n&&typeof n=="string"?","+n:"")).split(",").forEach(r=>rr.add(r))}const t=e.split(".").pop();return t==null||!rr.has(t.toLowerCase())}function Nu(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const Ka=Symbol(),ut=Fr(da);function Fu(e){const t=re(()=>ja(ut.value,e.data.relativePath)),n=t.value.appearance,r=n==="force-dark"?se(!0):n?Oa({storageKey:Ia,initialValue:()=>n==="dark"?"dark":"auto",...typeof n=="object"?n:{}}):se(!1),s=se(he?location.hash:"");return he&&window.addEventListener("hashchange",()=>{s.value=location.hash}),Ne(()=>e.data,()=>{s.value=he?location.hash:""}),{site:t,theme:re(()=>t.value.themeConfig),page:re(()=>e.data),frontmatter:re(()=>e.data.frontmatter),params:re(()=>e.data.params),lang:re(()=>t.value.lang),dir:re(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:re(()=>t.value.localeIndex||"root"),title:re(()=>xi(t.value,e.data)),description:re(()=>e.data.description||t.value.description),isDark:r,hash:re(()=>s.value)}}function Wa(){const e=wt(Ka);if(!e)throw new Error("vitepress data not properly injected in app");return e}function qa(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function Gs(e){return Ei.test(e)||!e.startsWith("/")?e:qa(ut.value.base,e)}function Ga(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),he){const n="/GeometryOps.jl/dev/";t=qs(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let r=__VP_HASH_MAP__[t.toLowerCase()];if(r||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",r=__VP_HASH_MAP__[t.toLowerCase()]),!r)return null;t=`${n}assets/${t}.${r}.js`}else t=`./${qs(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let gn=[];function $u(e){gn.push(e),$n(()=>{gn=gn.filter(t=>t!==e)})}function za(){let e=ut.value.scrollOffset,t=0,n=24;if(typeof e=="object"&&"padding"in e&&(n=e.padding,e=e.selector),typeof e=="number")t=e;else if(typeof e=="string")t=zs(e,n);else if(Array.isArray(e))for(const r of e){const s=zs(r,n);if(s){t=s;break}}return t}function zs(e,t){const n=document.querySelector(e);if(!n)return 0;const r=n.getBoundingClientRect().bottom;return r<0?0:r+t}const Xa=Symbol(),Ti="http://a.com",Ya=()=>({path:"/",component:null,data:Ci});function Hu(e,t){const n=On(Ya()),r={route:n,go:s};async function s(l=he?location.href:"/"){var c,a;l=sr(l),await((c=r.onBeforeRouteChange)==null?void 0:c.call(r,l))!==!1&&(he&&l!==sr(location.href)&&(history.replaceState({scrollPosition:window.scrollY},""),history.pushState({},"",l)),await i(l),await((a=r.onAfterRouteChanged)==null?void 0:a.call(r,l)))}let o=null;async function i(l,c=0,a=!1){var m;if(await((m=r.onBeforePageLoad)==null?void 0:m.call(r,l))===!1)return;const f=new URL(l,Ti),h=o=f.pathname;try{let _=await e(h);if(!_)throw new Error(`Page not found: ${h}`);if(o===h){o=null;const{default:C,__pageData:L}=_;if(!C)throw new Error(`Invalid route component: ${C}`);n.path=he?h:Gs(h),n.component=dn(C),n.data=dn(L),he&&In(()=>{let k=ut.value.base+L.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!ut.value.cleanUrls&&!k.endsWith("/")&&(k+=".html"),k!==f.pathname&&(f.pathname=k,l=k+f.search+f.hash,history.replaceState({},"",l)),f.hash&&!c){let W=null;try{W=document.getElementById(decodeURIComponent(f.hash).slice(1))}catch(V){console.warn(V)}if(W){Xs(W,f.hash);return}}window.scrollTo(0,c)})}}catch(_){if(!/fetch|Page not found/.test(_.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(_),!a)try{const C=await fetch(ut.value.base+"hashmap.json");window.__VP_HASH_MAP__=await C.json(),await i(l,c,!0);return}catch{}if(o===h){o=null,n.path=he?h:Gs(h),n.component=t?dn(t):null;const C=he?h.replace(/(^|\/)$/,"$1index").replace(/(\.html)?$/,".md").replace(/^\//,""):"404.md";n.data={...Ci,relativePath:C}}}}return he&&(history.state===null&&history.replaceState({},""),window.addEventListener("click",l=>{if(l.defaultPrevented||!(l.target instanceof Element)||l.target.closest("button")||l.button!==0||l.ctrlKey||l.shiftKey||l.altKey||l.metaKey)return;const c=l.target.closest("a");if(!c||c.closest(".vp-raw")||c.hasAttribute("download")||c.hasAttribute("target"))return;const a=c.getAttribute("href")??(c instanceof SVGAElement?c.getAttribute("xlink:href"):null);if(a==null)return;const{href:f,origin:h,pathname:m,hash:_,search:C}=new URL(a,c.baseURI),L=new URL(location.href);h===L.origin&&ka(m)&&(l.preventDefault(),m===L.pathname&&C===L.search?(_!==L.hash&&(history.pushState({},"",f),window.dispatchEvent(new HashChangeEvent("hashchange",{oldURL:L.href,newURL:f}))),_?Xs(c,_,c.classList.contains("header-anchor")):window.scrollTo(0,0)):s(f))},{capture:!0}),window.addEventListener("popstate",async l=>{var c;l.state!==null&&(await i(sr(location.href),l.state&&l.state.scrollPosition||0),(c=r.onAfterRouteChanged)==null||c.call(r,location.href))}),window.addEventListener("hashchange",l=>{l.preventDefault()})),r}function Ja(){const e=wt(Xa);if(!e)throw new Error("useRouter() is called without provider.");return e}function Ai(){return Ja().route}function Xs(e,t,n=!1){let r=null;try{r=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(s){console.warn(s)}if(r){let s=function(){!n||Math.abs(i-window.scrollY)>window.innerHeight?window.scrollTo(0,i):window.scrollTo({left:0,top:i,behavior:"smooth"})};const o=parseInt(window.getComputedStyle(r).paddingTop,10),i=window.scrollY+r.getBoundingClientRect().top-za()+o;requestAnimationFrame(s)}}function sr(e){const t=new URL(e,Ti);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),ut.value.cleanUrls?t.pathname=t.pathname.replace(/\.html$/,""):!t.pathname.endsWith("/")&&!t.pathname.endsWith(".html")&&(t.pathname+=".html"),t.pathname+t.search+t.hash}const or=()=>gn.forEach(e=>e()),ju=Hr({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=Ai(),{site:n}=Wa();return()=>br(e.as,n.value.contentProps??{style:{position:"relative"}},[t.component?br(t.component,{onVnodeMounted:or,onVnodeUpdated:or,onVnodeUnmounted:or}):"404 Page Not Found"])}}),Vu=Hr({setup(e,{slots:t}){const n=se(!1);return xt(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function Du(){he&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const r=(n=t.parentElement)==null?void 0:n.parentElement;if(!r)return;const s=Array.from(r.querySelectorAll("input")).indexOf(t);if(s<0)return;const o=r.querySelector(".blocks");if(!o)return;const i=Array.from(o.children).find(a=>a.classList.contains("active"));if(!i)return;const l=o.children[s];if(!l||i===l)return;i.classList.remove("active"),l.classList.add("active");const c=r==null?void 0:r.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function Uu(){if(he){const e=new WeakMap;window.addEventListener("click",t=>{var r;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const s=n.parentElement,o=(r=n.nextElementSibling)==null?void 0:r.nextElementSibling;if(!s||!o)return;const i=/language-(shellscript|shell|bash|sh|zsh)/.test(s.className),l=[".vp-copy-ignore",".diff.remove"],c=o.cloneNode(!0);c.querySelectorAll(l.join(",")).forEach(f=>f.remove());let a=c.textContent||"";i&&(a=a.replace(/^ *(\$|>) /gm,"").trim()),Qa(a).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const f=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,f)})}})}}async function Qa(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const r=document.getSelection(),s=r?r.rangeCount>0&&r.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),s&&(r.removeAllRanges(),r.addRange(s)),n&&n.focus()}}function Bu(e,t){let n=!0,r=[];const s=o=>{if(n){n=!1,o.forEach(l=>{const c=ir(l);for(const a of document.head.children)if(a.isEqualNode(c)){r.push(a);return}});return}const i=o.map(ir);r.forEach((l,c)=>{const a=i.findIndex(f=>f==null?void 0:f.isEqualNode(l??null));a!==-1?delete i[a]:(l==null||l.remove(),delete r[c])}),i.forEach(l=>l&&document.head.appendChild(l)),r=[...r,...i].filter(Boolean)};Ur(()=>{const o=e.data,i=t.value,l=o&&o.description,c=o&&o.frontmatter.head||[],a=xi(i,o);a!==document.title&&(document.title=a);const f=l||i.description;let h=document.querySelector("meta[name=description]");h?h.getAttribute("content")!==f&&h.setAttribute("content",f):ir(["meta",{name:"description",content:f}]),s(Si(i.head,eu(c)))})}function ir([e,t,n]){const r=document.createElement(e);for(const s in t)r.setAttribute(s,t[s]);return n&&(r.innerHTML=n),e==="script"&&!t.async&&(r.async=!1),r}function Za(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function eu(e){return e.filter(t=>!Za(t))}const lr=new Set,Ri=()=>document.createElement("link"),tu=e=>{const t=Ri();t.rel="prefetch",t.href=e,document.head.appendChild(t)},nu=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let an;const ru=he&&(an=Ri())&&an.relList&&an.relList.supports&&an.relList.supports("prefetch")?tu:nu;function ku(){if(!he||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const r=()=>{n&&n.disconnect(),n=new IntersectionObserver(o=>{o.forEach(i=>{if(i.isIntersecting){const l=i.target;n.unobserve(l);const{pathname:c}=l;if(!lr.has(c)){lr.add(c);const a=Ga(c);a&&ru(a)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(o=>{const{hostname:i,pathname:l}=new URL(o.href instanceof SVGAnimatedString?o.href.animVal:o.href,o.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||o.target!=="_blank"&&i===location.hostname&&(l!==location.pathname?n.observe(o):lr.add(l))})})};xt(r);const s=Ai();Ne(()=>s.path,r),$n(()=>{n&&n.disconnect()})}export{wu as $,pu as A,Hl as B,za as C,iu as D,au as E,_e as F,Fr as G,$u as H,ie as I,lu as J,Ei as K,Ai as L,xc as M,wt as N,Pu as O,Sr as P,Ru as Q,In as R,Mu as S,ci as T,he as U,Ln as V,uu as W,Su as X,Lu as Y,Jl as Z,xu as _,si as a,du as a0,Io as a1,bu as a2,hu as a3,On as a4,wl as a5,br as a6,yu as a7,Bu as a8,Xa as a9,Fu as aa,Ka as ab,ju as ac,Vu as ad,ut as ae,Cu as af,Hu as ag,Ga as ah,ku as ai,Uu as aj,Du as ak,yi as al,kr as am,Au as an,Iu as ao,Ou as ap,Tu as aq,Ja as ar,Ct as as,cu as at,vu as au,de as av,gu as aw,dn as ax,Eu as ay,Nu as az,ti as b,mu as c,Hr as d,_u as e,ka as f,Gs as g,re as h,$a as i,ri as j,wo as k,ou as l,Fa as m,Tr as n,Zo as o,su as p,_i as q,fu as r,se as s,ki as t,Wa as u,Ne as v,Ol as w,Ur as x,xt as y,$n as z}; diff --git a/dev/assets/chunks/framework.CpnCegiD.js b/dev/assets/chunks/framework.CpnCegiD.js new file mode 100644 index 000000000..ea973432c --- /dev/null +++ b/dev/assets/chunks/framework.CpnCegiD.js @@ -0,0 +1,17 @@ +/** +* @vue/shared v3.4.33 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function wr(e,t){const n=new Set(e.split(","));return r=>n.has(r)}const ne={},yt=[],Te=()=>{},Pi=()=>!1,Kt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Er=e=>e.startsWith("onUpdate:"),fe=Object.assign,Cr=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Ni=Object.prototype.hasOwnProperty,z=(e,t)=>Ni.call(e,t),B=Array.isArray,_t=e=>xn(e)==="[object Map]",zs=e=>xn(e)==="[object Set]",K=e=>typeof e=="function",ie=e=>typeof e=="string",Qe=e=>typeof e=="symbol",Z=e=>e!==null&&typeof e=="object",Js=e=>(Z(e)||K(e))&&K(e.then)&&K(e.catch),Qs=Object.prototype.toString,xn=e=>Qs.call(e),Fi=e=>xn(e).slice(8,-1),Zs=e=>xn(e)==="[object Object]",Sr=e=>ie(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,vt=wr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Tn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},$i=/-(\w)/g,Oe=Tn(e=>e.replace($i,(t,n)=>n?n.toUpperCase():"")),Hi=/\B([A-Z])/g,Ze=Tn(e=>e.replace(Hi,"-$1").toLowerCase()),An=Tn(e=>e.charAt(0).toUpperCase()+e.slice(1)),fn=Tn(e=>e?`on${An(e)}`:""),ze=(e,t)=>!Object.is(e,t),dn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},cr=e=>{const t=parseFloat(e);return isNaN(t)?e:t},ji=e=>{const t=ie(e)?Number(e):NaN;return isNaN(t)?e:t};let Jr;const to=()=>Jr||(Jr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function xr(e){if(B(e)){const t={};for(let n=0;n{if(n){const r=n.split(Di);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Tr(e){let t="";if(ie(e))t=e;else if(B(e))for(let n=0;n!!(e&&e.__v_isRef===!0),Wi=e=>ie(e)?e:e==null?"":B(e)||Z(e)&&(e.toString===Qs||!K(e.toString))?ro(e)?Wi(e.value):JSON.stringify(e,so,2):String(e),so=(e,t)=>ro(t)?so(e,t.value):_t(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[kn(r,o)+" =>"]=s,n),{})}:zs(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>kn(n))}:Qe(t)?kn(t):Z(t)&&!B(t)&&!Zs(t)?String(t):t,kn=(e,t="")=>{var n;return Qe(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.4.33 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let we;class qi{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=we,!t&&we&&(this.index=(we.scopes||(we.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=we;try{return we=this,t()}finally{we=n}}}on(){we=this}off(){we=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n=4))break}this._dirtyLevel===1&&(this._dirtyLevel=0),tt()}return this._dirtyLevel>=4}set dirty(t){this._dirtyLevel=t?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=Xe,n=ct;try{return Xe=!0,ct=this,this._runnings++,Qr(this),this.fn()}finally{Zr(this),this._runnings--,ct=n,Xe=t}}stop(){this.active&&(Qr(this),Zr(this),this.onStop&&this.onStop(),this.active=!1)}}function Yi(e){return e.value}function Qr(e){e._trackId++,e._depsLength=0}function Zr(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},yn=new WeakMap,at=Symbol(""),fr=Symbol("");function ve(e,t,n){if(Xe&&ct){let r=yn.get(e);r||yn.set(e,r=new Map);let s=r.get(n);s||r.set(n,s=uo(()=>r.delete(n))),co(ct,s)}}function Ve(e,t,n,r,s,o){const i=yn.get(e);if(!i)return;let l=[];if(t==="clear")l=[...i.values()];else if(n==="length"&&B(e)){const c=Number(r);i.forEach((u,f)=>{(f==="length"||!Qe(f)&&f>=c)&&l.push(u)})}else switch(n!==void 0&&l.push(i.get(n)),t){case"add":B(e)?Sr(n)&&l.push(i.get("length")):(l.push(i.get(at)),_t(e)&&l.push(i.get(fr)));break;case"delete":B(e)||(l.push(i.get(at)),_t(e)&&l.push(i.get(fr)));break;case"set":_t(e)&&l.push(i.get(at));break}Rr();for(const c of l)c&&ao(c,4);Or()}function zi(e,t){const n=yn.get(e);return n&&n.get(t)}const Ji=wr("__proto__,__v_isRef,__isVue"),fo=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Qe)),es=Qi();function Qi(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=J(this);for(let o=0,i=this.length;o{e[t]=function(...n){et(),Rr();const r=J(this)[t].apply(this,n);return Or(),tt(),r}}),e}function Zi(e){Qe(e)||(e=String(e));const t=J(this);return ve(t,"has",e),t.hasOwnProperty(e)}class ho{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?dl:yo:o?mo:go).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=B(t);if(!s){if(i&&z(es,n))return Reflect.get(es,n,r);if(n==="hasOwnProperty")return Zi}const l=Reflect.get(t,n,r);return(Qe(n)?fo.has(n):Ji(n))||(s||ve(t,"get",n),o)?l:de(l)?i&&Sr(n)?l:l.value:Z(l)?s?Ln(l):On(l):l}}class po extends ho{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];if(!this._isShallow){const c=dt(o);if(!St(r)&&!dt(r)&&(o=J(o),r=J(r)),!B(t)&&de(o)&&!de(r))return c?!1:(o.value=r,!0)}const i=B(t)&&Sr(n)?Number(n)e,Rn=e=>Reflect.getPrototypeOf(e);function Jt(e,t,n=!1,r=!1){e=e.__v_raw;const s=J(e),o=J(t);n||(ze(t,o)&&ve(s,"get",t),ve(s,"get",o));const{has:i}=Rn(s),l=r?Lr:n?Pr:jt;if(i.call(s,t))return l(e.get(t));if(i.call(s,o))return l(e.get(o));e!==s&&e.get(t)}function Qt(e,t=!1){const n=this.__v_raw,r=J(n),s=J(e);return t||(ze(e,s)&&ve(r,"has",e),ve(r,"has",s)),e===s?n.has(e):n.has(e)||n.has(s)}function Zt(e,t=!1){return e=e.__v_raw,!t&&ve(J(e),"iterate",at),Reflect.get(e,"size",e)}function ts(e,t=!1){!t&&!St(e)&&!dt(e)&&(e=J(e));const n=J(this);return Rn(n).has.call(n,e)||(n.add(e),Ve(n,"add",e,e)),this}function ns(e,t,n=!1){!n&&!St(t)&&!dt(t)&&(t=J(t));const r=J(this),{has:s,get:o}=Rn(r);let i=s.call(r,e);i||(e=J(e),i=s.call(r,e));const l=o.call(r,e);return r.set(e,t),i?ze(t,l)&&Ve(r,"set",e,t):Ve(r,"add",e,t),this}function rs(e){const t=J(this),{has:n,get:r}=Rn(t);let s=n.call(t,e);s||(e=J(e),s=n.call(t,e)),r&&r.call(t,e);const o=t.delete(e);return s&&Ve(t,"delete",e,void 0),o}function ss(){const e=J(this),t=e.size!==0,n=e.clear();return t&&Ve(e,"clear",void 0,void 0),n}function en(e,t){return function(r,s){const o=this,i=o.__v_raw,l=J(i),c=t?Lr:e?Pr:jt;return!e&&ve(l,"iterate",at),i.forEach((u,f)=>r.call(s,c(u),c(f),o))}}function tn(e,t,n){return function(...r){const s=this.__v_raw,o=J(s),i=_t(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,u=s[e](...r),f=n?Lr:t?Pr:jt;return!t&&ve(o,"iterate",c?fr:at),{next(){const{value:h,done:m}=u.next();return m?{value:h,done:m}:{value:l?[f(h[0]),f(h[1])]:f(h),done:m}},[Symbol.iterator](){return this}}}}function Ue(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function sl(){const e={get(o){return Jt(this,o)},get size(){return Zt(this)},has:Qt,add:ts,set:ns,delete:rs,clear:ss,forEach:en(!1,!1)},t={get(o){return Jt(this,o,!1,!0)},get size(){return Zt(this)},has:Qt,add(o){return ts.call(this,o,!0)},set(o,i){return ns.call(this,o,i,!0)},delete:rs,clear:ss,forEach:en(!1,!0)},n={get(o){return Jt(this,o,!0)},get size(){return Zt(this,!0)},has(o){return Qt.call(this,o,!0)},add:Ue("add"),set:Ue("set"),delete:Ue("delete"),clear:Ue("clear"),forEach:en(!0,!1)},r={get(o){return Jt(this,o,!0,!0)},get size(){return Zt(this,!0)},has(o){return Qt.call(this,o,!0)},add:Ue("add"),set:Ue("set"),delete:Ue("delete"),clear:Ue("clear"),forEach:en(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=tn(o,!1,!1),n[o]=tn(o,!0,!1),t[o]=tn(o,!1,!0),r[o]=tn(o,!0,!0)}),[e,n,t,r]}const[ol,il,ll,cl]=sl();function Mr(e,t){const n=t?e?cl:ll:e?il:ol;return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(z(n,s)&&s in r?n:r,s,o)}const al={get:Mr(!1,!1)},ul={get:Mr(!1,!0)},fl={get:Mr(!0,!1)};const go=new WeakMap,mo=new WeakMap,yo=new WeakMap,dl=new WeakMap;function hl(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function pl(e){return e.__v_skip||!Object.isExtensible(e)?0:hl(Fi(e))}function On(e){return dt(e)?e:Ir(e,!1,tl,al,go)}function gl(e){return Ir(e,!1,rl,ul,mo)}function Ln(e){return Ir(e,!0,nl,fl,yo)}function Ir(e,t,n,r,s){if(!Z(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=s.get(e);if(o)return o;const i=pl(e);if(i===0)return e;const l=new Proxy(e,i===2?r:n);return s.set(e,l),l}function bt(e){return dt(e)?bt(e.__v_raw):!!(e&&e.__v_isReactive)}function dt(e){return!!(e&&e.__v_isReadonly)}function St(e){return!!(e&&e.__v_isShallow)}function _o(e){return e?!!e.__v_raw:!1}function J(e){const t=e&&e.__v_raw;return t?J(t):e}function hn(e){return Object.isExtensible(e)&&eo(e,"__v_skip",!0),e}const jt=e=>Z(e)?On(e):e,Pr=e=>Z(e)?Ln(e):e;class vo{constructor(t,n,r,s){this.getter=t,this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new Ar(()=>t(this._value),()=>Mt(this,this.effect._dirtyLevel===2?2:3)),this.effect.computed=this,this.effect.active=this._cacheable=!s,this.__v_isReadonly=r}get value(){const t=J(this);return(!t._cacheable||t.effect.dirty)&&ze(t._value,t._value=t.effect.run())&&Mt(t,4),Nr(t),t.effect._dirtyLevel>=2&&Mt(t,2),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function ml(e,t,n=!1){let r,s;const o=K(e);return o?(r=e,s=Te):(r=e.get,s=e.set),new vo(r,s,o||!s,n)}function Nr(e){var t;Xe&&ct&&(e=J(e),co(ct,(t=e.dep)!=null?t:e.dep=uo(()=>e.dep=void 0,e instanceof vo?e:void 0)))}function Mt(e,t=4,n,r){e=J(e);const s=e.dep;s&&ao(s,t)}function de(e){return!!(e&&e.__v_isRef===!0)}function oe(e){return bo(e,!1)}function Fr(e){return bo(e,!0)}function bo(e,t){return de(e)?e:new yl(e,t)}class yl{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:J(t),this._value=n?t:jt(t)}get value(){return Nr(this),this._value}set value(t){const n=this.__v_isShallow||St(t)||dt(t);t=n?t:J(t),ze(t,this._rawValue)&&(this._rawValue,this._rawValue=t,this._value=n?t:jt(t),Mt(this,4))}}function wo(e){return de(e)?e.value:e}const _l={get:(e,t,n)=>wo(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return de(s)&&!de(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Eo(e){return bt(e)?e:new Proxy(e,_l)}class vl{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:r}=t(()=>Nr(this),()=>Mt(this));this._get=n,this._set=r}get value(){return this._get()}set value(t){this._set(t)}}function bl(e){return new vl(e)}class wl{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return zi(J(this._object),this._key)}}class El{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function Cl(e,t,n){return de(e)?e:K(e)?new El(e):Z(e)&&arguments.length>1?Sl(e,t,n):oe(e)}function Sl(e,t,n){const r=e[t];return de(r)?r:new wl(e,t,n)}/** +* @vue/runtime-core v3.4.33 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Ye(e,t,n,r){try{return r?e(...r):e()}catch(s){Wt(s,t,n)}}function Ae(e,t,n,r){if(K(e)){const s=Ye(e,t,n,r);return s&&Js(s)&&s.catch(o=>{Wt(o,t,n)}),s}if(B(e)){const s=[];for(let o=0;o>>1,s=pe[r],o=Dt(s);oNe&&pe.splice(t,1)}function Rl(e){B(e)?wt.push(...e):(!Ke||!Ke.includes(e,e.allowRecurse?it+1:it))&&wt.push(e),So()}function os(e,t,n=Vt?Ne+1:0){for(;nDt(n)-Dt(r));if(wt.length=0,Ke){Ke.push(...t);return}for(Ke=t,it=0;ite.id==null?1/0:e.id,Ol=(e,t)=>{const n=Dt(e)-Dt(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function xo(e){dr=!1,Vt=!0,pe.sort(Ol);try{for(Ne=0;Ne{r._d&&ws(-1);const o=vn(t);let i;try{i=e(...s)}finally{vn(o),r._d&&ws(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function uu(e,t){if(ue===null)return e;const n=Vn(ue),r=e.dirs||(e.dirs=[]);for(let s=0;s{e.isMounted=!0}),Mo(()=>{e.isUnmounting=!0}),e}const Ce=[Function,Array],To={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Ce,onEnter:Ce,onAfterEnter:Ce,onEnterCancelled:Ce,onBeforeLeave:Ce,onLeave:Ce,onAfterLeave:Ce,onLeaveCancelled:Ce,onBeforeAppear:Ce,onAppear:Ce,onAfterAppear:Ce,onAppearCancelled:Ce},Ao=e=>{const t=e.subTree;return t.component?Ao(t.component):t},Il={name:"BaseTransition",props:To,setup(e,{slots:t}){const n=jn(),r=Ml();return()=>{const s=t.default&&Oo(t.default(),!0);if(!s||!s.length)return;let o=s[0];if(s.length>1){for(const m of s)if(m.type!==me){o=m;break}}const i=J(e),{mode:l}=i;if(r.isLeaving)return Kn(o);const c=is(o);if(!c)return Kn(o);let u=hr(c,i,r,n,m=>u=m);bn(c,u);const f=n.subTree,h=f&&is(f);if(h&&h.type!==me&&!lt(c,h)&&Ao(n).type!==me){const m=hr(h,i,r,n);if(bn(h,m),l==="out-in"&&c.type!==me)return r.isLeaving=!0,m.afterLeave=()=>{r.isLeaving=!1,n.update.active!==!1&&(n.effect.dirty=!0,n.update())},Kn(o);l==="in-out"&&c.type!==me&&(m.delayLeave=(b,S,O)=>{const k=Ro(r,h);k[String(h.key)]=h,b[We]=()=>{S(),b[We]=void 0,delete u.delayedLeave},u.delayedLeave=O})}return o}}},Pl=Il;function Ro(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function hr(e,t,n,r,s){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:c,onEnter:u,onAfterEnter:f,onEnterCancelled:h,onBeforeLeave:m,onLeave:b,onAfterLeave:S,onLeaveCancelled:O,onBeforeAppear:k,onAppear:W,onAfterAppear:D,onAppearCancelled:p}=t,y=String(e.key),I=Ro(n,e),T=(M,_)=>{M&&Ae(M,r,9,_)},F=(M,_)=>{const N=_[1];T(M,_),B(M)?M.every(x=>x.length<=1)&&N():M.length<=1&&N()},$={mode:i,persisted:l,beforeEnter(M){let _=c;if(!n.isMounted)if(o)_=k||c;else return;M[We]&&M[We](!0);const N=I[y];N&<(e,N)&&N.el[We]&&N.el[We](),T(_,[M])},enter(M){let _=u,N=f,x=h;if(!n.isMounted)if(o)_=W||u,N=D||f,x=p||h;else return;let G=!1;const ee=M[nn]=re=>{G||(G=!0,re?T(x,[M]):T(N,[M]),$.delayedLeave&&$.delayedLeave(),M[nn]=void 0)};_?F(_,[M,ee]):ee()},leave(M,_){const N=String(e.key);if(M[nn]&&M[nn](!0),n.isUnmounting)return _();T(m,[M]);let x=!1;const G=M[We]=ee=>{x||(x=!0,_(),ee?T(O,[M]):T(S,[M]),M[We]=void 0,I[N]===e&&delete I[N])};I[N]=e,b?F(b,[M,G]):G()},clone(M){const _=hr(M,t,n,r,s);return s&&s(_),_}};return $}function Kn(e){if(qt(e))return e=Je(e),e.children=null,e}function is(e){if(!qt(e))return e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&K(n.default))return n.default()}}function bn(e,t){e.shapeFlag&6&&e.component?bn(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Oo(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;o!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function fu(e){K(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:s=200,timeout:o,suspensible:i=!0,onError:l}=e;let c=null,u,f=0;const h=()=>(f++,c=null,m()),m=()=>{let b;return c||(b=c=t().catch(S=>{if(S=S instanceof Error?S:new Error(String(S)),l)return new Promise((O,k)=>{l(S,()=>O(h()),()=>k(S),f+1)});throw S}).then(S=>b!==c&&c?c:(S&&(S.__esModule||S[Symbol.toStringTag]==="Module")&&(S=S.default),u=S,S)))};return Hr({name:"AsyncComponentWrapper",__asyncLoader:m,get __asyncResolved(){return u},setup(){const b=ae;if(u)return()=>Wn(u,b);const S=D=>{c=null,Wt(D,b,13,!r)};if(i&&b.suspense||Xt)return m().then(D=>()=>Wn(D,b)).catch(D=>(S(D),()=>r?le(r,{error:D}):null));const O=oe(!1),k=oe(),W=oe(!!s);return s&&setTimeout(()=>{W.value=!1},s),o!=null&&setTimeout(()=>{if(!O.value&&!k.value){const D=new Error(`Async component timed out after ${o}ms.`);S(D),k.value=D}},o),m().then(()=>{O.value=!0,b.parent&&qt(b.parent.vnode)&&(b.parent.effect.dirty=!0,In(b.parent.update))}).catch(D=>{S(D),k.value=D}),()=>{if(O.value&&u)return Wn(u,b);if(k.value&&r)return le(r,{error:k.value});if(n&&!W.value)return le(n)}}})}function Wn(e,t){const{ref:n,props:r,children:s,ce:o}=t.vnode,i=le(e,r,s);return i.ref=n,i.ce=o,delete t.vnode.ce,i}const qt=e=>e.type.__isKeepAlive;function Nl(e,t){Lo(e,"a",t)}function Fl(e,t){Lo(e,"da",t)}function Lo(e,t,n=ae){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Nn(t,r,n),n){let s=n.parent;for(;s&&s.parent;)qt(s.parent.vnode)&&$l(r,t,n,s),s=s.parent}}function $l(e,t,n,r){const s=Nn(t,e,r,!0);Fn(()=>{Cr(r[t],s)},n)}function Nn(e,t,n=ae,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{et();const l=Gt(n),c=Ae(t,n,e,i);return l(),tt(),c});return r?s.unshift(o):s.push(o),o}}const De=e=>(t,n=ae)=>{(!Xt||e==="sp")&&Nn(e,(...r)=>t(...r),n)},Hl=De("bm"),Tt=De("m"),jl=De("bu"),Vl=De("u"),Mo=De("bum"),Fn=De("um"),Dl=De("sp"),Ul=De("rtg"),Bl=De("rtc");function kl(e,t=ae){Nn("ec",e,t)}const Io="components";function du(e,t){return No(Io,e,!0,t)||e}const Po=Symbol.for("v-ndc");function hu(e){return ie(e)?No(Io,e,!1)||e:e||Po}function No(e,t,n=!0,r=!1){const s=ue||ae;if(s){const o=s.type;{const l=Fc(o,!1);if(l&&(l===t||l===Oe(t)||l===An(Oe(t))))return o}const i=ls(s[e]||o[e],t)||ls(s.appContext[e],t);return!i&&r?o:i}}function ls(e,t){return e&&(e[t]||e[Oe(t)]||e[An(Oe(t))])}function pu(e,t,n,r){let s;const o=n;if(B(e)||ie(e)){s=new Array(e.length);for(let i=0,l=e.length;it(i,l,void 0,o));else{const i=Object.keys(e);s=new Array(i.length);for(let l=0,c=i.length;lCn(t)?!(t.type===me||t.type===_e&&!Fo(t.children)):!0)?e:null}function mu(e,t){const n={};for(const r in e)n[/[A-Z]/.test(r)?`on:${r}`:fn(r)]=e[r];return n}const pr=e=>e?li(e)?Vn(e):pr(e.parent):null,It=fe(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>pr(e.parent),$root:e=>pr(e.root),$emit:e=>e.emit,$options:e=>jr(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,In(e.update)}),$nextTick:e=>e.n||(e.n=Mn.bind(e.proxy)),$watch:e=>yc.bind(e)}),qn=(e,t)=>e!==ne&&!e.__isScriptSetup&&z(e,t),Kl={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:l,appContext:c}=e;let u;if(t[0]!=="$"){const b=i[t];if(b!==void 0)switch(b){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(qn(r,t))return i[t]=1,r[t];if(s!==ne&&z(s,t))return i[t]=2,s[t];if((u=e.propsOptions[0])&&z(u,t))return i[t]=3,o[t];if(n!==ne&&z(n,t))return i[t]=4,n[t];gr&&(i[t]=0)}}const f=It[t];let h,m;if(f)return t==="$attrs"&&ve(e.attrs,"get",""),f(e);if((h=l.__cssModules)&&(h=h[t]))return h;if(n!==ne&&z(n,t))return i[t]=4,n[t];if(m=c.config.globalProperties,z(m,t))return m[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return qn(s,t)?(s[t]=n,!0):r!==ne&&z(r,t)?(r[t]=n,!0):z(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,propsOptions:o}},i){let l;return!!n[i]||e!==ne&&z(e,i)||qn(t,i)||(l=o[0])&&z(l,i)||z(r,i)||z(It,i)||z(s.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:z(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function yu(){return Wl().slots}function Wl(){const e=jn();return e.setupContext||(e.setupContext=ai(e))}function cs(e){return B(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let gr=!0;function ql(e){const t=jr(e),n=e.proxy,r=e.ctx;gr=!1,t.beforeCreate&&as(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:u,created:f,beforeMount:h,mounted:m,beforeUpdate:b,updated:S,activated:O,deactivated:k,beforeDestroy:W,beforeUnmount:D,destroyed:p,unmounted:y,render:I,renderTracked:T,renderTriggered:F,errorCaptured:$,serverPrefetch:M,expose:_,inheritAttrs:N,components:x,directives:G,filters:ee}=t;if(u&&Gl(u,r,null),i)for(const Y in i){const j=i[Y];K(j)&&(r[Y]=j.bind(n))}if(s){const Y=s.call(n,n);Z(Y)&&(e.data=On(Y))}if(gr=!0,o)for(const Y in o){const j=o[Y],He=K(j)?j.bind(n,n):K(j.get)?j.get.bind(n,n):Te,Yt=!K(j)&&K(j.set)?j.set.bind(n):Te,nt=se({get:He,set:Yt});Object.defineProperty(r,Y,{enumerable:!0,configurable:!0,get:()=>nt.value,set:Me=>nt.value=Me})}if(l)for(const Y in l)$o(l[Y],r,n,Y);if(c){const Y=K(c)?c.call(n):c;Reflect.ownKeys(Y).forEach(j=>{Zl(j,Y[j])})}f&&as(f,e,"c");function U(Y,j){B(j)?j.forEach(He=>Y(He.bind(n))):j&&Y(j.bind(n))}if(U(Hl,h),U(Tt,m),U(jl,b),U(Vl,S),U(Nl,O),U(Fl,k),U(kl,$),U(Bl,T),U(Ul,F),U(Mo,D),U(Fn,y),U(Dl,M),B(_))if(_.length){const Y=e.exposed||(e.exposed={});_.forEach(j=>{Object.defineProperty(Y,j,{get:()=>n[j],set:He=>n[j]=He})})}else e.exposed||(e.exposed={});I&&e.render===Te&&(e.render=I),N!=null&&(e.inheritAttrs=N),x&&(e.components=x),G&&(e.directives=G)}function Gl(e,t,n=Te){B(e)&&(e=mr(e));for(const r in e){const s=e[r];let o;Z(s)?"default"in s?o=Ct(s.from||r,s.default,!0):o=Ct(s.from||r):o=Ct(s),de(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function as(e,t,n){Ae(B(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function $o(e,t,n,r){const s=r.includes(".")?Qo(n,r):()=>n[r];if(ie(e)){const o=t[e];K(o)&&Fe(s,o)}else if(K(e))Fe(s,e.bind(n));else if(Z(e))if(B(e))e.forEach(o=>$o(o,t,n,r));else{const o=K(e.handler)?e.handler.bind(n):t[e.handler];K(o)&&Fe(s,o,e)}}function jr(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(u=>wn(c,u,i,!0)),wn(c,t,i)),Z(t)&&o.set(t,c),c}function wn(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&wn(e,o,n,!0),s&&s.forEach(i=>wn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=Xl[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const Xl={data:us,props:fs,emits:fs,methods:Lt,computed:Lt,beforeCreate:ge,created:ge,beforeMount:ge,mounted:ge,beforeUpdate:ge,updated:ge,beforeDestroy:ge,beforeUnmount:ge,destroyed:ge,unmounted:ge,activated:ge,deactivated:ge,errorCaptured:ge,serverPrefetch:ge,components:Lt,directives:Lt,watch:zl,provide:us,inject:Yl};function us(e,t){return t?e?function(){return fe(K(e)?e.call(this,this):e,K(t)?t.call(this,this):t)}:t:e}function Yl(e,t){return Lt(mr(e),mr(t))}function mr(e){if(B(e)){const t={};for(let n=0;n1)return n&&K(t)?t.call(r&&r.proxy):t}}const jo={},Vo=()=>Object.create(jo),Do=e=>Object.getPrototypeOf(e)===jo;function ec(e,t,n,r=!1){const s={},o=Vo();e.propsDefaults=Object.create(null),Uo(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:gl(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function tc(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=J(s),[c]=e.propsOptions;let u=!1;if((r||i>0)&&!(i&16)){if(i&8){const f=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[m,b]=Bo(h,t,!0);fe(i,m),b&&l.push(...b)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!o&&!c)return Z(e)&&r.set(e,yt),yt;if(B(o))for(let f=0;f-1,b[1]=O<0||S-1||z(b,"default"))&&l.push(h)}}}const u=[i,l];return Z(e)&&r.set(e,u),u}function ds(e){return e[0]!=="$"&&!vt(e)}function hs(e){return e===null?"null":typeof e=="function"?e.name||"":typeof e=="object"&&e.constructor&&e.constructor.name||""}function ps(e,t){return hs(e)===hs(t)}function gs(e,t){return B(t)?t.findIndex(n=>ps(n,e)):K(t)&&ps(t,e)?0:-1}const ko=e=>e[0]==="_"||e==="$stable",Vr=e=>B(e)?e.map(xe):[xe(e)],rc=(e,t,n)=>{if(t._n)return t;const r=Ll((...s)=>Vr(t(...s)),n);return r._c=!1,r},Ko=(e,t,n)=>{const r=e._ctx;for(const s in e){if(ko(s))continue;const o=e[s];if(K(o))t[s]=rc(s,o,r);else if(o!=null){const i=Vr(o);t[s]=()=>i}}},Wo=(e,t)=>{const n=Vr(t);e.slots.default=()=>n},qo=(e,t,n)=>{for(const r in t)(n||r!=="_")&&(e[r]=t[r])},sc=(e,t,n)=>{const r=e.slots=Vo();if(e.vnode.shapeFlag&32){const s=t._;s?(qo(r,t,n),n&&eo(r,"_",s,!0)):Ko(t,r)}else t&&Wo(e,t)},oc=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=ne;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:qo(s,t,n):(o=!t.$stable,Ko(t,s)),i=t}else t&&(Wo(e,t),i={default:1});if(o)for(const l in s)!ko(l)&&i[l]==null&&delete s[l]};function En(e,t,n,r,s=!1){if(B(e)){e.forEach((m,b)=>En(m,t&&(B(t)?t[b]:t),n,r,s));return}if(Et(r)&&!s)return;const o=r.shapeFlag&4?Vn(r.component):r.el,i=s?null:o,{i:l,r:c}=e,u=t&&t.r,f=l.refs===ne?l.refs={}:l.refs,h=l.setupState;if(u!=null&&u!==c&&(ie(u)?(f[u]=null,z(h,u)&&(h[u]=null)):de(u)&&(u.value=null)),K(c))Ye(c,l,12,[i,f]);else{const m=ie(c),b=de(c);if(m||b){const S=()=>{if(e.f){const O=m?z(h,c)?h[c]:f[c]:c.value;s?B(O)&&Cr(O,o):B(O)?O.includes(o)||O.push(o):m?(f[c]=[o],z(h,c)&&(h[c]=f[c])):(c.value=[o],e.k&&(f[e.k]=c.value))}else m?(f[c]=i,z(h,c)&&(h[c]=i)):b&&(c.value=i,e.k&&(f[e.k]=i))};i?(S.id=-1,ye(S,n)):S()}}}const Go=Symbol("_vte"),ic=e=>e.__isTeleport,Nt=e=>e&&(e.disabled||e.disabled===""),ms=e=>typeof SVGElement<"u"&&e instanceof SVGElement,ys=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,_r=(e,t)=>{const n=e&&e.to;return ie(n)?t?t(n):null:n},lc={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,u){const{mc:f,pc:h,pbc:m,o:{insert:b,querySelector:S,createText:O,createComment:k}}=u,W=Nt(t.props);let{shapeFlag:D,children:p,dynamicChildren:y}=t;if(e==null){const I=t.el=O(""),T=t.anchor=O(""),F=t.target=_r(t.props,S),$=t.targetStart=O(""),M=t.targetAnchor=O("");b(I,n,r),b(T,n,r),$[Go]=M,F&&(b($,F),b(M,F),i==="svg"||ms(F)?i="svg":(i==="mathml"||ys(F))&&(i="mathml"));const _=(N,x)=>{D&16&&f(p,N,x,s,o,i,l,c)};W?_(n,T):F&&_(F,M)}else{t.el=e.el,t.targetStart=e.targetStart;const I=t.anchor=e.anchor,T=t.target=e.target,F=t.targetAnchor=e.targetAnchor,$=Nt(e.props),M=$?n:T,_=$?I:F;if(i==="svg"||ms(T)?i="svg":(i==="mathml"||ys(T))&&(i="mathml"),y?(m(e.dynamicChildren,y,M,s,o,i,l),Dr(e,t,!0)):c||h(e,t,M,_,s,o,i,l,!1),W)$?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):rn(t,n,I,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const N=t.target=_r(t.props,S);N&&rn(t,N,null,u,0)}else $&&rn(t,T,F,u,1)}Xo(t)},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetStart:u,targetAnchor:f,target:h,props:m}=e;if(h&&(s(u),s(f)),o&&s(c),i&16){const b=o||!Nt(m);for(let S=0;S{_s||(console.error("Hydration completed but contains mismatches."),_s=!0)},ac=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",uc=e=>e.namespaceURI.includes("MathML"),sn=e=>{if(ac(e))return"svg";if(uc(e))return"mathml"},on=e=>e.nodeType===8;function fc(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:o,parentNode:i,remove:l,insert:c,createComment:u}}=e,f=(p,y)=>{if(!y.hasChildNodes()){n(null,p,y),_n(),y._vnode=p;return}h(y.firstChild,p,null,null,null),_n(),y._vnode=p},h=(p,y,I,T,F,$=!1)=>{$=$||!!y.dynamicChildren;const M=on(p)&&p.data==="[",_=()=>O(p,y,I,T,F,M),{type:N,ref:x,shapeFlag:G,patchFlag:ee}=y;let re=p.nodeType;y.el=p,ee===-2&&($=!1,y.dynamicChildren=null);let U=null;switch(N){case ut:re!==3?y.children===""?(c(y.el=s(""),i(p),p),U=p):U=_():(p.data!==y.children&&(gt(),p.data=y.children),U=o(p));break;case me:D(p)?(U=o(p),W(y.el=p.content.firstChild,p,I)):re!==8||M?U=_():U=o(p);break;case Ft:if(M&&(p=o(p),re=p.nodeType),re===1||re===3){U=p;const Y=!y.children.length;for(let j=0;j{$=$||!!y.dynamicChildren;const{type:M,props:_,patchFlag:N,shapeFlag:x,dirs:G,transition:ee}=y,re=M==="input"||M==="option";if(re||N!==-1){G&&Pe(y,null,I,"created");let U=!1;if(D(p)){U=zo(T,ee)&&I&&I.vnode.props&&I.vnode.props.appear;const j=p.content.firstChild;U&&ee.beforeEnter(j),W(j,p,I),y.el=p=j}if(x&16&&!(_&&(_.innerHTML||_.textContent))){let j=b(p.firstChild,y,p,I,T,F,$);for(;j;){gt();const He=j;j=j.nextSibling,l(He)}}else x&8&&p.textContent!==y.children&&(gt(),p.textContent=y.children);if(_){if(re||!$||N&48)for(const j in _)(re&&(j.endsWith("value")||j==="indeterminate")||Kt(j)&&!vt(j)||j[0]===".")&&r(p,j,null,_[j],void 0,I);else if(_.onClick)r(p,"onClick",null,_.onClick,void 0,I);else if(N&4&&bt(_.style))for(const j in _.style)_.style[j]}let Y;(Y=_&&_.onVnodeBeforeMount)&&Se(Y,I,y),G&&Pe(y,null,I,"beforeMount"),((Y=_&&_.onVnodeMounted)||G||U)&&ei(()=>{Y&&Se(Y,I,y),U&&ee.enter(p),G&&Pe(y,null,I,"mounted")},T)}return p.nextSibling},b=(p,y,I,T,F,$,M)=>{M=M||!!y.dynamicChildren;const _=y.children,N=_.length;for(let x=0;x{const{slotScopeIds:M}=y;M&&(F=F?F.concat(M):M);const _=i(p),N=b(o(p),y,_,I,T,F,$);return N&&on(N)&&N.data==="]"?o(y.anchor=N):(gt(),c(y.anchor=u("]"),_,N),N)},O=(p,y,I,T,F,$)=>{if(gt(),y.el=null,$){const N=k(p);for(;;){const x=o(p);if(x&&x!==N)l(x);else break}}const M=o(p),_=i(p);return l(p),n(null,y,_,M,I,T,sn(_),F),M},k=(p,y="[",I="]")=>{let T=0;for(;p;)if(p=o(p),p&&on(p)&&(p.data===y&&T++,p.data===I)){if(T===0)return o(p);T--}return p},W=(p,y,I)=>{const T=y.parentNode;T&&T.replaceChild(p,y);let F=I;for(;F;)F.vnode.el===y&&(F.vnode.el=F.subTree.el=p),F=F.parent},D=p=>p.nodeType===1&&p.tagName.toLowerCase()==="template";return[f,h]}const ye=ei;function dc(e){return Yo(e)}function hc(e){return Yo(e,fc)}function Yo(e,t){const n=to();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:u,setElementText:f,parentNode:h,nextSibling:m,setScopeId:b=Te,insertStaticContent:S}=e,O=(a,d,g,E=null,v=null,C=null,L=void 0,A=null,R=!!d.dynamicChildren)=>{if(a===d)return;a&&!lt(a,d)&&(E=zt(a),Me(a,v,C,!0),a=null),d.patchFlag===-2&&(R=!1,d.dynamicChildren=null);const{type:w,ref:P,shapeFlag:V}=d;switch(w){case ut:k(a,d,g,E);break;case me:W(a,d,g,E);break;case Ft:a==null&&D(d,g,E,L);break;case _e:x(a,d,g,E,v,C,L,A,R);break;default:V&1?I(a,d,g,E,v,C,L,A,R):V&6?G(a,d,g,E,v,C,L,A,R):(V&64||V&128)&&w.process(a,d,g,E,v,C,L,A,R,ht)}P!=null&&v&&En(P,a&&a.ref,C,d||a,!d)},k=(a,d,g,E)=>{if(a==null)r(d.el=l(d.children),g,E);else{const v=d.el=a.el;d.children!==a.children&&u(v,d.children)}},W=(a,d,g,E)=>{a==null?r(d.el=c(d.children||""),g,E):d.el=a.el},D=(a,d,g,E)=>{[a.el,a.anchor]=S(a.children,d,g,E,a.el,a.anchor)},p=({el:a,anchor:d},g,E)=>{let v;for(;a&&a!==d;)v=m(a),r(a,g,E),a=v;r(d,g,E)},y=({el:a,anchor:d})=>{let g;for(;a&&a!==d;)g=m(a),s(a),a=g;s(d)},I=(a,d,g,E,v,C,L,A,R)=>{d.type==="svg"?L="svg":d.type==="math"&&(L="mathml"),a==null?T(d,g,E,v,C,L,A,R):M(a,d,v,C,L,A,R)},T=(a,d,g,E,v,C,L,A)=>{let R,w;const{props:P,shapeFlag:V,transition:H,dirs:q}=a;if(R=a.el=i(a.type,C,P&&P.is,P),V&8?f(R,a.children):V&16&&$(a.children,R,null,E,v,Gn(a,C),L,A),q&&Pe(a,null,E,"created"),F(R,a,a.scopeId,L,E),P){for(const te in P)te!=="value"&&!vt(te)&&o(R,te,null,P[te],C,E);"value"in P&&o(R,"value",null,P.value,C),(w=P.onVnodeBeforeMount)&&Se(w,E,a)}q&&Pe(a,null,E,"beforeMount");const X=zo(v,H);X&&H.beforeEnter(R),r(R,d,g),((w=P&&P.onVnodeMounted)||X||q)&&ye(()=>{w&&Se(w,E,a),X&&H.enter(R),q&&Pe(a,null,E,"mounted")},v)},F=(a,d,g,E,v)=>{if(g&&b(a,g),E)for(let C=0;C{for(let w=R;w{const A=d.el=a.el;let{patchFlag:R,dynamicChildren:w,dirs:P}=d;R|=a.patchFlag&16;const V=a.props||ne,H=d.props||ne;let q;if(g&&rt(g,!1),(q=H.onVnodeBeforeUpdate)&&Se(q,g,d,a),P&&Pe(d,a,g,"beforeUpdate"),g&&rt(g,!0),(V.innerHTML&&H.innerHTML==null||V.textContent&&H.textContent==null)&&f(A,""),w?_(a.dynamicChildren,w,A,g,E,Gn(d,v),C):L||j(a,d,A,null,g,E,Gn(d,v),C,!1),R>0){if(R&16)N(A,V,H,g,v);else if(R&2&&V.class!==H.class&&o(A,"class",null,H.class,v),R&4&&o(A,"style",V.style,H.style,v),R&8){const X=d.dynamicProps;for(let te=0;te{q&&Se(q,g,d,a),P&&Pe(d,a,g,"updated")},E)},_=(a,d,g,E,v,C,L)=>{for(let A=0;A{if(d!==g){if(d!==ne)for(const C in d)!vt(C)&&!(C in g)&&o(a,C,d[C],null,v,E);for(const C in g){if(vt(C))continue;const L=g[C],A=d[C];L!==A&&C!=="value"&&o(a,C,A,L,v,E)}"value"in g&&o(a,"value",d.value,g.value,v)}},x=(a,d,g,E,v,C,L,A,R)=>{const w=d.el=a?a.el:l(""),P=d.anchor=a?a.anchor:l("");let{patchFlag:V,dynamicChildren:H,slotScopeIds:q}=d;q&&(A=A?A.concat(q):q),a==null?(r(w,g,E),r(P,g,E),$(d.children||[],g,P,v,C,L,A,R)):V>0&&V&64&&H&&a.dynamicChildren?(_(a.dynamicChildren,H,g,v,C,L,A),(d.key!=null||v&&d===v.subTree)&&Dr(a,d,!0)):j(a,d,g,P,v,C,L,A,R)},G=(a,d,g,E,v,C,L,A,R)=>{d.slotScopeIds=A,a==null?d.shapeFlag&512?v.ctx.activate(d,g,E,L,R):ee(d,g,E,v,C,L,R):re(a,d,R)},ee=(a,d,g,E,v,C,L)=>{const A=a.component=Mc(a,E,v);if(qt(a)&&(A.ctx.renderer=ht),Ic(A,!1,L),A.asyncDep){if(v&&v.registerDep(A,U,L),!a.el){const R=A.subTree=le(me);W(null,R,d,g)}}else U(A,a,d,g,v,C,L)},re=(a,d,g)=>{const E=d.component=a.component;if(Ec(a,d,g))if(E.asyncDep&&!E.asyncResolved){Y(E,d,g);return}else E.next=d,Al(E.update),E.effect.dirty=!0,E.update();else d.el=a.el,E.vnode=d},U=(a,d,g,E,v,C,L)=>{const A=()=>{if(a.isMounted){let{next:P,bu:V,u:H,parent:q,vnode:X}=a;{const pt=Jo(a);if(pt){P&&(P.el=X.el,Y(a,P,L)),pt.asyncDep.then(()=>{a.isUnmounted||A()});return}}let te=P,Q;rt(a,!1),P?(P.el=X.el,Y(a,P,L)):P=X,V&&dn(V),(Q=P.props&&P.props.onVnodeBeforeUpdate)&&Se(Q,q,P,X),rt(a,!0);const ce=Xn(a),Re=a.subTree;a.subTree=ce,O(Re,ce,h(Re.el),zt(Re),a,v,C),P.el=ce.el,te===null&&Cc(a,ce.el),H&&ye(H,v),(Q=P.props&&P.props.onVnodeUpdated)&&ye(()=>Se(Q,q,P,X),v)}else{let P;const{el:V,props:H}=d,{bm:q,m:X,parent:te}=a,Q=Et(d);if(rt(a,!1),q&&dn(q),!Q&&(P=H&&H.onVnodeBeforeMount)&&Se(P,te,d),rt(a,!0),V&&Bn){const ce=()=>{a.subTree=Xn(a),Bn(V,a.subTree,a,v,null)};Q?d.type.__asyncLoader().then(()=>!a.isUnmounted&&ce()):ce()}else{const ce=a.subTree=Xn(a);O(null,ce,g,E,a,v,C),d.el=ce.el}if(X&&ye(X,v),!Q&&(P=H&&H.onVnodeMounted)){const ce=d;ye(()=>Se(P,te,ce),v)}(d.shapeFlag&256||te&&Et(te.vnode)&&te.vnode.shapeFlag&256)&&a.a&&ye(a.a,v),a.isMounted=!0,d=g=E=null}},R=a.effect=new Ar(A,Te,()=>In(w),a.scope),w=a.update=()=>{R.dirty&&R.run()};w.i=a,w.id=a.uid,rt(a,!0),w()},Y=(a,d,g)=>{d.component=a;const E=a.vnode.props;a.vnode=d,a.next=null,tc(a,d.props,E,g),oc(a,d.children,g),et(),os(a),tt()},j=(a,d,g,E,v,C,L,A,R=!1)=>{const w=a&&a.children,P=a?a.shapeFlag:0,V=d.children,{patchFlag:H,shapeFlag:q}=d;if(H>0){if(H&128){Yt(w,V,g,E,v,C,L,A,R);return}else if(H&256){He(w,V,g,E,v,C,L,A,R);return}}q&8?(P&16&&At(w,v,C),V!==w&&f(g,V)):P&16?q&16?Yt(w,V,g,E,v,C,L,A,R):At(w,v,C,!0):(P&8&&f(g,""),q&16&&$(V,g,E,v,C,L,A,R))},He=(a,d,g,E,v,C,L,A,R)=>{a=a||yt,d=d||yt;const w=a.length,P=d.length,V=Math.min(w,P);let H;for(H=0;HP?At(a,v,C,!0,!1,V):$(d,g,E,v,C,L,A,R,V)},Yt=(a,d,g,E,v,C,L,A,R)=>{let w=0;const P=d.length;let V=a.length-1,H=P-1;for(;w<=V&&w<=H;){const q=a[w],X=d[w]=R?qe(d[w]):xe(d[w]);if(lt(q,X))O(q,X,g,null,v,C,L,A,R);else break;w++}for(;w<=V&&w<=H;){const q=a[V],X=d[H]=R?qe(d[H]):xe(d[H]);if(lt(q,X))O(q,X,g,null,v,C,L,A,R);else break;V--,H--}if(w>V){if(w<=H){const q=H+1,X=qH)for(;w<=V;)Me(a[w],v,C,!0),w++;else{const q=w,X=w,te=new Map;for(w=X;w<=H;w++){const be=d[w]=R?qe(d[w]):xe(d[w]);be.key!=null&&te.set(be.key,w)}let Q,ce=0;const Re=H-X+1;let pt=!1,Xr=0;const Rt=new Array(Re);for(w=0;w=Re){Me(be,v,C,!0);continue}let Ie;if(be.key!=null)Ie=te.get(be.key);else for(Q=X;Q<=H;Q++)if(Rt[Q-X]===0&<(be,d[Q])){Ie=Q;break}Ie===void 0?Me(be,v,C,!0):(Rt[Ie-X]=w+1,Ie>=Xr?Xr=Ie:pt=!0,O(be,d[Ie],g,null,v,C,L,A,R),ce++)}const Yr=pt?pc(Rt):yt;for(Q=Yr.length-1,w=Re-1;w>=0;w--){const be=X+w,Ie=d[be],zr=be+1{const{el:C,type:L,transition:A,children:R,shapeFlag:w}=a;if(w&6){nt(a.component.subTree,d,g,E);return}if(w&128){a.suspense.move(d,g,E);return}if(w&64){L.move(a,d,g,ht);return}if(L===_e){r(C,d,g);for(let V=0;VA.enter(C),v);else{const{leave:V,delayLeave:H,afterLeave:q}=A,X=()=>r(C,d,g),te=()=>{V(C,()=>{X(),q&&q()})};H?H(C,X,te):te()}else r(C,d,g)},Me=(a,d,g,E=!1,v=!1)=>{const{type:C,props:L,ref:A,children:R,dynamicChildren:w,shapeFlag:P,patchFlag:V,dirs:H,cacheIndex:q}=a;if(V===-2&&(v=!1),A!=null&&En(A,null,g,a,!0),q!=null&&(d.renderCache[q]=void 0),P&256){d.ctx.deactivate(a);return}const X=P&1&&H,te=!Et(a);let Q;if(te&&(Q=L&&L.onVnodeBeforeUnmount)&&Se(Q,d,a),P&6)Ii(a.component,g,E);else{if(P&128){a.suspense.unmount(g,E);return}X&&Pe(a,null,d,"beforeUnmount"),P&64?a.type.remove(a,d,g,ht,E):w&&!w.hasOnce&&(C!==_e||V>0&&V&64)?At(w,d,g,!1,!0):(C===_e&&V&384||!v&&P&16)&&At(R,d,g),E&&qr(a)}(te&&(Q=L&&L.onVnodeUnmounted)||X)&&ye(()=>{Q&&Se(Q,d,a),X&&Pe(a,null,d,"unmounted")},g)},qr=a=>{const{type:d,el:g,anchor:E,transition:v}=a;if(d===_e){Mi(g,E);return}if(d===Ft){y(a);return}const C=()=>{s(g),v&&!v.persisted&&v.afterLeave&&v.afterLeave()};if(a.shapeFlag&1&&v&&!v.persisted){const{leave:L,delayLeave:A}=v,R=()=>L(g,C);A?A(a.el,C,R):R()}else C()},Mi=(a,d)=>{let g;for(;a!==d;)g=m(a),s(a),a=g;s(d)},Ii=(a,d,g)=>{const{bum:E,scope:v,update:C,subTree:L,um:A,m:R,a:w}=a;vs(R),vs(w),E&&dn(E),v.stop(),C&&(C.active=!1,Me(L,a,d,g)),A&&ye(A,d),ye(()=>{a.isUnmounted=!0},d),d&&d.pendingBranch&&!d.isUnmounted&&a.asyncDep&&!a.asyncResolved&&a.suspenseId===d.pendingId&&(d.deps--,d.deps===0&&d.resolve())},At=(a,d,g,E=!1,v=!1,C=0)=>{for(let L=C;L{if(a.shapeFlag&6)return zt(a.component.subTree);if(a.shapeFlag&128)return a.suspense.next();const d=m(a.anchor||a.el),g=d&&d[Go];return g?m(g):d};let Dn=!1;const Gr=(a,d,g)=>{a==null?d._vnode&&Me(d._vnode,null,null,!0):O(d._vnode||null,a,d,null,null,null,g),Dn||(Dn=!0,os(),_n(),Dn=!1),d._vnode=a},ht={p:O,um:Me,m:nt,r:qr,mt:ee,mc:$,pc:j,pbc:_,n:zt,o:e};let Un,Bn;return t&&([Un,Bn]=t(ht)),{render:Gr,hydrate:Un,createApp:Ql(Gr,Un)}}function Gn({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function rt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function zo(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Dr(e,t,n=!1){const r=e.children,s=t.children;if(B(r)&&B(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Jo(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Jo(t)}function vs(e){if(e)for(let t=0;tCt(gc);function Ur(e,t){return $n(e,null,t)}function vu(e,t){return $n(e,null,{flush:"post"})}const ln={};function Fe(e,t,n){return $n(e,t,n)}function $n(e,t,{immediate:n,deep:r,flush:s,once:o,onTrack:i,onTrigger:l}=ne){if(t&&o){const T=t;t=(...F)=>{T(...F),I()}}const c=ae,u=T=>r===!0?T:Ge(T,r===!1?1:void 0);let f,h=!1,m=!1;if(de(e)?(f=()=>e.value,h=St(e)):bt(e)?(f=()=>u(e),h=!0):B(e)?(m=!0,h=e.some(T=>bt(T)||St(T)),f=()=>e.map(T=>{if(de(T))return T.value;if(bt(T))return u(T);if(K(T))return Ye(T,c,2)})):K(e)?t?f=()=>Ye(e,c,2):f=()=>(b&&b(),Ae(e,c,3,[S])):f=Te,t&&r){const T=f;f=()=>Ge(T())}let b,S=T=>{b=p.onStop=()=>{Ye(T,c,4),b=p.onStop=void 0}},O;if(Xt)if(S=Te,t?n&&Ae(t,c,3,[f(),m?[]:void 0,S]):f(),s==="sync"){const T=mc();O=T.__watcherHandles||(T.__watcherHandles=[])}else return Te;let k=m?new Array(e.length).fill(ln):ln;const W=()=>{if(!(!p.active||!p.dirty))if(t){const T=p.run();(r||h||(m?T.some((F,$)=>ze(F,k[$])):ze(T,k)))&&(b&&b(),Ae(t,c,3,[T,k===ln?void 0:m&&k[0]===ln?[]:k,S]),k=T)}else p.run()};W.allowRecurse=!!t;let D;s==="sync"?D=W:s==="post"?D=()=>ye(W,c&&c.suspense):(W.pre=!0,c&&(W.id=c.uid),D=()=>In(W));const p=new Ar(f,Te,D),y=oo(),I=()=>{p.stop(),y&&Cr(y.effects,p)};return t?n?W():k=p.run():s==="post"?ye(p.run.bind(p),c&&c.suspense):p.run(),O&&O.push(I),I}function yc(e,t,n){const r=this.proxy,s=ie(e)?e.includes(".")?Qo(r,e):()=>r[e]:e.bind(r,r);let o;K(t)?o=t:(o=t.handler,n=t);const i=Gt(this),l=$n(s,o.bind(r),n);return i(),l}function Qo(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;s{Ge(r,t,n)});else if(Zs(e)){for(const r in e)Ge(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Ge(e[r],t,n)}return e}const _c=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Oe(t)}Modifiers`]||e[`${Ze(t)}Modifiers`];function vc(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ne;let s=n;const o=t.startsWith("update:"),i=o&&_c(r,t.slice(7));i&&(i.trim&&(s=n.map(f=>ie(f)?f.trim():f)),i.number&&(s=n.map(cr)));let l,c=r[l=fn(t)]||r[l=fn(Oe(t))];!c&&o&&(c=r[l=fn(Ze(t))]),c&&Ae(c,e,6,s);const u=r[l+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Ae(u,e,6,s)}}function Zo(e,t,n=!1){const r=t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!K(e)){const c=u=>{const f=Zo(u,t,!0);f&&(l=!0,fe(i,f))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(Z(e)&&r.set(e,null),null):(B(o)?o.forEach(c=>i[c]=null):fe(i,o),Z(e)&&r.set(e,i),i)}function Hn(e,t){return!e||!Kt(t)?!1:(t=t.slice(2).replace(/Once$/,""),z(e,t[0].toLowerCase()+t.slice(1))||z(e,Ze(t))||z(e,t))}function Xn(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:u,renderCache:f,props:h,data:m,setupState:b,ctx:S,inheritAttrs:O}=e,k=vn(e);let W,D;try{if(n.shapeFlag&4){const y=s||r,I=y;W=xe(u.call(I,y,f,h,b,m,S)),D=l}else{const y=t;W=xe(y.length>1?y(h,{attrs:l,slots:i,emit:c}):y(h,null)),D=t.props?l:bc(l)}}catch(y){$t.length=0,Wt(y,e,1),W=le(me)}let p=W;if(D&&O!==!1){const y=Object.keys(D),{shapeFlag:I}=p;y.length&&I&7&&(o&&y.some(Er)&&(D=wc(D,o)),p=Je(p,D,!1,!0))}return n.dirs&&(p=Je(p,null,!1,!0),p.dirs=p.dirs?p.dirs.concat(n.dirs):n.dirs),n.transition&&(p.transition=n.transition),W=p,vn(k),W}const bc=e=>{let t;for(const n in e)(n==="class"||n==="style"||Kt(n))&&((t||(t={}))[n]=e[n]);return t},wc=(e,t)=>{const n={};for(const r in e)(!Er(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Ec(e,t,n){const{props:r,children:s,component:o}=e,{props:i,children:l,patchFlag:c}=t,u=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?bs(r,i,u):!!i;if(c&8){const f=t.dynamicProps;for(let h=0;he.__isSuspense;function ei(e,t){t&&t.pendingBranch?B(e)?t.effects.push(...e):t.effects.push(e):Rl(e)}const _e=Symbol.for("v-fgt"),ut=Symbol.for("v-txt"),me=Symbol.for("v-cmt"),Ft=Symbol.for("v-stc"),$t=[];let Ee=null;function ti(e=!1){$t.push(Ee=e?null:[])}function xc(){$t.pop(),Ee=$t[$t.length-1]||null}let Ut=1;function ws(e){Ut+=e,e<0&&Ee&&(Ee.hasOnce=!0)}function ni(e){return e.dynamicChildren=Ut>0?Ee||yt:null,xc(),Ut>0&&Ee&&Ee.push(e),e}function bu(e,t,n,r,s,o){return ni(oi(e,t,n,r,s,o,!0))}function ri(e,t,n,r,s){return ni(le(e,t,n,r,s,!0))}function Cn(e){return e?e.__v_isVNode===!0:!1}function lt(e,t){return e.type===t.type&&e.key===t.key}const si=({key:e})=>e??null,pn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?ie(e)||de(e)||K(e)?{i:ue,r:e,k:t,f:!!n}:e:null);function oi(e,t=null,n=null,r=0,s=null,o=e===_e?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&si(t),ref:t&&pn(t),scopeId:Pn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:ue};return l?(Br(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=ie(n)?8:16),Ut>0&&!i&&Ee&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Ee.push(c),c}const le=Tc;function Tc(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===Po)&&(e=me),Cn(e)){const l=Je(e,t,!0);return n&&Br(l,n),Ut>0&&!o&&Ee&&(l.shapeFlag&6?Ee[Ee.indexOf(e)]=l:Ee.push(l)),l.patchFlag=-2,l}if($c(e)&&(e=e.__vccOpts),t){t=Ac(t);let{class:l,style:c}=t;l&&!ie(l)&&(t.class=Tr(l)),Z(c)&&(_o(c)&&!B(c)&&(c=fe({},c)),t.style=xr(c))}const i=ie(e)?1:Sc(e)?128:ic(e)?64:Z(e)?4:K(e)?2:0;return oi(e,t,n,r,s,i,o,!0)}function Ac(e){return e?_o(e)||Do(e)?fe({},e):e:null}function Je(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,u=t?Rc(s||{},t):s,f={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&si(u),ref:t&&t.ref?n&&o?B(o)?o.concat(pn(t)):[o,pn(t)]:pn(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==_e?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Je(e.ssContent),ssFallback:e.ssFallback&&Je(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&bn(f,c.clone(f)),f}function ii(e=" ",t=0){return le(ut,null,e,t)}function wu(e,t){const n=le(Ft,null,e);return n.staticCount=t,n}function Eu(e="",t=!1){return t?(ti(),ri(me,null,e)):le(me,null,e)}function xe(e){return e==null||typeof e=="boolean"?le(me):B(e)?le(_e,null,e.slice()):typeof e=="object"?qe(e):le(ut,null,String(e))}function qe(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Je(e)}function Br(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(B(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Br(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Do(t)?t._ctx=ue:s===3&&ue&&(ue.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else K(t)?(t={default:t,_ctx:ue},n=32):(t=String(t),r&64?(n=16,t=[ii(t)]):n=8);e.children=t,e.shapeFlag|=n}function Rc(...e){const t={};for(let n=0;nae||ue;let Sn,vr;{const e=to(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};Sn=t("__VUE_INSTANCE_SETTERS__",n=>ae=n),vr=t("__VUE_SSR_SETTERS__",n=>Xt=n)}const Gt=e=>{const t=ae;return Sn(e),e.scope.on(),()=>{e.scope.off(),Sn(t)}},Es=()=>{ae&&ae.scope.off(),Sn(null)};function li(e){return e.vnode.shapeFlag&4}let Xt=!1;function Ic(e,t=!1,n=!1){t&&vr(t);const{props:r,children:s}=e.vnode,o=li(e);ec(e,r,o,t),sc(e,s,n);const i=o?Pc(e,t):void 0;return t&&vr(!1),i}function Pc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Kl);const{setup:r}=n;if(r){const s=e.setupContext=r.length>1?ai(e):null,o=Gt(e);et();const i=Ye(r,e,0,[e.props,s]);if(tt(),o(),Js(i)){if(i.then(Es,Es),t)return i.then(l=>{Cs(e,l,t)}).catch(l=>{Wt(l,e,0)});e.asyncDep=i}else Cs(e,i,t)}else ci(e,t)}function Cs(e,t,n){K(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Z(t)&&(e.setupState=Eo(t)),ci(e,n)}let Ss;function ci(e,t,n){const r=e.type;if(!e.render){if(!t&&Ss&&!r.render){const s=r.template||jr(e).template;if(s){const{isCustomElement:o,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:c}=r,u=fe(fe({isCustomElement:o,delimiters:l},i),c);r.render=Ss(s,u)}}e.render=r.render||Te}{const s=Gt(e);et();try{ql(e)}finally{tt(),s()}}}const Nc={get(e,t){return ve(e,"get",""),e[t]}};function ai(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Nc),slots:e.slots,emit:e.emit,expose:t}}function Vn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Eo(hn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in It)return It[n](e)},has(t,n){return n in t||n in It}})):e.proxy}function Fc(e,t=!0){return K(e)?e.displayName||e.name:e.name||t&&e.__name}function $c(e){return K(e)&&"__vccOpts"in e}const se=(e,t)=>ml(e,t,Xt);function br(e,t,n){const r=arguments.length;return r===2?Z(t)&&!B(t)?Cn(t)?le(e,null,[t]):le(e,t):le(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Cn(n)&&(n=[n]),le(e,t,n))}const Hc="3.4.33";/** +* @vue/runtime-dom v3.4.33 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const jc="http://www.w3.org/2000/svg",Vc="http://www.w3.org/1998/Math/MathML",je=typeof document<"u"?document:null,xs=je&&je.createElement("template"),Dc={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?je.createElementNS(jc,e):t==="mathml"?je.createElementNS(Vc,e):n?je.createElement(e,{is:n}):je.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>je.createTextNode(e),createComment:e=>je.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>je.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{xs.innerHTML=r==="svg"?`${e}`:r==="mathml"?`${e}`:e;const l=xs.content;if(r==="svg"||r==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Be="transition",Ot="animation",Bt=Symbol("_vtc"),ui=(e,{slots:t})=>br(Pl,Uc(e),t);ui.displayName="Transition";const fi={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};ui.props=fe({},To,fi);const st=(e,t=[])=>{B(e)?e.forEach(n=>n(...t)):e&&e(...t)},Ts=e=>e?B(e)?e.some(t=>t.length>1):e.length>1:!1;function Uc(e){const t={};for(const x in e)x in fi||(t[x]=e[x]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:u=i,appearToClass:f=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:m=`${n}-leave-active`,leaveToClass:b=`${n}-leave-to`}=e,S=Bc(s),O=S&&S[0],k=S&&S[1],{onBeforeEnter:W,onEnter:D,onEnterCancelled:p,onLeave:y,onLeaveCancelled:I,onBeforeAppear:T=W,onAppear:F=D,onAppearCancelled:$=p}=t,M=(x,G,ee)=>{ot(x,G?f:l),ot(x,G?u:i),ee&&ee()},_=(x,G)=>{x._isLeaving=!1,ot(x,h),ot(x,b),ot(x,m),G&&G()},N=x=>(G,ee)=>{const re=x?F:D,U=()=>M(G,x,ee);st(re,[G,U]),As(()=>{ot(G,x?c:o),ke(G,x?f:l),Ts(re)||Rs(G,r,O,U)})};return fe(t,{onBeforeEnter(x){st(W,[x]),ke(x,o),ke(x,i)},onBeforeAppear(x){st(T,[x]),ke(x,c),ke(x,u)},onEnter:N(!1),onAppear:N(!0),onLeave(x,G){x._isLeaving=!0;const ee=()=>_(x,G);ke(x,h),ke(x,m),Wc(),As(()=>{x._isLeaving&&(ot(x,h),ke(x,b),Ts(y)||Rs(x,r,k,ee))}),st(y,[x,ee])},onEnterCancelled(x){M(x,!1),st(p,[x])},onAppearCancelled(x){M(x,!0),st($,[x])},onLeaveCancelled(x){_(x),st(I,[x])}})}function Bc(e){if(e==null)return null;if(Z(e))return[Yn(e.enter),Yn(e.leave)];{const t=Yn(e);return[t,t]}}function Yn(e){return ji(e)}function ke(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Bt]||(e[Bt]=new Set)).add(t)}function ot(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Bt];n&&(n.delete(t),n.size||(e[Bt]=void 0))}function As(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let kc=0;function Rs(e,t,n,r){const s=e._endId=++kc,o=()=>{s===e._endId&&r()};if(n)return setTimeout(o,n);const{type:i,timeout:l,propCount:c}=Kc(e,t);if(!i)return r();const u=i+"end";let f=0;const h=()=>{e.removeEventListener(u,m),o()},m=b=>{b.target===e&&++f>=c&&h()};setTimeout(()=>{f(n[S]||"").split(", "),s=r(`${Be}Delay`),o=r(`${Be}Duration`),i=Os(s,o),l=r(`${Ot}Delay`),c=r(`${Ot}Duration`),u=Os(l,c);let f=null,h=0,m=0;t===Be?i>0&&(f=Be,h=i,m=o.length):t===Ot?u>0&&(f=Ot,h=u,m=c.length):(h=Math.max(i,u),f=h>0?i>u?Be:Ot:null,m=f?f===Be?o.length:c.length:0);const b=f===Be&&/\b(transform|all)(,|$)/.test(r(`${Be}Property`).toString());return{type:f,timeout:h,propCount:m,hasTransform:b}}function Os(e,t){for(;e.lengthLs(n)+Ls(e[r])))}function Ls(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Wc(){return document.body.offsetHeight}function qc(e,t,n){const r=e[Bt];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Ms=Symbol("_vod"),Gc=Symbol("_vsh"),Xc=Symbol(""),Yc=/(^|;)\s*display\s*:/;function zc(e,t,n){const r=e.style,s=ie(n);let o=!1;if(n&&!s){if(t)if(ie(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&gn(r,l,"")}else for(const i in t)n[i]==null&&gn(r,i,"");for(const i in n)i==="display"&&(o=!0),gn(r,i,n[i])}else if(s){if(t!==n){const i=r[Xc];i&&(n+=";"+i),r.cssText=n,o=Yc.test(n)}}else t&&e.removeAttribute("style");Ms in e&&(e[Ms]=o?r.display:"",e[Gc]&&(r.display="none"))}const Is=/\s*!important$/;function gn(e,t,n){if(B(n))n.forEach(r=>gn(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Jc(e,t);Is.test(n)?e.setProperty(Ze(r),n.replace(Is,""),"important"):e[r]=n}}const Ps=["Webkit","Moz","ms"],zn={};function Jc(e,t){const n=zn[t];if(n)return n;let r=Oe(t);if(r!=="filter"&&r in e)return zn[t]=r;r=An(r);for(let s=0;sJn||(na.then(()=>Jn=0),Jn=Date.now());function sa(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Ae(oa(r,n.value),t,5,[r])};return n.value=e,n.attached=ra(),n}function oa(e,t){if(B(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const js=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,ia=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?qc(e,r,i):t==="style"?zc(e,n,r):Kt(t)?Er(t)||ea(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):la(e,t,r,i))?(Qc(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Fs(e,t,r,i,o,t!=="value")):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Fs(e,t,r,i))};function la(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&js(t)&&K(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return js(t)&&ie(n)?!1:t in e}const Vs=e=>{const t=e.props["onUpdate:modelValue"]||!1;return B(t)?n=>dn(t,n):t};function ca(e){e.target.composing=!0}function Ds(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Qn=Symbol("_assign"),Cu={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Qn]=Vs(s);const o=r||s.props&&s.props.type==="number";mt(e,t?"change":"input",i=>{if(i.target.composing)return;let l=e.value;n&&(l=l.trim()),o&&(l=cr(l)),e[Qn](l)}),n&&mt(e,"change",()=>{e.value=e.value.trim()}),t||(mt(e,"compositionstart",ca),mt(e,"compositionend",Ds),mt(e,"change",Ds))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Qn]=Vs(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?cr(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},aa=["ctrl","shift","alt","meta"],ua={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>aa.some(n=>e[`${n}Key`]&&!t.includes(n))},Su=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(s,...o)=>{for(let i=0;i{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=s=>{if(!("key"in s))return;const o=Ze(s.key);if(t.some(i=>i===o||fa[i]===o))return e(s)})},di=fe({patchProp:ia},Dc);let Ht,Us=!1;function da(){return Ht||(Ht=dc(di))}function ha(){return Ht=Us?Ht:hc(di),Us=!0,Ht}const Tu=(...e)=>{const t=da().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=pi(r);if(!s)return;const o=t._component;!K(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.innerHTML="";const i=n(s,!1,hi(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t},Au=(...e)=>{const t=ha().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=pi(r);if(s)return n(s,!0,hi(s))},t};function hi(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function pi(e){return ie(e)?document.querySelector(e):e}const Ru=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},pa="modulepreload",ga=function(e){return"/GeometryOps.jl/dev/"+e},Bs={},Ou=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),i=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));s=Promise.all(n.map(l=>{if(l=ga(l),l in Bs)return;Bs[l]=!0;const c=l.endsWith(".css"),u=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${u}`))return;const f=document.createElement("link");if(f.rel=c?"stylesheet":pa,c||(f.as="script",f.crossOrigin=""),f.href=l,i&&f.setAttribute("nonce",i),document.head.appendChild(f),c)return new Promise((h,m)=>{f.addEventListener("load",h),f.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${l}`)))})}))}return s.then(()=>t()).catch(o=>{const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=o,window.dispatchEvent(i),!i.defaultPrevented)throw o})},ma=window.__VP_SITE_DATA__;function kr(e){return oo()?(Xi(e),!0):!1}function $e(e){return typeof e=="function"?e():wo(e)}const gi=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ya=Object.prototype.toString,_a=e=>ya.call(e)==="[object Object]",kt=()=>{},ks=va();function va(){var e,t;return gi&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function ba(e,t){function n(...r){return new Promise((s,o)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(s).catch(o)})}return n}const mi=e=>e();function wa(e,t={}){let n,r,s=kt;const o=l=>{clearTimeout(l),s(),s=kt};return l=>{const c=$e(e),u=$e(t.maxWait);return n&&o(n),c<=0||u!==void 0&&u<=0?(r&&(o(r),r=null),Promise.resolve(l())):new Promise((f,h)=>{s=t.rejectOnCancel?h:f,u&&!r&&(r=setTimeout(()=>{n&&o(n),r=null,f(l())},u)),n=setTimeout(()=>{r&&o(r),r=null,f(l())},c)})}}function Ea(e=mi){const t=oe(!0);function n(){t.value=!1}function r(){t.value=!0}const s=(...o)=>{t.value&&e(...o)};return{isActive:Ln(t),pause:n,resume:r,eventFilter:s}}function Ca(e){return jn()}function yi(...e){if(e.length!==1)return Cl(...e);const t=e[0];return typeof t=="function"?Ln(bl(()=>({get:t,set:kt}))):oe(t)}function _i(e,t,n={}){const{eventFilter:r=mi,...s}=n;return Fe(e,ba(r,t),s)}function Sa(e,t,n={}){const{eventFilter:r,...s}=n,{eventFilter:o,pause:i,resume:l,isActive:c}=Ea(r);return{stop:_i(e,t,{...s,eventFilter:o}),pause:i,resume:l,isActive:c}}function Kr(e,t=!0,n){Ca()?Tt(e,n):t?e():Mn(e)}function Lu(e,t,n={}){const{debounce:r=0,maxWait:s=void 0,...o}=n;return _i(e,t,{...o,eventFilter:wa(r,{maxWait:s})})}function Mu(e,t,n){let r;de(n)?r={evaluating:n}:r={};const{lazy:s=!1,evaluating:o=void 0,shallow:i=!0,onError:l=kt}=r,c=oe(!s),u=i?Fr(t):oe(t);let f=0;return Ur(async h=>{if(!c.value)return;f++;const m=f;let b=!1;o&&Promise.resolve().then(()=>{o.value=!0});try{const S=await e(O=>{h(()=>{o&&(o.value=!1),b||O()})});m===f&&(u.value=S)}catch(S){l(S)}finally{o&&m===f&&(o.value=!1),b=!0}}),s?se(()=>(c.value=!0,u.value)):u}function vi(e){var t;const n=$e(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Le=gi?window:void 0;function xt(...e){let t,n,r,s;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,s]=e,t=Le):[t,n,r,s]=e,!t)return kt;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const o=[],i=()=>{o.forEach(f=>f()),o.length=0},l=(f,h,m,b)=>(f.addEventListener(h,m,b),()=>f.removeEventListener(h,m,b)),c=Fe(()=>[vi(t),$e(s)],([f,h])=>{if(i(),!f)return;const m=_a(h)?{...h}:h;o.push(...n.flatMap(b=>r.map(S=>l(f,b,S,m))))},{immediate:!0,flush:"post"}),u=()=>{c(),i()};return kr(u),u}function xa(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function Iu(...e){let t,n,r={};e.length===3?(t=e[0],n=e[1],r=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],r=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:s=Le,eventName:o="keydown",passive:i=!1,dedupe:l=!1}=r,c=xa(t);return xt(s,o,f=>{f.repeat&&$e(l)||c(f)&&n(f)},i)}function Ta(){const e=oe(!1),t=jn();return t&&Tt(()=>{e.value=!0},t),e}function Aa(e){const t=Ta();return se(()=>(t.value,!!e()))}function bi(e,t={}){const{window:n=Le}=t,r=Aa(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let s;const o=oe(!1),i=u=>{o.value=u.matches},l=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",i):s.removeListener(i))},c=Ur(()=>{r.value&&(l(),s=n.matchMedia($e(e)),"addEventListener"in s?s.addEventListener("change",i):s.addListener(i),o.value=s.matches)});return kr(()=>{c(),l(),s=void 0}),o}const cn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},an="__vueuse_ssr_handlers__",Ra=Oa();function Oa(){return an in cn||(cn[an]=cn[an]||{}),cn[an]}function wi(e,t){return Ra[e]||t}function La(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Ma={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Ks="vueuse-storage";function Wr(e,t,n,r={}){var s;const{flush:o="pre",deep:i=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:u=!1,shallow:f,window:h=Le,eventFilter:m,onError:b=_=>{console.error(_)},initOnMounted:S}=r,O=(f?Fr:oe)(typeof t=="function"?t():t);if(!n)try{n=wi("getDefaultStorage",()=>{var _;return(_=Le)==null?void 0:_.localStorage})()}catch(_){b(_)}if(!n)return O;const k=$e(t),W=La(k),D=(s=r.serializer)!=null?s:Ma[W],{pause:p,resume:y}=Sa(O,()=>T(O.value),{flush:o,deep:i,eventFilter:m});h&&l&&Kr(()=>{xt(h,"storage",$),xt(h,Ks,M),S&&$()}),S||$();function I(_,N){h&&h.dispatchEvent(new CustomEvent(Ks,{detail:{key:e,oldValue:_,newValue:N,storageArea:n}}))}function T(_){try{const N=n.getItem(e);if(_==null)I(N,null),n.removeItem(e);else{const x=D.write(_);N!==x&&(n.setItem(e,x),I(N,x))}}catch(N){b(N)}}function F(_){const N=_?_.newValue:n.getItem(e);if(N==null)return c&&k!=null&&n.setItem(e,D.write(k)),k;if(!_&&u){const x=D.read(N);return typeof u=="function"?u(x,k):W==="object"&&!Array.isArray(x)?{...k,...x}:x}else return typeof N!="string"?N:D.read(N)}function $(_){if(!(_&&_.storageArea!==n)){if(_&&_.key==null){O.value=k;return}if(!(_&&_.key!==e)){p();try{(_==null?void 0:_.newValue)!==D.write(O.value)&&(O.value=F(_))}catch(N){b(N)}finally{_?Mn(y):y()}}}}function M(_){$(_.detail)}return O}function Ei(e){return bi("(prefers-color-scheme: dark)",e)}function Ia(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:s=Le,storage:o,storageKey:i="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:u,disableTransition:f=!0}=e,h={auto:"",light:"light",dark:"dark",...e.modes||{}},m=Ei({window:s}),b=se(()=>m.value?"dark":"light"),S=c||(i==null?yi(r):Wr(i,r,o,{window:s,listenToStorageChanges:l})),O=se(()=>S.value==="auto"?b.value:S.value),k=wi("updateHTMLAttrs",(y,I,T)=>{const F=typeof y=="string"?s==null?void 0:s.document.querySelector(y):vi(y);if(!F)return;let $;if(f&&($=s.document.createElement("style"),$.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),s.document.head.appendChild($)),I==="class"){const M=T.split(/\s/g);Object.values(h).flatMap(_=>(_||"").split(/\s/g)).filter(Boolean).forEach(_=>{M.includes(_)?F.classList.add(_):F.classList.remove(_)})}else F.setAttribute(I,T);f&&(s.getComputedStyle($).opacity,document.head.removeChild($))});function W(y){var I;k(t,n,(I=h[y])!=null?I:y)}function D(y){e.onChanged?e.onChanged(y,W):W(y)}Fe(O,D,{flush:"post",immediate:!0}),Kr(()=>D(O.value));const p=se({get(){return u?S.value:O.value},set(y){S.value=y}});try{return Object.assign(p,{store:S,system:b,state:O})}catch{return p}}function Pa(e={}){const{valueDark:t="dark",valueLight:n="",window:r=Le}=e,s=Ia({...e,onChanged:(l,c)=>{var u;e.onChanged?(u=e.onChanged)==null||u.call(e,l==="dark",c,l):c(l)},modes:{dark:t,light:n}}),o=se(()=>s.system?s.system.value:Ei({window:r}).value?"dark":"light");return se({get(){return s.value==="dark"},set(l){const c=l?"dark":"light";o.value===c?s.value="auto":s.value=c}})}function Zn(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function Pu(e,t,n={}){const{window:r=Le}=n;return Wr(e,t,r==null?void 0:r.localStorage,n)}function Ci(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const er=new WeakMap;function Nu(e,t=!1){const n=oe(t);let r=null,s="";Fe(yi(e),l=>{const c=Zn($e(l));if(c){const u=c;if(er.get(u)||er.set(u,u.style.overflow),u.style.overflow!=="hidden"&&(s=u.style.overflow),u.style.overflow==="hidden")return n.value=!0;if(n.value)return u.style.overflow="hidden"}},{immediate:!0});const o=()=>{const l=Zn($e(e));!l||n.value||(ks&&(r=xt(l,"touchmove",c=>{Na(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},i=()=>{const l=Zn($e(e));!l||!n.value||(ks&&(r==null||r()),l.style.overflow=s,er.delete(l),n.value=!1)};return kr(i),se({get(){return n.value},set(l){l?o():i()}})}function Fu(e,t,n={}){const{window:r=Le}=n;return Wr(e,t,r==null?void 0:r.sessionStorage,n)}function $u(e={}){const{window:t=Le,behavior:n="auto"}=e;if(!t)return{x:oe(0),y:oe(0)};const r=oe(t.scrollX),s=oe(t.scrollY),o=se({get(){return r.value},set(l){scrollTo({left:l,behavior:n})}}),i=se({get(){return s.value},set(l){scrollTo({top:l,behavior:n})}});return xt(t,"scroll",()=>{r.value=t.scrollX,s.value=t.scrollY},{capture:!1,passive:!0}),{x:o,y:i}}function Hu(e={}){const{window:t=Le,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:r=Number.POSITIVE_INFINITY,listenOrientation:s=!0,includeScrollbar:o=!0}=e,i=oe(n),l=oe(r),c=()=>{t&&(o?(i.value=t.innerWidth,l.value=t.innerHeight):(i.value=t.document.documentElement.clientWidth,l.value=t.document.documentElement.clientHeight))};if(c(),Kr(c),xt("resize",c,{passive:!0}),s){const u=bi("(orientation: portrait)");Fe(u,()=>c())}return{width:i,height:l}}var tr={BASE_URL:"/GeometryOps.jl/dev/",MODE:"production",DEV:!1,PROD:!0,SSR:!1},nr={};const Si=/^(?:[a-z]+:|\/\/)/i,Fa="vitepress-theme-appearance",$a=/#.*$/,Ha=/[?#].*$/,ja=/(?:(^|\/)index)?\.(?:md|html)$/,he=typeof document<"u",xi={relativePath:"404.md",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function Va(e,t,n=!1){if(t===void 0)return!1;if(e=Ws(`/${e}`),n)return new RegExp(t).test(e);if(Ws(t)!==e)return!1;const r=t.match($a);return r?(he?location.hash:"")===r[0]:!0}function Ws(e){return decodeURI(e).replace(Ha,"").replace(ja,"$1")}function Da(e){return Si.test(e)}function Ua(e,t){return Object.keys((e==null?void 0:e.locales)||{}).find(n=>n!=="root"&&!Da(n)&&Va(t,`/${n}/`,!0))||"root"}function Ba(e,t){var r,s,o,i,l,c,u;const n=Ua(e,t);return Object.assign({},e,{localeIndex:n,lang:((r=e.locales[n])==null?void 0:r.lang)??e.lang,dir:((s=e.locales[n])==null?void 0:s.dir)??e.dir,title:((o=e.locales[n])==null?void 0:o.title)??e.title,titleTemplate:((i=e.locales[n])==null?void 0:i.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:Ai(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(u=e.locales[n])==null?void 0:u.themeConfig}})}function Ti(e,t){const n=t.title||e.title,r=t.titleTemplate??e.titleTemplate;if(typeof r=="string"&&r.includes(":title"))return r.replace(/:title/g,n);const s=ka(e.title,r);return n===s.slice(3)?n:`${n}${s}`}function ka(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function Ka(e,t){const[n,r]=t;if(n!=="meta")return!1;const s=Object.entries(r)[0];return s==null?!1:e.some(([o,i])=>o===n&&i[s[0]]===s[1])}function Ai(e,t){return[...e.filter(n=>!Ka(t,n)),...t]}const Wa=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,qa=/^[a-z]:/i;function qs(e){const t=qa.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(Wa,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const rr=new Set;function Ga(e){if(rr.size===0){const n=typeof process=="object"&&(nr==null?void 0:nr.VITE_EXTRA_EXTENSIONS)||(tr==null?void 0:tr.VITE_EXTRA_EXTENSIONS)||"";("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip"+(n&&typeof n=="string"?","+n:"")).split(",").forEach(r=>rr.add(r))}const t=e.split(".").pop();return t==null||!rr.has(t.toLowerCase())}function ju(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const Xa=Symbol(),ft=Fr(ma);function Vu(e){const t=se(()=>Ba(ft.value,e.data.relativePath)),n=t.value.appearance,r=n==="force-dark"?oe(!0):n?Pa({storageKey:Fa,initialValue:()=>n==="dark"?"dark":"auto",...typeof n=="object"?n:{}}):oe(!1),s=oe(he?location.hash:"");return he&&window.addEventListener("hashchange",()=>{s.value=location.hash}),Fe(()=>e.data,()=>{s.value=he?location.hash:""}),{site:t,theme:se(()=>t.value.themeConfig),page:se(()=>e.data),frontmatter:se(()=>e.data.frontmatter),params:se(()=>e.data.params),lang:se(()=>t.value.lang),dir:se(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:se(()=>t.value.localeIndex||"root"),title:se(()=>Ti(t.value,e.data)),description:se(()=>e.data.description||t.value.description),isDark:r,hash:se(()=>s.value)}}function Ya(){const e=Ct(Xa);if(!e)throw new Error("vitepress data not properly injected in app");return e}function za(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function Gs(e){return Si.test(e)||!e.startsWith("/")?e:za(ft.value.base,e)}function Ja(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),he){const n="/GeometryOps.jl/dev/";t=qs(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let r=__VP_HASH_MAP__[t.toLowerCase()];if(r||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",r=__VP_HASH_MAP__[t.toLowerCase()]),!r)return null;t=`${n}assets/${t}.${r}.js`}else t=`./${qs(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let mn=[];function Du(e){mn.push(e),Fn(()=>{mn=mn.filter(t=>t!==e)})}function Qa(){let e=ft.value.scrollOffset,t=0,n=24;if(typeof e=="object"&&"padding"in e&&(n=e.padding,e=e.selector),typeof e=="number")t=e;else if(typeof e=="string")t=Xs(e,n);else if(Array.isArray(e))for(const r of e){const s=Xs(r,n);if(s){t=s;break}}return t}function Xs(e,t){const n=document.querySelector(e);if(!n)return 0;const r=n.getBoundingClientRect().bottom;return r<0?0:r+t}const Za=Symbol(),Ri="http://a.com",eu=()=>({path:"/",component:null,data:xi});function Uu(e,t){const n=On(eu()),r={route:n,go:s};async function s(l=he?location.href:"/"){var c,u;l=sr(l),await((c=r.onBeforeRouteChange)==null?void 0:c.call(r,l))!==!1&&(he&&l!==sr(location.href)&&(history.replaceState({scrollPosition:window.scrollY},""),history.pushState({},"",l)),await i(l),await((u=r.onAfterRouteChanged)==null?void 0:u.call(r,l)))}let o=null;async function i(l,c=0,u=!1){var m;if(await((m=r.onBeforePageLoad)==null?void 0:m.call(r,l))===!1)return;const f=new URL(l,Ri),h=o=f.pathname;try{let b=await e(h);if(!b)throw new Error(`Page not found: ${h}`);if(o===h){o=null;const{default:S,__pageData:O}=b;if(!S)throw new Error(`Invalid route component: ${S}`);n.path=he?h:Gs(h),n.component=hn(S),n.data=hn(O),he&&Mn(()=>{let k=ft.value.base+O.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!ft.value.cleanUrls&&!k.endsWith("/")&&(k+=".html"),k!==f.pathname&&(f.pathname=k,l=k+f.search+f.hash,history.replaceState({},"",l)),f.hash&&!c){let W=null;try{W=document.getElementById(decodeURIComponent(f.hash).slice(1))}catch(D){console.warn(D)}if(W){Ys(W,f.hash);return}}window.scrollTo(0,c)})}}catch(b){if(!/fetch|Page not found/.test(b.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(b),!u)try{const S=await fetch(ft.value.base+"hashmap.json");window.__VP_HASH_MAP__=await S.json(),await i(l,c,!0);return}catch{}if(o===h){o=null,n.path=he?h:Gs(h),n.component=t?hn(t):null;const S=he?h.replace(/(^|\/)$/,"$1index").replace(/(\.html)?$/,".md").replace(/^\//,""):"404.md";n.data={...xi,relativePath:S}}}}return he&&(history.state===null&&history.replaceState({},""),window.addEventListener("click",l=>{if(l.defaultPrevented||!(l.target instanceof Element)||l.target.closest("button")||l.button!==0||l.ctrlKey||l.shiftKey||l.altKey||l.metaKey)return;const c=l.target.closest("a");if(!c||c.closest(".vp-raw")||c.hasAttribute("download")||c.hasAttribute("target"))return;const u=c.getAttribute("href")??(c instanceof SVGAElement?c.getAttribute("xlink:href"):null);if(u==null)return;const{href:f,origin:h,pathname:m,hash:b,search:S}=new URL(u,c.baseURI),O=new URL(location.href);h===O.origin&&Ga(m)&&(l.preventDefault(),m===O.pathname&&S===O.search?(b!==O.hash&&(history.pushState({},"",f),window.dispatchEvent(new HashChangeEvent("hashchange",{oldURL:O.href,newURL:f}))),b?Ys(c,b,c.classList.contains("header-anchor")):window.scrollTo(0,0)):s(f))},{capture:!0}),window.addEventListener("popstate",async l=>{var c;l.state!==null&&(await i(sr(location.href),l.state&&l.state.scrollPosition||0),(c=r.onAfterRouteChanged)==null||c.call(r,location.href))}),window.addEventListener("hashchange",l=>{l.preventDefault()})),r}function tu(){const e=Ct(Za);if(!e)throw new Error("useRouter() is called without provider.");return e}function Oi(){return tu().route}function Ys(e,t,n=!1){let r=null;try{r=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(s){console.warn(s)}if(r){let s=function(){!n||Math.abs(i-window.scrollY)>window.innerHeight?window.scrollTo(0,i):window.scrollTo({left:0,top:i,behavior:"smooth"})};const o=parseInt(window.getComputedStyle(r).paddingTop,10),i=window.scrollY+r.getBoundingClientRect().top-Qa()+o;requestAnimationFrame(s)}}function sr(e){const t=new URL(e,Ri);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),ft.value.cleanUrls?t.pathname=t.pathname.replace(/\.html$/,""):!t.pathname.endsWith("/")&&!t.pathname.endsWith(".html")&&(t.pathname+=".html"),t.pathname+t.search+t.hash}const or=()=>mn.forEach(e=>e()),Bu=Hr({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=Oi(),{site:n}=Ya();return()=>br(e.as,n.value.contentProps??{style:{position:"relative"}},[t.component?br(t.component,{onVnodeMounted:or,onVnodeUpdated:or,onVnodeUnmounted:or}):"404 Page Not Found"])}}),ku=Hr({setup(e,{slots:t}){const n=oe(!1);return Tt(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function Ku(){he&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const r=(n=t.parentElement)==null?void 0:n.parentElement;if(!r)return;const s=Array.from(r.querySelectorAll("input")).indexOf(t);if(s<0)return;const o=r.querySelector(".blocks");if(!o)return;const i=Array.from(o.children).find(u=>u.classList.contains("active"));if(!i)return;const l=o.children[s];if(!l||i===l)return;i.classList.remove("active"),l.classList.add("active");const c=r==null?void 0:r.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function Wu(){if(he){const e=new WeakMap;window.addEventListener("click",t=>{var r;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const s=n.parentElement,o=(r=n.nextElementSibling)==null?void 0:r.nextElementSibling;if(!s||!o)return;const i=/language-(shellscript|shell|bash|sh|zsh)/.test(s.className),l=[".vp-copy-ignore",".diff.remove"],c=o.cloneNode(!0);c.querySelectorAll(l.join(",")).forEach(f=>f.remove());let u=c.textContent||"";i&&(u=u.replace(/^ *(\$|>) /gm,"").trim()),nu(u).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const f=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,f)})}})}}async function nu(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const r=document.getSelection(),s=r?r.rangeCount>0&&r.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),s&&(r.removeAllRanges(),r.addRange(s)),n&&n.focus()}}function qu(e,t){let n=!0,r=[];const s=o=>{if(n){n=!1,o.forEach(l=>{const c=ir(l);for(const u of document.head.children)if(u.isEqualNode(c)){r.push(u);return}});return}const i=o.map(ir);r.forEach((l,c)=>{const u=i.findIndex(f=>f==null?void 0:f.isEqualNode(l??null));u!==-1?delete i[u]:(l==null||l.remove(),delete r[c])}),i.forEach(l=>l&&document.head.appendChild(l)),r=[...r,...i].filter(Boolean)};Ur(()=>{const o=e.data,i=t.value,l=o&&o.description,c=o&&o.frontmatter.head||[],u=Ti(i,o);u!==document.title&&(document.title=u);const f=l||i.description;let h=document.querySelector("meta[name=description]");h?h.getAttribute("content")!==f&&h.setAttribute("content",f):ir(["meta",{name:"description",content:f}]),s(Ai(i.head,su(c)))})}function ir([e,t,n]){const r=document.createElement(e);for(const s in t)r.setAttribute(s,t[s]);return n&&(r.innerHTML=n),e==="script"&&!t.async&&(r.async=!1),r}function ru(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function su(e){return e.filter(t=>!ru(t))}const lr=new Set,Li=()=>document.createElement("link"),ou=e=>{const t=Li();t.rel="prefetch",t.href=e,document.head.appendChild(t)},iu=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let un;const lu=he&&(un=Li())&&un.relList&&un.relList.supports&&un.relList.supports("prefetch")?ou:iu;function Gu(){if(!he||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const r=()=>{n&&n.disconnect(),n=new IntersectionObserver(o=>{o.forEach(i=>{if(i.isIntersecting){const l=i.target;n.unobserve(l);const{pathname:c}=l;if(!lr.has(c)){lr.add(c);const u=Ja(c);u&&lu(u)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(o=>{const{hostname:i,pathname:l}=new URL(o.href instanceof SVGAnimatedString?o.href.animVal:o.href,o.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||o.target!=="_blank"&&i===location.hostname&&(l!==location.pathname?n.observe(o):lr.add(l))})})};Tt(r);const s=Oi();Fe(()=>s.path,r),Fn(()=>{n&&n.disconnect()})}export{xu as $,vu as A,Vl as B,Qa as C,du as D,pu as E,_e as F,Fr as G,Du as H,le as I,hu as J,Si as K,Oi as L,Rc as M,Ct as N,Hu as O,xr as P,Iu as Q,Mn as R,$u as S,ui as T,he as U,Ln as V,fu as W,Ou as X,Nu as Y,Zl as Z,Ru as _,ii as a,mu as a0,Mo as a1,Su as a2,yu as a3,On as a4,Cl as a5,br as a6,wu as a7,qu as a8,Za as a9,Vu as aa,Xa as ab,Bu as ac,ku as ad,ft as ae,Au as af,Uu as ag,Ja as ah,Gu as ai,Wu as aj,Ku as ak,vi as al,kr as am,Mu as an,Fu as ao,Pu as ap,Lu as aq,tu as ar,xt as as,uu as at,Cu as au,de as av,_u as aw,hn as ax,Tu as ay,ju as az,ri as b,bu as c,Hr as d,Eu as e,Ga as f,Gs as g,se as h,Da as i,oi as j,wo as k,au as l,Va as m,Tr as n,ti as o,cu as p,bi as q,gu as r,oe as s,Wi as t,Ya as u,Fe as v,Ll as w,Ur as x,Tt as y,Fn as z}; diff --git a/dev/assets/chunks/theme.CA8W1fhX.js b/dev/assets/chunks/theme.DpIXNgls.js similarity index 99% rename from dev/assets/chunks/theme.CA8W1fhX.js rename to dev/assets/chunks/theme.DpIXNgls.js index 04fda60d4..c90dfa8c3 100644 --- a/dev/assets/chunks/theme.CA8W1fhX.js +++ b/dev/assets/chunks/theme.DpIXNgls.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.10C0vCad.js","assets/chunks/framework.B24clL9_.js"])))=>i.map(i=>d[i]); -import{d as _,o as a,c as u,r as c,n as N,a as j,t as I,b as $,w as f,e as h,T as pe,_ as g,u as Je,i as Ye,f as Xe,g as fe,h as y,j as p,k as r,p as B,l as H,m as q,q as le,s as T,v as O,x as ee,y as R,z as he,A as _e,B as Qe,C as Ze,D as W,F as M,E,G as Te,H as te,I as k,J as D,K as we,L as ne,M as K,N as Y,O as xe,P as Ie,Q as ce,R as Ne,S as Me,U as oe,V as et,W as tt,X as nt,Y as Ae,Z as me,$ as ot,a0 as st,a1 as at,a2 as rt,a3 as Ce,a4 as it,a5 as lt,a6 as ct}from"./framework.B24clL9_.js";const ut=_({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(n){return(e,t)=>(a(),u("span",{class:N(["VPBadge",e.type])},[c(e.$slots,"default",{},()=>[j(I(e.text),1)])],2))}}),dt={key:0,class:"VPBackdrop"},vt=_({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(n){return(e,t)=>(a(),$(pe,{name:"fade"},{default:f(()=>[e.show?(a(),u("div",dt)):h("",!0)]),_:1}))}}),pt=g(vt,[["__scopeId","data-v-b06cdb19"]]),V=Je;function ft(n,e){let t,s=!1;return()=>{t&&clearTimeout(t),s?t=setTimeout(n,e):(n(),(s=!0)&&setTimeout(()=>s=!1,e))}}function ue(n){return/^\//.test(n)?n:`/${n}`}function be(n){const{pathname:e,search:t,hash:s,protocol:o}=new URL(n,"http://a.com");if(Ye(n)||n.startsWith("#")||!o.startsWith("http")||!Xe(e))return n;const{site:i}=V(),l=e.endsWith("/")||e.endsWith(".html")?n:n.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,i.value.cleanUrls?"":".html")}${t}${s}`);return fe(l)}function Q({correspondingLink:n=!1}={}){const{site:e,localeIndex:t,page:s,theme:o,hash:i}=V(),l=y(()=>{var v,m;return{label:(v=e.value.locales[t.value])==null?void 0:v.label,link:((m=e.value.locales[t.value])==null?void 0:m.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:y(()=>Object.entries(e.value.locales).flatMap(([v,m])=>l.value.label===m.label?[]:{text:m.label,link:ht(m.link||(v==="root"?"/":`/${v}/`),o.value.i18nRouting!==!1&&n,s.value.relativePath.slice(l.value.link.length-1),!e.value.cleanUrls)+i.value})),currentLang:l}}function ht(n,e,t,s){return e?n.replace(/\/$/,"")+ue(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,s?".html":"")):n}const _t=n=>(B("data-v-951cab6c"),n=n(),H(),n),mt={class:"NotFound"},bt={class:"code"},kt={class:"title"},$t=_t(()=>p("div",{class:"divider"},null,-1)),gt={class:"quote"},yt={class:"action"},Pt=["href","aria-label"],St=_({__name:"NotFound",setup(n){const{theme:e}=V(),{currentLang:t}=Q();return(s,o)=>{var i,l,d,v,m;return a(),u("div",mt,[p("p",bt,I(((i=r(e).notFound)==null?void 0:i.code)??"404"),1),p("h1",kt,I(((l=r(e).notFound)==null?void 0:l.title)??"PAGE NOT FOUND"),1),$t,p("blockquote",gt,I(((d=r(e).notFound)==null?void 0:d.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),p("div",yt,[p("a",{class:"link",href:r(fe)(r(t).link),"aria-label":((v=r(e).notFound)==null?void 0:v.linkLabel)??"go to home"},I(((m=r(e).notFound)==null?void 0:m.linkText)??"Take me home"),9,Pt)])])}}}),Vt=g(St,[["__scopeId","data-v-951cab6c"]]);function Be(n,e){if(Array.isArray(n))return Z(n);if(n==null)return[];e=ue(e);const t=Object.keys(n).sort((o,i)=>i.split("/").length-o.split("/").length).find(o=>e.startsWith(ue(o))),s=t?n[t]:[];return Array.isArray(s)?Z(s):Z(s.items,s.base)}function Lt(n){const e=[];let t=0;for(const s in n){const o=n[s];if(o.items){t=e.push(o);continue}e[t]||e.push({items:[]}),e[t].items.push(o)}return e}function Tt(n){const e=[];function t(s){for(const o of s)o.text&&o.link&&e.push({text:o.text,link:o.link,docFooterText:o.docFooterText}),o.items&&t(o.items)}return t(n),e}function de(n,e){return Array.isArray(e)?e.some(t=>de(n,t)):q(n,e.link)?!0:e.items?de(n,e.items):!1}function Z(n,e){return[...n].map(t=>{const s={...t},o=s.base||e;return o&&s.link&&(s.link=o+s.link),s.items&&(s.items=Z(s.items,o)),s})}function U(){const{frontmatter:n,page:e,theme:t}=V(),s=le("(min-width: 960px)"),o=T(!1),i=y(()=>{const C=t.value.sidebar,w=e.value.relativePath;return C?Be(C,w):[]}),l=T(i.value);O(i,(C,w)=>{JSON.stringify(C)!==JSON.stringify(w)&&(l.value=i.value)});const d=y(()=>n.value.sidebar!==!1&&l.value.length>0&&n.value.layout!=="home"),v=y(()=>m?n.value.aside==null?t.value.aside==="left":n.value.aside==="left":!1),m=y(()=>n.value.layout==="home"?!1:n.value.aside!=null?!!n.value.aside:t.value.aside!==!1),L=y(()=>d.value&&s.value),b=y(()=>d.value?Lt(l.value):[]);function P(){o.value=!0}function S(){o.value=!1}function A(){o.value?S():P()}return{isOpen:o,sidebar:l,sidebarGroups:b,hasSidebar:d,hasAside:m,leftAside:v,isSidebarEnabled:L,open:P,close:S,toggle:A}}function wt(n,e){let t;ee(()=>{t=n.value?document.activeElement:void 0}),R(()=>{window.addEventListener("keyup",s)}),he(()=>{window.removeEventListener("keyup",s)});function s(o){o.key==="Escape"&&n.value&&(e(),t==null||t.focus())}}function It(n){const{page:e,hash:t}=V(),s=T(!1),o=y(()=>n.value.collapsed!=null),i=y(()=>!!n.value.link),l=T(!1),d=()=>{l.value=q(e.value.relativePath,n.value.link)};O([e,n,t],d),R(d);const v=y(()=>l.value?!0:n.value.items?de(e.value.relativePath,n.value.items):!1),m=y(()=>!!(n.value.items&&n.value.items.length));ee(()=>{s.value=!!(o.value&&n.value.collapsed)}),_e(()=>{(l.value||v.value)&&(s.value=!1)});function L(){o.value&&(s.value=!s.value)}return{collapsed:s,collapsible:o,isLink:i,isActiveLink:l,hasActiveLink:v,hasChildren:m,toggle:L}}function Nt(){const{hasSidebar:n}=U(),e=le("(min-width: 960px)"),t=le("(min-width: 1280px)");return{isAsideEnabled:y(()=>!t.value&&!e.value?!1:n.value?t.value:e.value)}}const ve=[];function He(n){return typeof n.outline=="object"&&!Array.isArray(n.outline)&&n.outline.label||n.outlineTitle||"On this page"}function ke(n){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const s=Number(t.tagName[1]);return{element:t,title:Mt(t),link:"#"+t.id,level:s}});return At(e,n)}function Mt(n){let e="";for(const t of n.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function At(n,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[s,o]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;n=n.filter(l=>l.level>=s&&l.level<=o),ve.length=0;for(const{element:l,link:d}of n)ve.push({element:l,link:d});const i=[];e:for(let l=0;l=0;v--){const m=n[v];if(m.level{requestAnimationFrame(i),window.addEventListener("scroll",s)}),Qe(()=>{l(location.hash)}),he(()=>{window.removeEventListener("scroll",s)});function i(){if(!t.value)return;const d=window.scrollY,v=window.innerHeight,m=document.body.offsetHeight,L=Math.abs(d+v-m)<1,b=ve.map(({element:S,link:A})=>({link:A,top:Bt(S)})).filter(({top:S})=>!Number.isNaN(S)).sort((S,A)=>S.top-A.top);if(!b.length){l(null);return}if(d<1){l(null);return}if(L){l(b[b.length-1].link);return}let P=null;for(const{link:S,top:A}of b){if(A>d+Ze()+4)break;P=S}l(P)}function l(d){o&&o.classList.remove("active"),d==null?o=null:o=n.value.querySelector(`a[href="${decodeURIComponent(d)}"]`);const v=o;v?(v.classList.add("active"),e.value.style.top=v.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Bt(n){let e=0;for(;n!==document.body;){if(n===null)return NaN;e+=n.offsetTop,n=n.offsetParent}return e}const Ht=["href","title"],Et=_({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(n){function e({target:t}){const s=t.href.split("#")[1],o=document.getElementById(decodeURIComponent(s));o==null||o.focus({preventScroll:!0})}return(t,s)=>{const o=W("VPDocOutlineItem",!0);return a(),u("ul",{class:N(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),u(M,null,E(t.headers,({children:i,link:l,title:d})=>(a(),u("li",null,[p("a",{class:"outline-link",href:l,onClick:e,title:d},I(d),9,Ht),i!=null&&i.length?(a(),$(o,{key:0,headers:i},null,8,["headers"])):h("",!0)]))),256))],2)}}}),Ee=g(Et,[["__scopeId","data-v-3f927ebe"]]),Dt={class:"content"},Ft={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Ot=_({__name:"VPDocAsideOutline",setup(n){const{frontmatter:e,theme:t}=V(),s=Te([]);te(()=>{s.value=ke(e.value.outline??t.value.outline)});const o=T(),i=T();return Ct(o,i),(l,d)=>(a(),u("nav",{"aria-labelledby":"doc-outline-aria-label",class:N(["VPDocAsideOutline",{"has-outline":s.value.length>0}]),ref_key:"container",ref:o},[p("div",Dt,[p("div",{class:"outline-marker",ref_key:"marker",ref:i},null,512),p("div",Ft,I(r(He)(r(t))),1),k(Ee,{headers:s.value,root:!0},null,8,["headers"])])],2))}}),jt=g(Ot,[["__scopeId","data-v-b38bf2ff"]]),Ut={class:"VPDocAsideCarbonAds"},Gt=_({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(n){const e=()=>null;return(t,s)=>(a(),u("div",Ut,[k(r(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),zt=n=>(B("data-v-6d7b3c46"),n=n(),H(),n),Kt={class:"VPDocAside"},Rt=zt(()=>p("div",{class:"spacer"},null,-1)),qt=_({__name:"VPDocAside",setup(n){const{theme:e}=V();return(t,s)=>(a(),u("div",Kt,[c(t.$slots,"aside-top",{},void 0,!0),c(t.$slots,"aside-outline-before",{},void 0,!0),k(jt),c(t.$slots,"aside-outline-after",{},void 0,!0),Rt,c(t.$slots,"aside-ads-before",{},void 0,!0),r(e).carbonAds?(a(),$(Gt,{key:0,"carbon-ads":r(e).carbonAds},null,8,["carbon-ads"])):h("",!0),c(t.$slots,"aside-ads-after",{},void 0,!0),c(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Wt=g(qt,[["__scopeId","data-v-6d7b3c46"]]);function Jt(){const{theme:n,page:e}=V();return y(()=>{const{text:t="Edit this page",pattern:s=""}=n.value.editLink||{};let o;return typeof s=="function"?o=s(e.value):o=s.replace(/:path/g,e.value.filePath),{url:o,text:t}})}function Yt(){const{page:n,theme:e,frontmatter:t}=V();return y(()=>{var m,L,b,P,S,A,C,w;const s=Be(e.value.sidebar,n.value.relativePath),o=Tt(s),i=Xt(o,G=>G.link.replace(/[?#].*$/,"")),l=i.findIndex(G=>q(n.value.relativePath,G.link)),d=((m=e.value.docFooter)==null?void 0:m.prev)===!1&&!t.value.prev||t.value.prev===!1,v=((L=e.value.docFooter)==null?void 0:L.next)===!1&&!t.value.next||t.value.next===!1;return{prev:d?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((b=i[l-1])==null?void 0:b.docFooterText)??((P=i[l-1])==null?void 0:P.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((S=i[l-1])==null?void 0:S.link)},next:v?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((A=i[l+1])==null?void 0:A.docFooterText)??((C=i[l+1])==null?void 0:C.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((w=i[l+1])==null?void 0:w.link)}}})}function Xt(n,e){const t=new Set;return n.filter(s=>{const o=e(s);return t.has(o)?!1:t.add(o)})}const F=_({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(n){const e=n,t=y(()=>e.tag??(e.href?"a":"span")),s=y(()=>e.href&&we.test(e.href)||e.target==="_blank");return(o,i)=>(a(),$(D(t.value),{class:N(["VPLink",{link:o.href,"vp-external-link-icon":s.value,"no-icon":o.noIcon}]),href:o.href?r(be)(o.href):void 0,target:o.target??(s.value?"_blank":void 0),rel:o.rel??(s.value?"noreferrer":void 0)},{default:f(()=>[c(o.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Qt={class:"VPLastUpdated"},Zt=["datetime"],xt=_({__name:"VPDocFooterLastUpdated",setup(n){const{theme:e,page:t,lang:s}=V(),o=y(()=>new Date(t.value.lastUpdated)),i=y(()=>o.value.toISOString()),l=T("");return R(()=>{ee(()=>{var d,v,m;l.value=new Intl.DateTimeFormat((v=(d=e.value.lastUpdated)==null?void 0:d.formatOptions)!=null&&v.forceLocale?s.value:void 0,((m=e.value.lastUpdated)==null?void 0:m.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(o.value)})}),(d,v)=>{var m;return a(),u("p",Qt,[j(I(((m=r(e).lastUpdated)==null?void 0:m.text)||r(e).lastUpdatedText||"Last updated")+": ",1),p("time",{datetime:i.value},I(l.value),9,Zt)])}}}),en=g(xt,[["__scopeId","data-v-475f71b8"]]),De=n=>(B("data-v-4f9813fa"),n=n(),H(),n),tn={key:0,class:"VPDocFooter"},nn={key:0,class:"edit-info"},on={key:0,class:"edit-link"},sn=De(()=>p("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),an={key:1,class:"last-updated"},rn={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},ln=De(()=>p("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),cn={class:"pager"},un=["innerHTML"],dn=["innerHTML"],vn={class:"pager"},pn=["innerHTML"],fn=["innerHTML"],hn=_({__name:"VPDocFooter",setup(n){const{theme:e,page:t,frontmatter:s}=V(),o=Jt(),i=Yt(),l=y(()=>e.value.editLink&&s.value.editLink!==!1),d=y(()=>t.value.lastUpdated),v=y(()=>l.value||d.value||i.value.prev||i.value.next);return(m,L)=>{var b,P,S,A;return v.value?(a(),u("footer",tn,[c(m.$slots,"doc-footer-before",{},void 0,!0),l.value||d.value?(a(),u("div",nn,[l.value?(a(),u("div",on,[k(F,{class:"edit-link-button",href:r(o).url,"no-icon":!0},{default:f(()=>[sn,j(" "+I(r(o).text),1)]),_:1},8,["href"])])):h("",!0),d.value?(a(),u("div",an,[k(en)])):h("",!0)])):h("",!0),(b=r(i).prev)!=null&&b.link||(P=r(i).next)!=null&&P.link?(a(),u("nav",rn,[ln,p("div",cn,[(S=r(i).prev)!=null&&S.link?(a(),$(F,{key:0,class:"pager-link prev",href:r(i).prev.link},{default:f(()=>{var C;return[p("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.prev)||"Previous page"},null,8,un),p("span",{class:"title",innerHTML:r(i).prev.text},null,8,dn)]}),_:1},8,["href"])):h("",!0)]),p("div",vn,[(A=r(i).next)!=null&&A.link?(a(),$(F,{key:0,class:"pager-link next",href:r(i).next.link},{default:f(()=>{var C;return[p("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.next)||"Next page"},null,8,pn),p("span",{class:"title",innerHTML:r(i).next.text},null,8,fn)]}),_:1},8,["href"])):h("",!0)])])):h("",!0)])):h("",!0)}}}),_n=g(hn,[["__scopeId","data-v-4f9813fa"]]),mn=n=>(B("data-v-83890dd9"),n=n(),H(),n),bn={class:"container"},kn=mn(()=>p("div",{class:"aside-curtain"},null,-1)),$n={class:"aside-container"},gn={class:"aside-content"},yn={class:"content"},Pn={class:"content-container"},Sn={class:"main"},Vn=_({__name:"VPDoc",setup(n){const{theme:e}=V(),t=ne(),{hasSidebar:s,hasAside:o,leftAside:i}=U(),l=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(d,v)=>{const m=W("Content");return a(),u("div",{class:N(["VPDoc",{"has-sidebar":r(s),"has-aside":r(o)}])},[c(d.$slots,"doc-top",{},void 0,!0),p("div",bn,[r(o)?(a(),u("div",{key:0,class:N(["aside",{"left-aside":r(i)}])},[kn,p("div",$n,[p("div",gn,[k(Wt,null,{"aside-top":f(()=>[c(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):h("",!0),p("div",yn,[p("div",Pn,[c(d.$slots,"doc-before",{},void 0,!0),p("main",Sn,[k(m,{class:N(["vp-doc",[l.value,r(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),k(_n,null,{"doc-footer-before":f(()=>[c(d.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(d.$slots,"doc-after",{},void 0,!0)])])]),c(d.$slots,"doc-bottom",{},void 0,!0)],2)}}}),Ln=g(Vn,[["__scopeId","data-v-83890dd9"]]),Tn=_({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(n){const e=n,t=y(()=>e.href&&we.test(e.href)),s=y(()=>e.tag||e.href?"a":"button");return(o,i)=>(a(),$(D(s.value),{class:N(["VPButton",[o.size,o.theme]]),href:o.href?r(be)(o.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:f(()=>[j(I(o.text),1)]),_:1},8,["class","href","target","rel"]))}}),wn=g(Tn,[["__scopeId","data-v-14206e74"]]),In=["src","alt"],Nn=_({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(n){return(e,t)=>{const s=W("VPImage",!0);return e.image?(a(),u(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),u("img",K({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:r(fe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,In)):(a(),u(M,{key:1},[k(s,K({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),k(s,K({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):h("",!0)}}}),x=g(Nn,[["__scopeId","data-v-35a7d0b8"]]),Mn=n=>(B("data-v-955009fc"),n=n(),H(),n),An={class:"container"},Cn={class:"main"},Bn={key:0,class:"name"},Hn=["innerHTML"],En=["innerHTML"],Dn=["innerHTML"],Fn={key:0,class:"actions"},On={key:0,class:"image"},jn={class:"image-container"},Un=Mn(()=>p("div",{class:"image-bg"},null,-1)),Gn=_({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(n){const e=Y("hero-image-slot-exists");return(t,s)=>(a(),u("div",{class:N(["VPHero",{"has-image":t.image||r(e)}])},[p("div",An,[p("div",Cn,[c(t.$slots,"home-hero-info-before",{},void 0,!0),c(t.$slots,"home-hero-info",{},()=>[t.name?(a(),u("h1",Bn,[p("span",{innerHTML:t.name,class:"clip"},null,8,Hn)])):h("",!0),t.text?(a(),u("p",{key:1,innerHTML:t.text,class:"text"},null,8,En)):h("",!0),t.tagline?(a(),u("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Dn)):h("",!0)],!0),c(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),u("div",Fn,[(a(!0),u(M,null,E(t.actions,o=>(a(),u("div",{key:o.link,class:"action"},[k(wn,{tag:"a",size:"medium",theme:o.theme,text:o.text,href:o.link,target:o.target,rel:o.rel},null,8,["theme","text","href","target","rel"])]))),128))])):h("",!0),c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||r(e)?(a(),u("div",On,[p("div",jn,[Un,c(t.$slots,"home-hero-image",{},()=>[t.image?(a(),$(x,{key:0,class:"image-src",image:t.image},null,8,["image"])):h("",!0)],!0)])])):h("",!0)])],2))}}),zn=g(Gn,[["__scopeId","data-v-955009fc"]]),Kn=_({__name:"VPHomeHero",setup(n){const{frontmatter:e}=V();return(t,s)=>r(e).hero?(a(),$(zn,{key:0,class:"VPHomeHero",name:r(e).hero.name,text:r(e).hero.text,tagline:r(e).hero.tagline,image:r(e).hero.image,actions:r(e).hero.actions},{"home-hero-info-before":f(()=>[c(t.$slots,"home-hero-info-before")]),"home-hero-info":f(()=>[c(t.$slots,"home-hero-info")]),"home-hero-info-after":f(()=>[c(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":f(()=>[c(t.$slots,"home-hero-actions-after")]),"home-hero-image":f(()=>[c(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):h("",!0)}}),Rn=n=>(B("data-v-f5e9645b"),n=n(),H(),n),qn={class:"box"},Wn={key:0,class:"icon"},Jn=["innerHTML"],Yn=["innerHTML"],Xn=["innerHTML"],Qn={key:4,class:"link-text"},Zn={class:"link-text-value"},xn=Rn(()=>p("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),eo=_({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(n){return(e,t)=>(a(),$(F,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:f(()=>[p("article",qn,[typeof e.icon=="object"&&e.icon.wrap?(a(),u("div",Wn,[k(x,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),$(x,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),u("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Jn)):h("",!0),p("h2",{class:"title",innerHTML:e.title},null,8,Yn),e.details?(a(),u("p",{key:3,class:"details",innerHTML:e.details},null,8,Xn)):h("",!0),e.linkText?(a(),u("div",Qn,[p("p",Zn,[j(I(e.linkText)+" ",1),xn])])):h("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),to=g(eo,[["__scopeId","data-v-f5e9645b"]]),no={key:0,class:"VPFeatures"},oo={class:"container"},so={class:"items"},ao=_({__name:"VPFeatures",props:{features:{}},setup(n){const e=n,t=y(()=>{const s=e.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s>3)return"grid-4"}else return});return(s,o)=>s.features?(a(),u("div",no,[p("div",oo,[p("div",so,[(a(!0),u(M,null,E(s.features,i=>(a(),u("div",{key:i.title,class:N(["item",[t.value]])},[k(to,{icon:i.icon,title:i.title,details:i.details,link:i.link,"link-text":i.linkText,rel:i.rel,target:i.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):h("",!0)}}),ro=g(ao,[["__scopeId","data-v-d0a190d7"]]),io=_({__name:"VPHomeFeatures",setup(n){const{frontmatter:e}=V();return(t,s)=>r(e).features?(a(),$(ro,{key:0,class:"VPHomeFeatures",features:r(e).features},null,8,["features"])):h("",!0)}}),lo=_({__name:"VPHomeContent",setup(n){const{width:e}=xe({initialWidth:0,includeScrollbar:!1});return(t,s)=>(a(),u("div",{class:"vp-doc container",style:Ie(r(e)?{"--vp-offset":`calc(50% - ${r(e)/2}px)`}:{})},[c(t.$slots,"default",{},void 0,!0)],4))}}),co=g(lo,[["__scopeId","data-v-7a48a447"]]),uo={class:"VPHome"},vo=_({__name:"VPHome",setup(n){const{frontmatter:e}=V();return(t,s)=>{const o=W("Content");return a(),u("div",uo,[c(t.$slots,"home-hero-before",{},void 0,!0),k(Kn,null,{"home-hero-info-before":f(()=>[c(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(t.$slots,"home-hero-after",{},void 0,!0),c(t.$slots,"home-features-before",{},void 0,!0),k(io),c(t.$slots,"home-features-after",{},void 0,!0),r(e).markdownStyles!==!1?(a(),$(co,{key:0},{default:f(()=>[k(o)]),_:1})):(a(),$(o,{key:1}))])}}}),po=g(vo,[["__scopeId","data-v-cbb6ec48"]]),fo={},ho={class:"VPPage"};function _o(n,e){const t=W("Content");return a(),u("div",ho,[c(n.$slots,"page-top"),k(t),c(n.$slots,"page-bottom")])}const mo=g(fo,[["render",_o]]),bo=_({__name:"VPContent",setup(n){const{page:e,frontmatter:t}=V(),{hasSidebar:s}=U();return(o,i)=>(a(),u("div",{class:N(["VPContent",{"has-sidebar":r(s),"is-home":r(t).layout==="home"}]),id:"VPContent"},[r(e).isNotFound?c(o.$slots,"not-found",{key:0},()=>[k(Vt)],!0):r(t).layout==="page"?(a(),$(mo,{key:1},{"page-top":f(()=>[c(o.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(o.$slots,"page-bottom",{},void 0,!0)]),_:3})):r(t).layout==="home"?(a(),$(po,{key:2},{"home-hero-before":f(()=>[c(o.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(o.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(o.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(o.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(o.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(o.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(o.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(o.$slots,"home-features-after",{},void 0,!0)]),_:3})):r(t).layout&&r(t).layout!=="doc"?(a(),$(D(r(t).layout),{key:3})):(a(),$(Ln,{key:4},{"doc-top":f(()=>[c(o.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(o.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":f(()=>[c(o.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(o.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(o.$slots,"doc-after",{},void 0,!0)]),"aside-top":f(()=>[c(o.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":f(()=>[c(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(o.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":f(()=>[c(o.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),ko=g(bo,[["__scopeId","data-v-91765379"]]),$o={class:"container"},go=["innerHTML"],yo=["innerHTML"],Po=_({__name:"VPFooter",setup(n){const{theme:e,frontmatter:t}=V(),{hasSidebar:s}=U();return(o,i)=>r(e).footer&&r(t).footer!==!1?(a(),u("footer",{key:0,class:N(["VPFooter",{"has-sidebar":r(s)}])},[p("div",$o,[r(e).footer.message?(a(),u("p",{key:0,class:"message",innerHTML:r(e).footer.message},null,8,go)):h("",!0),r(e).footer.copyright?(a(),u("p",{key:1,class:"copyright",innerHTML:r(e).footer.copyright},null,8,yo)):h("",!0)])],2)):h("",!0)}}),So=g(Po,[["__scopeId","data-v-c970a860"]]);function Vo(){const{theme:n,frontmatter:e}=V(),t=Te([]),s=y(()=>t.value.length>0);return te(()=>{t.value=ke(e.value.outline??n.value.outline)}),{headers:t,hasLocalNav:s}}const Lo=n=>(B("data-v-bc9dc845"),n=n(),H(),n),To={class:"menu-text"},wo=Lo(()=>p("span",{class:"vpi-chevron-right icon"},null,-1)),Io={class:"header"},No={class:"outline"},Mo=_({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(n){const e=n,{theme:t}=V(),s=T(!1),o=T(0),i=T(),l=T();function d(b){var P;(P=i.value)!=null&&P.contains(b.target)||(s.value=!1)}O(s,b=>{if(b){document.addEventListener("click",d);return}document.removeEventListener("click",d)}),ce("Escape",()=>{s.value=!1}),te(()=>{s.value=!1});function v(){s.value=!s.value,o.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function m(b){b.target.classList.contains("outline-link")&&(l.value&&(l.value.style.transition="none"),Ne(()=>{s.value=!1}))}function L(){s.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(b,P)=>(a(),u("div",{class:"VPLocalNavOutlineDropdown",style:Ie({"--vp-vh":o.value+"px"}),ref_key:"main",ref:i},[b.headers.length>0?(a(),u("button",{key:0,onClick:v,class:N({open:s.value})},[p("span",To,I(r(He)(r(t))),1),wo],2)):(a(),u("button",{key:1,onClick:L},I(r(t).returnToTopLabel||"Return to top"),1)),k(pe,{name:"flyout"},{default:f(()=>[s.value?(a(),u("div",{key:0,ref_key:"items",ref:l,class:"items",onClick:m},[p("div",Io,[p("a",{class:"top-link",href:"#",onClick:L},I(r(t).returnToTopLabel||"Return to top"),1)]),p("div",No,[k(Ee,{headers:b.headers},null,8,["headers"])])],512)):h("",!0)]),_:1})],4))}}),Ao=g(Mo,[["__scopeId","data-v-bc9dc845"]]),Co=n=>(B("data-v-070ab83d"),n=n(),H(),n),Bo={class:"container"},Ho=["aria-expanded"],Eo=Co(()=>p("span",{class:"vpi-align-left menu-icon"},null,-1)),Do={class:"menu-text"},Fo=_({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(n){const{theme:e,frontmatter:t}=V(),{hasSidebar:s}=U(),{headers:o}=Vo(),{y:i}=Me(),l=T(0);R(()=>{l.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),te(()=>{o.value=ke(t.value.outline??e.value.outline)});const d=y(()=>o.value.length===0),v=y(()=>d.value&&!s.value),m=y(()=>({VPLocalNav:!0,"has-sidebar":s.value,empty:d.value,fixed:v.value}));return(L,b)=>r(t).layout!=="home"&&(!v.value||r(i)>=l.value)?(a(),u("div",{key:0,class:N(m.value)},[p("div",Bo,[r(s)?(a(),u("button",{key:0,class:"menu","aria-expanded":L.open,"aria-controls":"VPSidebarNav",onClick:b[0]||(b[0]=P=>L.$emit("open-menu"))},[Eo,p("span",Do,I(r(e).sidebarMenuLabel||"Menu"),1)],8,Ho)):h("",!0),k(Ao,{headers:r(o),navHeight:l.value},null,8,["headers","navHeight"])])],2)):h("",!0)}}),Oo=g(Fo,[["__scopeId","data-v-070ab83d"]]);function jo(){const n=T(!1);function e(){n.value=!0,window.addEventListener("resize",o)}function t(){n.value=!1,window.removeEventListener("resize",o)}function s(){n.value?t():e()}function o(){window.outerWidth>=768&&t()}const i=ne();return O(()=>i.path,t),{isScreenOpen:n,openScreen:e,closeScreen:t,toggleScreen:s}}const Uo={},Go={class:"VPSwitch",type:"button",role:"switch"},zo={class:"check"},Ko={key:0,class:"icon"};function Ro(n,e){return a(),u("button",Go,[p("span",zo,[n.$slots.default?(a(),u("span",Ko,[c(n.$slots,"default",{},void 0,!0)])):h("",!0)])])}const qo=g(Uo,[["render",Ro],["__scopeId","data-v-4a1c76db"]]),Fe=n=>(B("data-v-e40a8bb6"),n=n(),H(),n),Wo=Fe(()=>p("span",{class:"vpi-sun sun"},null,-1)),Jo=Fe(()=>p("span",{class:"vpi-moon moon"},null,-1)),Yo=_({__name:"VPSwitchAppearance",setup(n){const{isDark:e,theme:t}=V(),s=Y("toggle-appearance",()=>{e.value=!e.value}),o=T("");return _e(()=>{o.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(i,l)=>(a(),$(qo,{title:o.value,class:"VPSwitchAppearance","aria-checked":r(e),onClick:r(s)},{default:f(()=>[Wo,Jo]),_:1},8,["title","aria-checked","onClick"]))}}),$e=g(Yo,[["__scopeId","data-v-e40a8bb6"]]),Xo={key:0,class:"VPNavBarAppearance"},Qo=_({__name:"VPNavBarAppearance",setup(n){const{site:e}=V();return(t,s)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",Xo,[k($e)])):h("",!0)}}),Zo=g(Qo,[["__scopeId","data-v-af096f4a"]]),ge=T();let Oe=!1,ie=0;function xo(n){const e=T(!1);if(oe){!Oe&&es(),ie++;const t=O(ge,s=>{var o,i,l;s===n.el.value||(o=n.el.value)!=null&&o.contains(s)?(e.value=!0,(i=n.onFocus)==null||i.call(n)):(e.value=!1,(l=n.onBlur)==null||l.call(n))});he(()=>{t(),ie--,ie||ts()})}return et(e)}function es(){document.addEventListener("focusin",je),Oe=!0,ge.value=document.activeElement}function ts(){document.removeEventListener("focusin",je)}function je(){ge.value=document.activeElement}const ns={class:"VPMenuLink"},os=_({__name:"VPMenuLink",props:{item:{}},setup(n){const{page:e}=V();return(t,s)=>(a(),u("div",ns,[k(F,{class:N({active:r(q)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:f(()=>[j(I(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),se=g(os,[["__scopeId","data-v-8b74d055"]]),ss={class:"VPMenuGroup"},as={key:0,class:"title"},rs=_({__name:"VPMenuGroup",props:{text:{},items:{}},setup(n){return(e,t)=>(a(),u("div",ss,[e.text?(a(),u("p",as,I(e.text),1)):h("",!0),(a(!0),u(M,null,E(e.items,s=>(a(),u(M,null,["link"in s?(a(),$(se,{key:0,item:s},null,8,["item"])):h("",!0)],64))),256))]))}}),is=g(rs,[["__scopeId","data-v-48c802d0"]]),ls={class:"VPMenu"},cs={key:0,class:"items"},us=_({__name:"VPMenu",props:{items:{}},setup(n){return(e,t)=>(a(),u("div",ls,[e.items?(a(),u("div",cs,[(a(!0),u(M,null,E(e.items,s=>(a(),u(M,{key:JSON.stringify(s)},["link"in s?(a(),$(se,{key:0,item:s},null,8,["item"])):"component"in s?(a(),$(D(s.component),K({key:1,ref_for:!0},s.props),null,16)):(a(),$(is,{key:2,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):h("",!0),c(e.$slots,"default",{},void 0,!0)]))}}),ds=g(us,[["__scopeId","data-v-7dd3104a"]]),vs=n=>(B("data-v-e5380155"),n=n(),H(),n),ps=["aria-expanded","aria-label"],fs={key:0,class:"text"},hs=["innerHTML"],_s=vs(()=>p("span",{class:"vpi-chevron-down text-icon"},null,-1)),ms={key:1,class:"vpi-more-horizontal icon"},bs={class:"menu"},ks=_({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(n){const e=T(!1),t=T();xo({el:t,onBlur:s});function s(){e.value=!1}return(o,i)=>(a(),u("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:i[1]||(i[1]=l=>e.value=!0),onMouseleave:i[2]||(i[2]=l=>e.value=!1)},[p("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":o.label,onClick:i[0]||(i[0]=l=>e.value=!e.value)},[o.button||o.icon?(a(),u("span",fs,[o.icon?(a(),u("span",{key:0,class:N([o.icon,"option-icon"])},null,2)):h("",!0),o.button?(a(),u("span",{key:1,innerHTML:o.button},null,8,hs)):h("",!0),_s])):(a(),u("span",ms))],8,ps),p("div",bs,[k(ds,{items:o.items},{default:f(()=>[c(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),ye=g(ks,[["__scopeId","data-v-e5380155"]]),$s=["href","aria-label","innerHTML"],gs=_({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(n){const e=n,t=y(()=>typeof e.icon=="object"?e.icon.svg:``);return(s,o)=>(a(),u("a",{class:"VPSocialLink no-icon",href:s.link,"aria-label":s.ariaLabel??(typeof s.icon=="string"?s.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,$s))}}),ys=g(gs,[["__scopeId","data-v-717b8b75"]]),Ps={class:"VPSocialLinks"},Ss=_({__name:"VPSocialLinks",props:{links:{}},setup(n){return(e,t)=>(a(),u("div",Ps,[(a(!0),u(M,null,E(e.links,({link:s,icon:o,ariaLabel:i})=>(a(),$(ys,{key:s,icon:o,link:s,ariaLabel:i},null,8,["icon","link","ariaLabel"]))),128))]))}}),Pe=g(Ss,[["__scopeId","data-v-ee7a9424"]]),Vs={key:0,class:"group translations"},Ls={class:"trans-title"},Ts={key:1,class:"group"},ws={class:"item appearance"},Is={class:"label"},Ns={class:"appearance-action"},Ms={key:2,class:"group"},As={class:"item social-links"},Cs=_({__name:"VPNavBarExtra",setup(n){const{site:e,theme:t}=V(),{localeLinks:s,currentLang:o}=Q({correspondingLink:!0}),i=y(()=>s.value.length&&o.value.label||e.value.appearance||t.value.socialLinks);return(l,d)=>i.value?(a(),$(ye,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:f(()=>[r(s).length&&r(o).label?(a(),u("div",Vs,[p("p",Ls,I(r(o).label),1),(a(!0),u(M,null,E(r(s),v=>(a(),$(se,{key:v.link,item:v},null,8,["item"]))),128))])):h("",!0),r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",Ts,[p("div",ws,[p("p",Is,I(r(t).darkModeSwitchLabel||"Appearance"),1),p("div",Ns,[k($e)])])])):h("",!0),r(t).socialLinks?(a(),u("div",Ms,[p("div",As,[k(Pe,{class:"social-links-list",links:r(t).socialLinks},null,8,["links"])])])):h("",!0)]),_:1})):h("",!0)}}),Bs=g(Cs,[["__scopeId","data-v-925effce"]]),Hs=n=>(B("data-v-5dea55bf"),n=n(),H(),n),Es=["aria-expanded"],Ds=Hs(()=>p("span",{class:"container"},[p("span",{class:"top"}),p("span",{class:"middle"}),p("span",{class:"bottom"})],-1)),Fs=[Ds],Os=_({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(n){return(e,t)=>(a(),u("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]=s=>e.$emit("click"))},Fs,10,Es))}}),js=g(Os,[["__scopeId","data-v-5dea55bf"]]),Us=["innerHTML"],Gs=_({__name:"VPNavBarMenuLink",props:{item:{}},setup(n){const{page:e}=V();return(t,s)=>(a(),$(F,{class:N({VPNavBarMenuLink:!0,active:r(q)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:f(()=>[p("span",{innerHTML:t.item.text},null,8,Us)]),_:1},8,["class","href","noIcon","target","rel"]))}}),zs=g(Gs,[["__scopeId","data-v-ed5ac1f6"]]),Ks=_({__name:"VPNavBarMenuGroup",props:{item:{}},setup(n){const e=n,{page:t}=V(),s=i=>"component"in i?!1:"link"in i?q(t.value.relativePath,i.link,!!e.item.activeMatch):i.items.some(s),o=y(()=>s(e.item));return(i,l)=>(a(),$(ye,{class:N({VPNavBarMenuGroup:!0,active:r(q)(r(t).relativePath,i.item.activeMatch,!!i.item.activeMatch)||o.value}),button:i.item.text,items:i.item.items},null,8,["class","button","items"]))}}),Rs=n=>(B("data-v-e6d46098"),n=n(),H(),n),qs={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Ws=Rs(()=>p("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),Js=_({__name:"VPNavBarMenu",setup(n){const{theme:e}=V();return(t,s)=>r(e).nav?(a(),u("nav",qs,[Ws,(a(!0),u(M,null,E(r(e).nav,o=>(a(),u(M,{key:JSON.stringify(o)},["link"in o?(a(),$(zs,{key:0,item:o},null,8,["item"])):"component"in o?(a(),$(D(o.component),K({key:1,ref_for:!0},o.props),null,16)):(a(),$(Ks,{key:2,item:o},null,8,["item"]))],64))),128))])):h("",!0)}}),Ys=g(Js,[["__scopeId","data-v-e6d46098"]]);function Xs(n){const{localeIndex:e,theme:t}=V();function s(o){var A,C,w;const i=o.split("."),l=(A=t.value.search)==null?void 0:A.options,d=l&&typeof l=="object",v=d&&((w=(C=l.locales)==null?void 0:C[e.value])==null?void 0:w.translations)||null,m=d&&l.translations||null;let L=v,b=m,P=n;const S=i.pop();for(const G of i){let z=null;const J=P==null?void 0:P[G];J&&(z=P=J);const ae=b==null?void 0:b[G];ae&&(z=b=ae);const re=L==null?void 0:L[G];re&&(z=L=re),J||(P=z),ae||(b=z),re||(L=z)}return(L==null?void 0:L[S])??(b==null?void 0:b[S])??(P==null?void 0:P[S])??""}return s}const Qs=["aria-label"],Zs={class:"DocSearch-Button-Container"},xs=p("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),ea={class:"DocSearch-Button-Placeholder"},ta=p("span",{class:"DocSearch-Button-Keys"},[p("kbd",{class:"DocSearch-Button-Key"}),p("kbd",{class:"DocSearch-Button-Key"},"K")],-1),Se=_({__name:"VPNavBarSearchButton",setup(n){const t=Xs({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(s,o)=>(a(),u("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":r(t)("button.buttonAriaLabel")},[p("span",Zs,[xs,p("span",ea,I(r(t)("button.buttonText")),1)]),ta],8,Qs))}}),na={class:"VPNavBarSearch"},oa={id:"local-search"},sa={key:1,id:"docsearch"},aa=_({__name:"VPNavBarSearch",setup(n){const e=tt(()=>nt(()=>import("./VPLocalSearchBox.10C0vCad.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:s}=V(),o=T(!1),i=T(!1);R(()=>{});function l(){o.value||(o.value=!0,setTimeout(d,16))}function d(){const b=new Event("keydown");b.key="k",b.metaKey=!0,window.dispatchEvent(b),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||d()},16)}function v(b){const P=b.target,S=P.tagName;return P.isContentEditable||S==="INPUT"||S==="SELECT"||S==="TEXTAREA"}const m=T(!1);ce("k",b=>{(b.ctrlKey||b.metaKey)&&(b.preventDefault(),m.value=!0)}),ce("/",b=>{v(b)||(b.preventDefault(),m.value=!0)});const L="local";return(b,P)=>{var S;return a(),u("div",na,[r(L)==="local"?(a(),u(M,{key:0},[m.value?(a(),$(r(e),{key:0,onClose:P[0]||(P[0]=A=>m.value=!1)})):h("",!0),p("div",oa,[k(Se,{onClick:P[1]||(P[1]=A=>m.value=!0)})])],64)):r(L)==="algolia"?(a(),u(M,{key:1},[o.value?(a(),$(r(t),{key:0,algolia:((S=r(s).search)==null?void 0:S.options)??r(s).algolia,onVnodeBeforeMount:P[2]||(P[2]=A=>i.value=!0)},null,8,["algolia"])):h("",!0),i.value?h("",!0):(a(),u("div",sa,[k(Se,{onClick:l})]))],64)):h("",!0)])}}}),ra=_({__name:"VPNavBarSocialLinks",setup(n){const{theme:e}=V();return(t,s)=>r(e).socialLinks?(a(),$(Pe,{key:0,class:"VPNavBarSocialLinks",links:r(e).socialLinks},null,8,["links"])):h("",!0)}}),ia=g(ra,[["__scopeId","data-v-164c457f"]]),la=["href","rel","target"],ca={key:1},ua={key:2},da=_({__name:"VPNavBarTitle",setup(n){const{site:e,theme:t}=V(),{hasSidebar:s}=U(),{currentLang:o}=Q(),i=y(()=>{var v;return typeof t.value.logoLink=="string"?t.value.logoLink:(v=t.value.logoLink)==null?void 0:v.link}),l=y(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.rel}),d=y(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.target});return(v,m)=>(a(),u("div",{class:N(["VPNavBarTitle",{"has-sidebar":r(s)}])},[p("a",{class:"title",href:i.value??r(be)(r(o).link),rel:l.value,target:d.value},[c(v.$slots,"nav-bar-title-before",{},void 0,!0),r(t).logo?(a(),$(x,{key:0,class:"logo",image:r(t).logo},null,8,["image"])):h("",!0),r(t).siteTitle?(a(),u("span",ca,I(r(t).siteTitle),1)):r(t).siteTitle===void 0?(a(),u("span",ua,I(r(e).title),1)):h("",!0),c(v.$slots,"nav-bar-title-after",{},void 0,!0)],8,la)],2))}}),va=g(da,[["__scopeId","data-v-28a961f9"]]),pa={class:"items"},fa={class:"title"},ha=_({__name:"VPNavBarTranslations",setup(n){const{theme:e}=V(),{localeLinks:t,currentLang:s}=Q({correspondingLink:!0});return(o,i)=>r(t).length&&r(s).label?(a(),$(ye,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:r(e).langMenuLabel||"Change language"},{default:f(()=>[p("div",pa,[p("p",fa,I(r(s).label),1),(a(!0),u(M,null,E(r(t),l=>(a(),$(se,{key:l.link,item:l},null,8,["item"]))),128))])]),_:1},8,["label"])):h("",!0)}}),_a=g(ha,[["__scopeId","data-v-c80d9ad0"]]),ma=n=>(B("data-v-822684d1"),n=n(),H(),n),ba={class:"wrapper"},ka={class:"container"},$a={class:"title"},ga={class:"content"},ya={class:"content-body"},Pa=ma(()=>p("div",{class:"divider"},[p("div",{class:"divider-line"})],-1)),Sa=_({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(n){const e=n,{y:t}=Me(),{hasSidebar:s}=U(),{frontmatter:o}=V(),i=T({});return _e(()=>{i.value={"has-sidebar":s.value,home:o.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(l,d)=>(a(),u("div",{class:N(["VPNavBar",i.value])},[p("div",ba,[p("div",ka,[p("div",$a,[k(va,null,{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),p("div",ga,[p("div",ya,[c(l.$slots,"nav-bar-content-before",{},void 0,!0),k(aa,{class:"search"}),k(Ys,{class:"menu"}),k(_a,{class:"translations"}),k(Zo,{class:"appearance"}),k(ia,{class:"social-links"}),k(Bs,{class:"extra"}),c(l.$slots,"nav-bar-content-after",{},void 0,!0),k(js,{class:"hamburger",active:l.isScreenOpen,onClick:d[0]||(d[0]=v=>l.$emit("toggle-screen"))},null,8,["active"])])])])]),Pa],2))}}),Va=g(Sa,[["__scopeId","data-v-822684d1"]]),La={key:0,class:"VPNavScreenAppearance"},Ta={class:"text"},wa=_({__name:"VPNavScreenAppearance",setup(n){const{site:e,theme:t}=V();return(s,o)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",La,[p("p",Ta,I(r(t).darkModeSwitchLabel||"Appearance"),1),k($e)])):h("",!0)}}),Ia=g(wa,[["__scopeId","data-v-ffb44008"]]),Na=_({__name:"VPNavScreenMenuLink",props:{item:{}},setup(n){const e=Y("close-screen");return(t,s)=>(a(),$(F,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),Ma=g(Na,[["__scopeId","data-v-27d04aeb"]]),Aa=_({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(n){const e=Y("close-screen");return(t,s)=>(a(),$(F,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e)},{default:f(()=>[j(I(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Ue=g(Aa,[["__scopeId","data-v-7179dbb7"]]),Ca={class:"VPNavScreenMenuGroupSection"},Ba={key:0,class:"title"},Ha=_({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(n){return(e,t)=>(a(),u("div",Ca,[e.text?(a(),u("p",Ba,I(e.text),1)):h("",!0),(a(!0),u(M,null,E(e.items,s=>(a(),$(Ue,{key:s.text,item:s},null,8,["item"]))),128))]))}}),Ea=g(Ha,[["__scopeId","data-v-4b8941ac"]]),Da=n=>(B("data-v-875057a5"),n=n(),H(),n),Fa=["aria-controls","aria-expanded"],Oa=["innerHTML"],ja=Da(()=>p("span",{class:"vpi-plus button-icon"},null,-1)),Ua=["id"],Ga={key:0,class:"item"},za={key:1,class:"item"},Ka={key:2,class:"group"},Ra=_({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(n){const e=n,t=T(!1),s=y(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function o(){t.value=!t.value}return(i,l)=>(a(),u("div",{class:N(["VPNavScreenMenuGroup",{open:t.value}])},[p("button",{class:"button","aria-controls":s.value,"aria-expanded":t.value,onClick:o},[p("span",{class:"button-text",innerHTML:i.text},null,8,Oa),ja],8,Fa),p("div",{id:s.value,class:"items"},[(a(!0),u(M,null,E(i.items,d=>(a(),u(M,{key:JSON.stringify(d)},["link"in d?(a(),u("div",Ga,[k(Ue,{item:d},null,8,["item"])])):"component"in d?(a(),u("div",za,[(a(),$(D(d.component),K({ref_for:!0},d.props,{"screen-menu":""}),null,16))])):(a(),u("div",Ka,[k(Ea,{text:d.text,items:d.items},null,8,["text","items"])]))],64))),128))],8,Ua)],2))}}),qa=g(Ra,[["__scopeId","data-v-875057a5"]]),Wa={key:0,class:"VPNavScreenMenu"},Ja=_({__name:"VPNavScreenMenu",setup(n){const{theme:e}=V();return(t,s)=>r(e).nav?(a(),u("nav",Wa,[(a(!0),u(M,null,E(r(e).nav,o=>(a(),u(M,{key:JSON.stringify(o)},["link"in o?(a(),$(Ma,{key:0,item:o},null,8,["item"])):"component"in o?(a(),$(D(o.component),K({key:1,ref_for:!0},o.props,{"screen-menu":""}),null,16)):(a(),$(qa,{key:2,text:o.text||"",items:o.items},null,8,["text","items"]))],64))),128))])):h("",!0)}}),Ya=_({__name:"VPNavScreenSocialLinks",setup(n){const{theme:e}=V();return(t,s)=>r(e).socialLinks?(a(),$(Pe,{key:0,class:"VPNavScreenSocialLinks",links:r(e).socialLinks},null,8,["links"])):h("",!0)}}),Ge=n=>(B("data-v-362991c2"),n=n(),H(),n),Xa=Ge(()=>p("span",{class:"vpi-languages icon lang"},null,-1)),Qa=Ge(()=>p("span",{class:"vpi-chevron-down icon chevron"},null,-1)),Za={class:"list"},xa=_({__name:"VPNavScreenTranslations",setup(n){const{localeLinks:e,currentLang:t}=Q({correspondingLink:!0}),s=T(!1);function o(){s.value=!s.value}return(i,l)=>r(e).length&&r(t).label?(a(),u("div",{key:0,class:N(["VPNavScreenTranslations",{open:s.value}])},[p("button",{class:"title",onClick:o},[Xa,j(" "+I(r(t).label)+" ",1),Qa]),p("ul",Za,[(a(!0),u(M,null,E(r(e),d=>(a(),u("li",{key:d.link,class:"item"},[k(F,{class:"link",href:d.link},{default:f(()=>[j(I(d.text),1)]),_:2},1032,["href"])]))),128))])],2)):h("",!0)}}),er=g(xa,[["__scopeId","data-v-362991c2"]]),tr={class:"container"},nr=_({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(n){const e=T(null),t=Ae(oe?document.body:null);return(s,o)=>(a(),$(pe,{name:"fade",onEnter:o[0]||(o[0]=i=>t.value=!0),onAfterLeave:o[1]||(o[1]=i=>t.value=!1)},{default:f(()=>[s.open?(a(),u("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[p("div",tr,[c(s.$slots,"nav-screen-content-before",{},void 0,!0),k(Ja,{class:"menu"}),k(er,{class:"translations"}),k(Ia,{class:"appearance"}),k(Ya,{class:"social-links"}),c(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):h("",!0)]),_:3}))}}),or=g(nr,[["__scopeId","data-v-833aabba"]]),sr={key:0,class:"VPNav"},ar=_({__name:"VPNav",setup(n){const{isScreenOpen:e,closeScreen:t,toggleScreen:s}=jo(),{frontmatter:o}=V(),i=y(()=>o.value.navbar!==!1);return me("close-screen",t),ee(()=>{oe&&document.documentElement.classList.toggle("hide-nav",!i.value)}),(l,d)=>i.value?(a(),u("header",sr,[k(Va,{"is-screen-open":r(e),onToggleScreen:r(s)},{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(l.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),k(or,{open:r(e)},{"nav-screen-content-before":f(()=>[c(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(l.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):h("",!0)}}),rr=g(ar,[["__scopeId","data-v-f1e365da"]]),ze=n=>(B("data-v-196b2e5f"),n=n(),H(),n),ir=["role","tabindex"],lr=ze(()=>p("div",{class:"indicator"},null,-1)),cr=ze(()=>p("span",{class:"vpi-chevron-right caret-icon"},null,-1)),ur=[cr],dr={key:1,class:"items"},vr=_({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(n){const e=n,{collapsed:t,collapsible:s,isLink:o,isActiveLink:i,hasActiveLink:l,hasChildren:d,toggle:v}=It(y(()=>e.item)),m=y(()=>d.value?"section":"div"),L=y(()=>o.value?"a":"div"),b=y(()=>d.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),P=y(()=>o.value?void 0:"button"),S=y(()=>[[`level-${e.depth}`],{collapsible:s.value},{collapsed:t.value},{"is-link":o.value},{"is-active":i.value},{"has-active":l.value}]);function A(w){"key"in w&&w.key!=="Enter"||!e.item.link&&v()}function C(){e.item.link&&v()}return(w,G)=>{const z=W("VPSidebarItem",!0);return a(),$(D(m.value),{class:N(["VPSidebarItem",S.value])},{default:f(()=>[w.item.text?(a(),u("div",K({key:0,class:"item",role:P.value},st(w.item.items?{click:A,keydown:A}:{},!0),{tabindex:w.item.items&&0}),[lr,w.item.link?(a(),$(F,{key:0,tag:L.value,class:"link",href:w.item.link,rel:w.item.rel,target:w.item.target},{default:f(()=>[(a(),$(D(b.value),{class:"text",innerHTML:w.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),$(D(b.value),{key:1,class:"text",innerHTML:w.item.text},null,8,["innerHTML"])),w.item.collapsed!=null&&w.item.items&&w.item.items.length?(a(),u("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:C,onKeydown:ot(C,["enter"]),tabindex:"0"},ur,32)):h("",!0)],16,ir)):h("",!0),w.item.items&&w.item.items.length?(a(),u("div",dr,[w.depth<5?(a(!0),u(M,{key:0},E(w.item.items,J=>(a(),$(z,{key:J.text,item:J,depth:w.depth+1},null,8,["item","depth"]))),128)):h("",!0)])):h("",!0)]),_:1},8,["class"])}}}),pr=g(vr,[["__scopeId","data-v-196b2e5f"]]),fr=_({__name:"VPSidebarGroup",props:{items:{}},setup(n){const e=T(!0);let t=null;return R(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),at(()=>{t!=null&&(clearTimeout(t),t=null)}),(s,o)=>(a(!0),u(M,null,E(s.items,i=>(a(),u("div",{key:i.text,class:N(["group",{"no-transition":e.value}])},[k(pr,{item:i,depth:0},null,8,["item"])],2))),128))}}),hr=g(fr,[["__scopeId","data-v-9e426adc"]]),Ke=n=>(B("data-v-18756405"),n=n(),H(),n),_r=Ke(()=>p("div",{class:"curtain"},null,-1)),mr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},br=Ke(()=>p("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),kr=_({__name:"VPSidebar",props:{open:{type:Boolean}},setup(n){const{sidebarGroups:e,hasSidebar:t}=U(),s=n,o=T(null),i=Ae(oe?document.body:null);O([s,o],()=>{var d;s.open?(i.value=!0,(d=o.value)==null||d.focus()):i.value=!1},{immediate:!0,flush:"post"});const l=T(0);return O(e,()=>{l.value+=1},{deep:!0}),(d,v)=>r(t)?(a(),u("aside",{key:0,class:N(["VPSidebar",{open:d.open}]),ref_key:"navEl",ref:o,onClick:v[0]||(v[0]=rt(()=>{},["stop"]))},[_r,p("nav",mr,[br,c(d.$slots,"sidebar-nav-before",{},void 0,!0),(a(),$(hr,{items:r(e),key:l.value},null,8,["items"])),c(d.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):h("",!0)}}),$r=g(kr,[["__scopeId","data-v-18756405"]]),gr=_({__name:"VPSkipLink",setup(n){const e=ne(),t=T();O(()=>e.path,()=>t.value.focus());function s({target:o}){const i=document.getElementById(decodeURIComponent(o.hash).slice(1));if(i){const l=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",l)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",l),i.focus(),window.scrollTo(0,0)}}return(o,i)=>(a(),u(M,null,[p("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),p("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}}),yr=g(gr,[["__scopeId","data-v-c3508ec8"]]),Pr=_({__name:"Layout",setup(n){const{isOpen:e,open:t,close:s}=U(),o=ne();O(()=>o.path,s),wt(e,s);const{frontmatter:i}=V(),l=Ce(),d=y(()=>!!l["home-hero-image"]);return me("hero-image-slot-exists",d),(v,m)=>{const L=W("Content");return r(i).layout!==!1?(a(),u("div",{key:0,class:N(["Layout",r(i).pageClass])},[c(v.$slots,"layout-top",{},void 0,!0),k(yr),k(pt,{class:"backdrop",show:r(e),onClick:r(s)},null,8,["show","onClick"]),k(rr,null,{"nav-bar-title-before":f(()=>[c(v.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(v.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(v.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(v.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":f(()=>[c(v.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(v.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),k(Oo,{open:r(e),onOpenMenu:r(t)},null,8,["open","onOpenMenu"]),k($r,{open:r(e)},{"sidebar-nav-before":f(()=>[c(v.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":f(()=>[c(v.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),k(ko,null,{"page-top":f(()=>[c(v.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(v.$slots,"page-bottom",{},void 0,!0)]),"not-found":f(()=>[c(v.$slots,"not-found",{},void 0,!0)]),"home-hero-before":f(()=>[c(v.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(v.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(v.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(v.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(v.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(v.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(v.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(v.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(v.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":f(()=>[c(v.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(v.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(v.$slots,"doc-after",{},void 0,!0)]),"doc-top":f(()=>[c(v.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(v.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":f(()=>[c(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),k(So),c(v.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),$(L,{key:1}))}}}),Sr=g(Pr,[["__scopeId","data-v-a9a9e638"]]),Ve={Layout:Sr,enhanceApp:({app:n})=>{n.component("Badge",ut)}},Vr=n=>{if(typeof document>"u")return{stabilizeScrollPosition:o=>async(...i)=>o(...i)};const e=document.documentElement;return{stabilizeScrollPosition:s=>async(...o)=>{const i=s(...o),l=n.value;if(!l)return i;const d=l.offsetTop-e.scrollTop;return await Ne(),e.scrollTop=l.offsetTop-d,i}}},Re="vitepress:tabSharedState",X=typeof localStorage<"u"?localStorage:null,qe="vitepress:tabsSharedState",Lr=()=>{const n=X==null?void 0:X.getItem(qe);if(n)try{return JSON.parse(n)}catch{}return{}},Tr=n=>{X&&X.setItem(qe,JSON.stringify(n))},wr=n=>{const e=it({});O(()=>e.content,(t,s)=>{t&&s&&Tr(t)},{deep:!0}),n.provide(Re,e)},Ir=(n,e)=>{const t=Y(Re);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");R(()=>{t.content||(t.content=Lr())});const s=T(),o=y({get(){var v;const l=e.value,d=n.value;if(l){const m=(v=t.content)==null?void 0:v[l];if(m&&d.includes(m))return m}else{const m=s.value;if(m)return m}return d[0]},set(l){const d=e.value;d?t.content&&(t.content[d]=l):s.value=l}});return{selected:o,select:l=>{o.value=l}}};let Le=0;const Nr=()=>(Le++,""+Le);function Mr(){const n=Ce();return y(()=>{var s;const t=(s=n.default)==null?void 0:s.call(n);return t?t.filter(o=>typeof o.type=="object"&&"__name"in o.type&&o.type.__name==="PluginTabsTab"&&o.props).map(o=>{var i;return(i=o.props)==null?void 0:i.label}):[]})}const We="vitepress:tabSingleState",Ar=n=>{me(We,n)},Cr=()=>{const n=Y(We);if(!n)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return n},Br={class:"plugin-tabs"},Hr=["id","aria-selected","aria-controls","tabindex","onClick"],Er=_({__name:"PluginTabs",props:{sharedStateKey:{}},setup(n){const e=n,t=Mr(),{selected:s,select:o}=Ir(t,lt(e,"sharedStateKey")),i=T(),{stabilizeScrollPosition:l}=Vr(i),d=l(o),v=T([]),m=b=>{var A;const P=t.value.indexOf(s.value);let S;b.key==="ArrowLeft"?S=P>=1?P-1:t.value.length-1:b.key==="ArrowRight"&&(S=P(a(),u("div",Br,[p("div",{ref_key:"tablist",ref:i,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:m},[(a(!0),u(M,null,E(r(t),S=>(a(),u("button",{id:`tab-${S}-${r(L)}`,ref_for:!0,ref_key:"buttonRefs",ref:v,key:S,role:"tab",class:"plugin-tabs--tab","aria-selected":S===r(s),"aria-controls":`panel-${S}-${r(L)}`,tabindex:S===r(s)?0:-1,onClick:()=>r(d)(S)},I(S),9,Hr))),128))],544),c(b.$slots,"default")]))}}),Dr=["id","aria-labelledby"],Fr=_({__name:"PluginTabsTab",props:{label:{}},setup(n){const{uid:e,selected:t}=Cr();return(s,o)=>r(t)===s.label?(a(),u("div",{key:0,id:`panel-${s.label}-${r(e)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${s.label}-${r(e)}`},[c(s.$slots,"default",{},void 0,!0)],8,Dr)):h("",!0)}}),Or=g(Fr,[["__scopeId","data-v-9b0d03d2"]]),jr=n=>{wr(n),n.component("PluginTabs",Er),n.component("PluginTabsTab",Or)},Gr={extends:Ve,Layout(){return ct(Ve.Layout,null,{})},enhanceApp({app:n,router:e,siteData:t}){jr(n)}};export{Gr as R,Xs as c,V as u}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.BQzORzSF.js","assets/chunks/framework.CpnCegiD.js"])))=>i.map(i=>d[i]); +import{d as _,o as a,c as u,r as c,n as N,a as j,t as I,b as $,w as f,e as h,T as pe,_ as g,u as Je,i as Ye,f as Xe,g as fe,h as y,j as p,k as r,p as B,l as H,m as q,q as le,s as T,v as O,x as ee,y as R,z as he,A as _e,B as Qe,C as Ze,D as W,F as M,E,G as Te,H as te,I as k,J as D,K as we,L as ne,M as K,N as Y,O as xe,P as Ie,Q as ce,R as Ne,S as Me,U as oe,V as et,W as tt,X as nt,Y as Ae,Z as me,$ as ot,a0 as st,a1 as at,a2 as rt,a3 as Ce,a4 as it,a5 as lt,a6 as ct}from"./framework.CpnCegiD.js";const ut=_({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(n){return(e,t)=>(a(),u("span",{class:N(["VPBadge",e.type])},[c(e.$slots,"default",{},()=>[j(I(e.text),1)])],2))}}),dt={key:0,class:"VPBackdrop"},vt=_({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(n){return(e,t)=>(a(),$(pe,{name:"fade"},{default:f(()=>[e.show?(a(),u("div",dt)):h("",!0)]),_:1}))}}),pt=g(vt,[["__scopeId","data-v-b06cdb19"]]),V=Je;function ft(n,e){let t,s=!1;return()=>{t&&clearTimeout(t),s?t=setTimeout(n,e):(n(),(s=!0)&&setTimeout(()=>s=!1,e))}}function ue(n){return/^\//.test(n)?n:`/${n}`}function be(n){const{pathname:e,search:t,hash:s,protocol:o}=new URL(n,"http://a.com");if(Ye(n)||n.startsWith("#")||!o.startsWith("http")||!Xe(e))return n;const{site:i}=V(),l=e.endsWith("/")||e.endsWith(".html")?n:n.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,i.value.cleanUrls?"":".html")}${t}${s}`);return fe(l)}function Q({correspondingLink:n=!1}={}){const{site:e,localeIndex:t,page:s,theme:o,hash:i}=V(),l=y(()=>{var v,m;return{label:(v=e.value.locales[t.value])==null?void 0:v.label,link:((m=e.value.locales[t.value])==null?void 0:m.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:y(()=>Object.entries(e.value.locales).flatMap(([v,m])=>l.value.label===m.label?[]:{text:m.label,link:ht(m.link||(v==="root"?"/":`/${v}/`),o.value.i18nRouting!==!1&&n,s.value.relativePath.slice(l.value.link.length-1),!e.value.cleanUrls)+i.value})),currentLang:l}}function ht(n,e,t,s){return e?n.replace(/\/$/,"")+ue(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,s?".html":"")):n}const _t=n=>(B("data-v-951cab6c"),n=n(),H(),n),mt={class:"NotFound"},bt={class:"code"},kt={class:"title"},$t=_t(()=>p("div",{class:"divider"},null,-1)),gt={class:"quote"},yt={class:"action"},Pt=["href","aria-label"],St=_({__name:"NotFound",setup(n){const{theme:e}=V(),{currentLang:t}=Q();return(s,o)=>{var i,l,d,v,m;return a(),u("div",mt,[p("p",bt,I(((i=r(e).notFound)==null?void 0:i.code)??"404"),1),p("h1",kt,I(((l=r(e).notFound)==null?void 0:l.title)??"PAGE NOT FOUND"),1),$t,p("blockquote",gt,I(((d=r(e).notFound)==null?void 0:d.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),p("div",yt,[p("a",{class:"link",href:r(fe)(r(t).link),"aria-label":((v=r(e).notFound)==null?void 0:v.linkLabel)??"go to home"},I(((m=r(e).notFound)==null?void 0:m.linkText)??"Take me home"),9,Pt)])])}}}),Vt=g(St,[["__scopeId","data-v-951cab6c"]]);function Be(n,e){if(Array.isArray(n))return Z(n);if(n==null)return[];e=ue(e);const t=Object.keys(n).sort((o,i)=>i.split("/").length-o.split("/").length).find(o=>e.startsWith(ue(o))),s=t?n[t]:[];return Array.isArray(s)?Z(s):Z(s.items,s.base)}function Lt(n){const e=[];let t=0;for(const s in n){const o=n[s];if(o.items){t=e.push(o);continue}e[t]||e.push({items:[]}),e[t].items.push(o)}return e}function Tt(n){const e=[];function t(s){for(const o of s)o.text&&o.link&&e.push({text:o.text,link:o.link,docFooterText:o.docFooterText}),o.items&&t(o.items)}return t(n),e}function de(n,e){return Array.isArray(e)?e.some(t=>de(n,t)):q(n,e.link)?!0:e.items?de(n,e.items):!1}function Z(n,e){return[...n].map(t=>{const s={...t},o=s.base||e;return o&&s.link&&(s.link=o+s.link),s.items&&(s.items=Z(s.items,o)),s})}function U(){const{frontmatter:n,page:e,theme:t}=V(),s=le("(min-width: 960px)"),o=T(!1),i=y(()=>{const C=t.value.sidebar,w=e.value.relativePath;return C?Be(C,w):[]}),l=T(i.value);O(i,(C,w)=>{JSON.stringify(C)!==JSON.stringify(w)&&(l.value=i.value)});const d=y(()=>n.value.sidebar!==!1&&l.value.length>0&&n.value.layout!=="home"),v=y(()=>m?n.value.aside==null?t.value.aside==="left":n.value.aside==="left":!1),m=y(()=>n.value.layout==="home"?!1:n.value.aside!=null?!!n.value.aside:t.value.aside!==!1),L=y(()=>d.value&&s.value),b=y(()=>d.value?Lt(l.value):[]);function P(){o.value=!0}function S(){o.value=!1}function A(){o.value?S():P()}return{isOpen:o,sidebar:l,sidebarGroups:b,hasSidebar:d,hasAside:m,leftAside:v,isSidebarEnabled:L,open:P,close:S,toggle:A}}function wt(n,e){let t;ee(()=>{t=n.value?document.activeElement:void 0}),R(()=>{window.addEventListener("keyup",s)}),he(()=>{window.removeEventListener("keyup",s)});function s(o){o.key==="Escape"&&n.value&&(e(),t==null||t.focus())}}function It(n){const{page:e,hash:t}=V(),s=T(!1),o=y(()=>n.value.collapsed!=null),i=y(()=>!!n.value.link),l=T(!1),d=()=>{l.value=q(e.value.relativePath,n.value.link)};O([e,n,t],d),R(d);const v=y(()=>l.value?!0:n.value.items?de(e.value.relativePath,n.value.items):!1),m=y(()=>!!(n.value.items&&n.value.items.length));ee(()=>{s.value=!!(o.value&&n.value.collapsed)}),_e(()=>{(l.value||v.value)&&(s.value=!1)});function L(){o.value&&(s.value=!s.value)}return{collapsed:s,collapsible:o,isLink:i,isActiveLink:l,hasActiveLink:v,hasChildren:m,toggle:L}}function Nt(){const{hasSidebar:n}=U(),e=le("(min-width: 960px)"),t=le("(min-width: 1280px)");return{isAsideEnabled:y(()=>!t.value&&!e.value?!1:n.value?t.value:e.value)}}const ve=[];function He(n){return typeof n.outline=="object"&&!Array.isArray(n.outline)&&n.outline.label||n.outlineTitle||"On this page"}function ke(n){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const s=Number(t.tagName[1]);return{element:t,title:Mt(t),link:"#"+t.id,level:s}});return At(e,n)}function Mt(n){let e="";for(const t of n.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function At(n,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[s,o]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;n=n.filter(l=>l.level>=s&&l.level<=o),ve.length=0;for(const{element:l,link:d}of n)ve.push({element:l,link:d});const i=[];e:for(let l=0;l=0;v--){const m=n[v];if(m.level{requestAnimationFrame(i),window.addEventListener("scroll",s)}),Qe(()=>{l(location.hash)}),he(()=>{window.removeEventListener("scroll",s)});function i(){if(!t.value)return;const d=window.scrollY,v=window.innerHeight,m=document.body.offsetHeight,L=Math.abs(d+v-m)<1,b=ve.map(({element:S,link:A})=>({link:A,top:Bt(S)})).filter(({top:S})=>!Number.isNaN(S)).sort((S,A)=>S.top-A.top);if(!b.length){l(null);return}if(d<1){l(null);return}if(L){l(b[b.length-1].link);return}let P=null;for(const{link:S,top:A}of b){if(A>d+Ze()+4)break;P=S}l(P)}function l(d){o&&o.classList.remove("active"),d==null?o=null:o=n.value.querySelector(`a[href="${decodeURIComponent(d)}"]`);const v=o;v?(v.classList.add("active"),e.value.style.top=v.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Bt(n){let e=0;for(;n!==document.body;){if(n===null)return NaN;e+=n.offsetTop,n=n.offsetParent}return e}const Ht=["href","title"],Et=_({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(n){function e({target:t}){const s=t.href.split("#")[1],o=document.getElementById(decodeURIComponent(s));o==null||o.focus({preventScroll:!0})}return(t,s)=>{const o=W("VPDocOutlineItem",!0);return a(),u("ul",{class:N(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),u(M,null,E(t.headers,({children:i,link:l,title:d})=>(a(),u("li",null,[p("a",{class:"outline-link",href:l,onClick:e,title:d},I(d),9,Ht),i!=null&&i.length?(a(),$(o,{key:0,headers:i},null,8,["headers"])):h("",!0)]))),256))],2)}}}),Ee=g(Et,[["__scopeId","data-v-3f927ebe"]]),Dt={class:"content"},Ft={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Ot=_({__name:"VPDocAsideOutline",setup(n){const{frontmatter:e,theme:t}=V(),s=Te([]);te(()=>{s.value=ke(e.value.outline??t.value.outline)});const o=T(),i=T();return Ct(o,i),(l,d)=>(a(),u("nav",{"aria-labelledby":"doc-outline-aria-label",class:N(["VPDocAsideOutline",{"has-outline":s.value.length>0}]),ref_key:"container",ref:o},[p("div",Dt,[p("div",{class:"outline-marker",ref_key:"marker",ref:i},null,512),p("div",Ft,I(r(He)(r(t))),1),k(Ee,{headers:s.value,root:!0},null,8,["headers"])])],2))}}),jt=g(Ot,[["__scopeId","data-v-b38bf2ff"]]),Ut={class:"VPDocAsideCarbonAds"},Gt=_({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(n){const e=()=>null;return(t,s)=>(a(),u("div",Ut,[k(r(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),zt=n=>(B("data-v-6d7b3c46"),n=n(),H(),n),Kt={class:"VPDocAside"},Rt=zt(()=>p("div",{class:"spacer"},null,-1)),qt=_({__name:"VPDocAside",setup(n){const{theme:e}=V();return(t,s)=>(a(),u("div",Kt,[c(t.$slots,"aside-top",{},void 0,!0),c(t.$slots,"aside-outline-before",{},void 0,!0),k(jt),c(t.$slots,"aside-outline-after",{},void 0,!0),Rt,c(t.$slots,"aside-ads-before",{},void 0,!0),r(e).carbonAds?(a(),$(Gt,{key:0,"carbon-ads":r(e).carbonAds},null,8,["carbon-ads"])):h("",!0),c(t.$slots,"aside-ads-after",{},void 0,!0),c(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Wt=g(qt,[["__scopeId","data-v-6d7b3c46"]]);function Jt(){const{theme:n,page:e}=V();return y(()=>{const{text:t="Edit this page",pattern:s=""}=n.value.editLink||{};let o;return typeof s=="function"?o=s(e.value):o=s.replace(/:path/g,e.value.filePath),{url:o,text:t}})}function Yt(){const{page:n,theme:e,frontmatter:t}=V();return y(()=>{var m,L,b,P,S,A,C,w;const s=Be(e.value.sidebar,n.value.relativePath),o=Tt(s),i=Xt(o,G=>G.link.replace(/[?#].*$/,"")),l=i.findIndex(G=>q(n.value.relativePath,G.link)),d=((m=e.value.docFooter)==null?void 0:m.prev)===!1&&!t.value.prev||t.value.prev===!1,v=((L=e.value.docFooter)==null?void 0:L.next)===!1&&!t.value.next||t.value.next===!1;return{prev:d?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((b=i[l-1])==null?void 0:b.docFooterText)??((P=i[l-1])==null?void 0:P.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((S=i[l-1])==null?void 0:S.link)},next:v?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((A=i[l+1])==null?void 0:A.docFooterText)??((C=i[l+1])==null?void 0:C.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((w=i[l+1])==null?void 0:w.link)}}})}function Xt(n,e){const t=new Set;return n.filter(s=>{const o=e(s);return t.has(o)?!1:t.add(o)})}const F=_({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(n){const e=n,t=y(()=>e.tag??(e.href?"a":"span")),s=y(()=>e.href&&we.test(e.href)||e.target==="_blank");return(o,i)=>(a(),$(D(t.value),{class:N(["VPLink",{link:o.href,"vp-external-link-icon":s.value,"no-icon":o.noIcon}]),href:o.href?r(be)(o.href):void 0,target:o.target??(s.value?"_blank":void 0),rel:o.rel??(s.value?"noreferrer":void 0)},{default:f(()=>[c(o.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Qt={class:"VPLastUpdated"},Zt=["datetime"],xt=_({__name:"VPDocFooterLastUpdated",setup(n){const{theme:e,page:t,lang:s}=V(),o=y(()=>new Date(t.value.lastUpdated)),i=y(()=>o.value.toISOString()),l=T("");return R(()=>{ee(()=>{var d,v,m;l.value=new Intl.DateTimeFormat((v=(d=e.value.lastUpdated)==null?void 0:d.formatOptions)!=null&&v.forceLocale?s.value:void 0,((m=e.value.lastUpdated)==null?void 0:m.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(o.value)})}),(d,v)=>{var m;return a(),u("p",Qt,[j(I(((m=r(e).lastUpdated)==null?void 0:m.text)||r(e).lastUpdatedText||"Last updated")+": ",1),p("time",{datetime:i.value},I(l.value),9,Zt)])}}}),en=g(xt,[["__scopeId","data-v-475f71b8"]]),De=n=>(B("data-v-4f9813fa"),n=n(),H(),n),tn={key:0,class:"VPDocFooter"},nn={key:0,class:"edit-info"},on={key:0,class:"edit-link"},sn=De(()=>p("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),an={key:1,class:"last-updated"},rn={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},ln=De(()=>p("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),cn={class:"pager"},un=["innerHTML"],dn=["innerHTML"],vn={class:"pager"},pn=["innerHTML"],fn=["innerHTML"],hn=_({__name:"VPDocFooter",setup(n){const{theme:e,page:t,frontmatter:s}=V(),o=Jt(),i=Yt(),l=y(()=>e.value.editLink&&s.value.editLink!==!1),d=y(()=>t.value.lastUpdated),v=y(()=>l.value||d.value||i.value.prev||i.value.next);return(m,L)=>{var b,P,S,A;return v.value?(a(),u("footer",tn,[c(m.$slots,"doc-footer-before",{},void 0,!0),l.value||d.value?(a(),u("div",nn,[l.value?(a(),u("div",on,[k(F,{class:"edit-link-button",href:r(o).url,"no-icon":!0},{default:f(()=>[sn,j(" "+I(r(o).text),1)]),_:1},8,["href"])])):h("",!0),d.value?(a(),u("div",an,[k(en)])):h("",!0)])):h("",!0),(b=r(i).prev)!=null&&b.link||(P=r(i).next)!=null&&P.link?(a(),u("nav",rn,[ln,p("div",cn,[(S=r(i).prev)!=null&&S.link?(a(),$(F,{key:0,class:"pager-link prev",href:r(i).prev.link},{default:f(()=>{var C;return[p("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.prev)||"Previous page"},null,8,un),p("span",{class:"title",innerHTML:r(i).prev.text},null,8,dn)]}),_:1},8,["href"])):h("",!0)]),p("div",vn,[(A=r(i).next)!=null&&A.link?(a(),$(F,{key:0,class:"pager-link next",href:r(i).next.link},{default:f(()=>{var C;return[p("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.next)||"Next page"},null,8,pn),p("span",{class:"title",innerHTML:r(i).next.text},null,8,fn)]}),_:1},8,["href"])):h("",!0)])])):h("",!0)])):h("",!0)}}}),_n=g(hn,[["__scopeId","data-v-4f9813fa"]]),mn=n=>(B("data-v-83890dd9"),n=n(),H(),n),bn={class:"container"},kn=mn(()=>p("div",{class:"aside-curtain"},null,-1)),$n={class:"aside-container"},gn={class:"aside-content"},yn={class:"content"},Pn={class:"content-container"},Sn={class:"main"},Vn=_({__name:"VPDoc",setup(n){const{theme:e}=V(),t=ne(),{hasSidebar:s,hasAside:o,leftAside:i}=U(),l=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(d,v)=>{const m=W("Content");return a(),u("div",{class:N(["VPDoc",{"has-sidebar":r(s),"has-aside":r(o)}])},[c(d.$slots,"doc-top",{},void 0,!0),p("div",bn,[r(o)?(a(),u("div",{key:0,class:N(["aside",{"left-aside":r(i)}])},[kn,p("div",$n,[p("div",gn,[k(Wt,null,{"aside-top":f(()=>[c(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):h("",!0),p("div",yn,[p("div",Pn,[c(d.$slots,"doc-before",{},void 0,!0),p("main",Sn,[k(m,{class:N(["vp-doc",[l.value,r(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),k(_n,null,{"doc-footer-before":f(()=>[c(d.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(d.$slots,"doc-after",{},void 0,!0)])])]),c(d.$slots,"doc-bottom",{},void 0,!0)],2)}}}),Ln=g(Vn,[["__scopeId","data-v-83890dd9"]]),Tn=_({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(n){const e=n,t=y(()=>e.href&&we.test(e.href)),s=y(()=>e.tag||e.href?"a":"button");return(o,i)=>(a(),$(D(s.value),{class:N(["VPButton",[o.size,o.theme]]),href:o.href?r(be)(o.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:f(()=>[j(I(o.text),1)]),_:1},8,["class","href","target","rel"]))}}),wn=g(Tn,[["__scopeId","data-v-14206e74"]]),In=["src","alt"],Nn=_({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(n){return(e,t)=>{const s=W("VPImage",!0);return e.image?(a(),u(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),u("img",K({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:r(fe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,In)):(a(),u(M,{key:1},[k(s,K({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),k(s,K({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):h("",!0)}}}),x=g(Nn,[["__scopeId","data-v-35a7d0b8"]]),Mn=n=>(B("data-v-955009fc"),n=n(),H(),n),An={class:"container"},Cn={class:"main"},Bn={key:0,class:"name"},Hn=["innerHTML"],En=["innerHTML"],Dn=["innerHTML"],Fn={key:0,class:"actions"},On={key:0,class:"image"},jn={class:"image-container"},Un=Mn(()=>p("div",{class:"image-bg"},null,-1)),Gn=_({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(n){const e=Y("hero-image-slot-exists");return(t,s)=>(a(),u("div",{class:N(["VPHero",{"has-image":t.image||r(e)}])},[p("div",An,[p("div",Cn,[c(t.$slots,"home-hero-info-before",{},void 0,!0),c(t.$slots,"home-hero-info",{},()=>[t.name?(a(),u("h1",Bn,[p("span",{innerHTML:t.name,class:"clip"},null,8,Hn)])):h("",!0),t.text?(a(),u("p",{key:1,innerHTML:t.text,class:"text"},null,8,En)):h("",!0),t.tagline?(a(),u("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Dn)):h("",!0)],!0),c(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),u("div",Fn,[(a(!0),u(M,null,E(t.actions,o=>(a(),u("div",{key:o.link,class:"action"},[k(wn,{tag:"a",size:"medium",theme:o.theme,text:o.text,href:o.link,target:o.target,rel:o.rel},null,8,["theme","text","href","target","rel"])]))),128))])):h("",!0),c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||r(e)?(a(),u("div",On,[p("div",jn,[Un,c(t.$slots,"home-hero-image",{},()=>[t.image?(a(),$(x,{key:0,class:"image-src",image:t.image},null,8,["image"])):h("",!0)],!0)])])):h("",!0)])],2))}}),zn=g(Gn,[["__scopeId","data-v-955009fc"]]),Kn=_({__name:"VPHomeHero",setup(n){const{frontmatter:e}=V();return(t,s)=>r(e).hero?(a(),$(zn,{key:0,class:"VPHomeHero",name:r(e).hero.name,text:r(e).hero.text,tagline:r(e).hero.tagline,image:r(e).hero.image,actions:r(e).hero.actions},{"home-hero-info-before":f(()=>[c(t.$slots,"home-hero-info-before")]),"home-hero-info":f(()=>[c(t.$slots,"home-hero-info")]),"home-hero-info-after":f(()=>[c(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":f(()=>[c(t.$slots,"home-hero-actions-after")]),"home-hero-image":f(()=>[c(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):h("",!0)}}),Rn=n=>(B("data-v-f5e9645b"),n=n(),H(),n),qn={class:"box"},Wn={key:0,class:"icon"},Jn=["innerHTML"],Yn=["innerHTML"],Xn=["innerHTML"],Qn={key:4,class:"link-text"},Zn={class:"link-text-value"},xn=Rn(()=>p("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),eo=_({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(n){return(e,t)=>(a(),$(F,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:f(()=>[p("article",qn,[typeof e.icon=="object"&&e.icon.wrap?(a(),u("div",Wn,[k(x,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),$(x,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),u("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Jn)):h("",!0),p("h2",{class:"title",innerHTML:e.title},null,8,Yn),e.details?(a(),u("p",{key:3,class:"details",innerHTML:e.details},null,8,Xn)):h("",!0),e.linkText?(a(),u("div",Qn,[p("p",Zn,[j(I(e.linkText)+" ",1),xn])])):h("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),to=g(eo,[["__scopeId","data-v-f5e9645b"]]),no={key:0,class:"VPFeatures"},oo={class:"container"},so={class:"items"},ao=_({__name:"VPFeatures",props:{features:{}},setup(n){const e=n,t=y(()=>{const s=e.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s>3)return"grid-4"}else return});return(s,o)=>s.features?(a(),u("div",no,[p("div",oo,[p("div",so,[(a(!0),u(M,null,E(s.features,i=>(a(),u("div",{key:i.title,class:N(["item",[t.value]])},[k(to,{icon:i.icon,title:i.title,details:i.details,link:i.link,"link-text":i.linkText,rel:i.rel,target:i.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):h("",!0)}}),ro=g(ao,[["__scopeId","data-v-d0a190d7"]]),io=_({__name:"VPHomeFeatures",setup(n){const{frontmatter:e}=V();return(t,s)=>r(e).features?(a(),$(ro,{key:0,class:"VPHomeFeatures",features:r(e).features},null,8,["features"])):h("",!0)}}),lo=_({__name:"VPHomeContent",setup(n){const{width:e}=xe({initialWidth:0,includeScrollbar:!1});return(t,s)=>(a(),u("div",{class:"vp-doc container",style:Ie(r(e)?{"--vp-offset":`calc(50% - ${r(e)/2}px)`}:{})},[c(t.$slots,"default",{},void 0,!0)],4))}}),co=g(lo,[["__scopeId","data-v-7a48a447"]]),uo={class:"VPHome"},vo=_({__name:"VPHome",setup(n){const{frontmatter:e}=V();return(t,s)=>{const o=W("Content");return a(),u("div",uo,[c(t.$slots,"home-hero-before",{},void 0,!0),k(Kn,null,{"home-hero-info-before":f(()=>[c(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(t.$slots,"home-hero-after",{},void 0,!0),c(t.$slots,"home-features-before",{},void 0,!0),k(io),c(t.$slots,"home-features-after",{},void 0,!0),r(e).markdownStyles!==!1?(a(),$(co,{key:0},{default:f(()=>[k(o)]),_:1})):(a(),$(o,{key:1}))])}}}),po=g(vo,[["__scopeId","data-v-cbb6ec48"]]),fo={},ho={class:"VPPage"};function _o(n,e){const t=W("Content");return a(),u("div",ho,[c(n.$slots,"page-top"),k(t),c(n.$slots,"page-bottom")])}const mo=g(fo,[["render",_o]]),bo=_({__name:"VPContent",setup(n){const{page:e,frontmatter:t}=V(),{hasSidebar:s}=U();return(o,i)=>(a(),u("div",{class:N(["VPContent",{"has-sidebar":r(s),"is-home":r(t).layout==="home"}]),id:"VPContent"},[r(e).isNotFound?c(o.$slots,"not-found",{key:0},()=>[k(Vt)],!0):r(t).layout==="page"?(a(),$(mo,{key:1},{"page-top":f(()=>[c(o.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(o.$slots,"page-bottom",{},void 0,!0)]),_:3})):r(t).layout==="home"?(a(),$(po,{key:2},{"home-hero-before":f(()=>[c(o.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(o.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(o.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(o.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(o.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(o.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(o.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(o.$slots,"home-features-after",{},void 0,!0)]),_:3})):r(t).layout&&r(t).layout!=="doc"?(a(),$(D(r(t).layout),{key:3})):(a(),$(Ln,{key:4},{"doc-top":f(()=>[c(o.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(o.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":f(()=>[c(o.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(o.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(o.$slots,"doc-after",{},void 0,!0)]),"aside-top":f(()=>[c(o.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":f(()=>[c(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(o.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":f(()=>[c(o.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),ko=g(bo,[["__scopeId","data-v-91765379"]]),$o={class:"container"},go=["innerHTML"],yo=["innerHTML"],Po=_({__name:"VPFooter",setup(n){const{theme:e,frontmatter:t}=V(),{hasSidebar:s}=U();return(o,i)=>r(e).footer&&r(t).footer!==!1?(a(),u("footer",{key:0,class:N(["VPFooter",{"has-sidebar":r(s)}])},[p("div",$o,[r(e).footer.message?(a(),u("p",{key:0,class:"message",innerHTML:r(e).footer.message},null,8,go)):h("",!0),r(e).footer.copyright?(a(),u("p",{key:1,class:"copyright",innerHTML:r(e).footer.copyright},null,8,yo)):h("",!0)])],2)):h("",!0)}}),So=g(Po,[["__scopeId","data-v-c970a860"]]);function Vo(){const{theme:n,frontmatter:e}=V(),t=Te([]),s=y(()=>t.value.length>0);return te(()=>{t.value=ke(e.value.outline??n.value.outline)}),{headers:t,hasLocalNav:s}}const Lo=n=>(B("data-v-bc9dc845"),n=n(),H(),n),To={class:"menu-text"},wo=Lo(()=>p("span",{class:"vpi-chevron-right icon"},null,-1)),Io={class:"header"},No={class:"outline"},Mo=_({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(n){const e=n,{theme:t}=V(),s=T(!1),o=T(0),i=T(),l=T();function d(b){var P;(P=i.value)!=null&&P.contains(b.target)||(s.value=!1)}O(s,b=>{if(b){document.addEventListener("click",d);return}document.removeEventListener("click",d)}),ce("Escape",()=>{s.value=!1}),te(()=>{s.value=!1});function v(){s.value=!s.value,o.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function m(b){b.target.classList.contains("outline-link")&&(l.value&&(l.value.style.transition="none"),Ne(()=>{s.value=!1}))}function L(){s.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(b,P)=>(a(),u("div",{class:"VPLocalNavOutlineDropdown",style:Ie({"--vp-vh":o.value+"px"}),ref_key:"main",ref:i},[b.headers.length>0?(a(),u("button",{key:0,onClick:v,class:N({open:s.value})},[p("span",To,I(r(He)(r(t))),1),wo],2)):(a(),u("button",{key:1,onClick:L},I(r(t).returnToTopLabel||"Return to top"),1)),k(pe,{name:"flyout"},{default:f(()=>[s.value?(a(),u("div",{key:0,ref_key:"items",ref:l,class:"items",onClick:m},[p("div",Io,[p("a",{class:"top-link",href:"#",onClick:L},I(r(t).returnToTopLabel||"Return to top"),1)]),p("div",No,[k(Ee,{headers:b.headers},null,8,["headers"])])],512)):h("",!0)]),_:1})],4))}}),Ao=g(Mo,[["__scopeId","data-v-bc9dc845"]]),Co=n=>(B("data-v-070ab83d"),n=n(),H(),n),Bo={class:"container"},Ho=["aria-expanded"],Eo=Co(()=>p("span",{class:"vpi-align-left menu-icon"},null,-1)),Do={class:"menu-text"},Fo=_({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(n){const{theme:e,frontmatter:t}=V(),{hasSidebar:s}=U(),{headers:o}=Vo(),{y:i}=Me(),l=T(0);R(()=>{l.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),te(()=>{o.value=ke(t.value.outline??e.value.outline)});const d=y(()=>o.value.length===0),v=y(()=>d.value&&!s.value),m=y(()=>({VPLocalNav:!0,"has-sidebar":s.value,empty:d.value,fixed:v.value}));return(L,b)=>r(t).layout!=="home"&&(!v.value||r(i)>=l.value)?(a(),u("div",{key:0,class:N(m.value)},[p("div",Bo,[r(s)?(a(),u("button",{key:0,class:"menu","aria-expanded":L.open,"aria-controls":"VPSidebarNav",onClick:b[0]||(b[0]=P=>L.$emit("open-menu"))},[Eo,p("span",Do,I(r(e).sidebarMenuLabel||"Menu"),1)],8,Ho)):h("",!0),k(Ao,{headers:r(o),navHeight:l.value},null,8,["headers","navHeight"])])],2)):h("",!0)}}),Oo=g(Fo,[["__scopeId","data-v-070ab83d"]]);function jo(){const n=T(!1);function e(){n.value=!0,window.addEventListener("resize",o)}function t(){n.value=!1,window.removeEventListener("resize",o)}function s(){n.value?t():e()}function o(){window.outerWidth>=768&&t()}const i=ne();return O(()=>i.path,t),{isScreenOpen:n,openScreen:e,closeScreen:t,toggleScreen:s}}const Uo={},Go={class:"VPSwitch",type:"button",role:"switch"},zo={class:"check"},Ko={key:0,class:"icon"};function Ro(n,e){return a(),u("button",Go,[p("span",zo,[n.$slots.default?(a(),u("span",Ko,[c(n.$slots,"default",{},void 0,!0)])):h("",!0)])])}const qo=g(Uo,[["render",Ro],["__scopeId","data-v-4a1c76db"]]),Fe=n=>(B("data-v-e40a8bb6"),n=n(),H(),n),Wo=Fe(()=>p("span",{class:"vpi-sun sun"},null,-1)),Jo=Fe(()=>p("span",{class:"vpi-moon moon"},null,-1)),Yo=_({__name:"VPSwitchAppearance",setup(n){const{isDark:e,theme:t}=V(),s=Y("toggle-appearance",()=>{e.value=!e.value}),o=T("");return _e(()=>{o.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(i,l)=>(a(),$(qo,{title:o.value,class:"VPSwitchAppearance","aria-checked":r(e),onClick:r(s)},{default:f(()=>[Wo,Jo]),_:1},8,["title","aria-checked","onClick"]))}}),$e=g(Yo,[["__scopeId","data-v-e40a8bb6"]]),Xo={key:0,class:"VPNavBarAppearance"},Qo=_({__name:"VPNavBarAppearance",setup(n){const{site:e}=V();return(t,s)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",Xo,[k($e)])):h("",!0)}}),Zo=g(Qo,[["__scopeId","data-v-af096f4a"]]),ge=T();let Oe=!1,ie=0;function xo(n){const e=T(!1);if(oe){!Oe&&es(),ie++;const t=O(ge,s=>{var o,i,l;s===n.el.value||(o=n.el.value)!=null&&o.contains(s)?(e.value=!0,(i=n.onFocus)==null||i.call(n)):(e.value=!1,(l=n.onBlur)==null||l.call(n))});he(()=>{t(),ie--,ie||ts()})}return et(e)}function es(){document.addEventListener("focusin",je),Oe=!0,ge.value=document.activeElement}function ts(){document.removeEventListener("focusin",je)}function je(){ge.value=document.activeElement}const ns={class:"VPMenuLink"},os=_({__name:"VPMenuLink",props:{item:{}},setup(n){const{page:e}=V();return(t,s)=>(a(),u("div",ns,[k(F,{class:N({active:r(q)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:f(()=>[j(I(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),se=g(os,[["__scopeId","data-v-8b74d055"]]),ss={class:"VPMenuGroup"},as={key:0,class:"title"},rs=_({__name:"VPMenuGroup",props:{text:{},items:{}},setup(n){return(e,t)=>(a(),u("div",ss,[e.text?(a(),u("p",as,I(e.text),1)):h("",!0),(a(!0),u(M,null,E(e.items,s=>(a(),u(M,null,["link"in s?(a(),$(se,{key:0,item:s},null,8,["item"])):h("",!0)],64))),256))]))}}),is=g(rs,[["__scopeId","data-v-48c802d0"]]),ls={class:"VPMenu"},cs={key:0,class:"items"},us=_({__name:"VPMenu",props:{items:{}},setup(n){return(e,t)=>(a(),u("div",ls,[e.items?(a(),u("div",cs,[(a(!0),u(M,null,E(e.items,s=>(a(),u(M,{key:JSON.stringify(s)},["link"in s?(a(),$(se,{key:0,item:s},null,8,["item"])):"component"in s?(a(),$(D(s.component),K({key:1,ref_for:!0},s.props),null,16)):(a(),$(is,{key:2,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):h("",!0),c(e.$slots,"default",{},void 0,!0)]))}}),ds=g(us,[["__scopeId","data-v-7dd3104a"]]),vs=n=>(B("data-v-e5380155"),n=n(),H(),n),ps=["aria-expanded","aria-label"],fs={key:0,class:"text"},hs=["innerHTML"],_s=vs(()=>p("span",{class:"vpi-chevron-down text-icon"},null,-1)),ms={key:1,class:"vpi-more-horizontal icon"},bs={class:"menu"},ks=_({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(n){const e=T(!1),t=T();xo({el:t,onBlur:s});function s(){e.value=!1}return(o,i)=>(a(),u("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:i[1]||(i[1]=l=>e.value=!0),onMouseleave:i[2]||(i[2]=l=>e.value=!1)},[p("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":o.label,onClick:i[0]||(i[0]=l=>e.value=!e.value)},[o.button||o.icon?(a(),u("span",fs,[o.icon?(a(),u("span",{key:0,class:N([o.icon,"option-icon"])},null,2)):h("",!0),o.button?(a(),u("span",{key:1,innerHTML:o.button},null,8,hs)):h("",!0),_s])):(a(),u("span",ms))],8,ps),p("div",bs,[k(ds,{items:o.items},{default:f(()=>[c(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),ye=g(ks,[["__scopeId","data-v-e5380155"]]),$s=["href","aria-label","innerHTML"],gs=_({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(n){const e=n,t=y(()=>typeof e.icon=="object"?e.icon.svg:``);return(s,o)=>(a(),u("a",{class:"VPSocialLink no-icon",href:s.link,"aria-label":s.ariaLabel??(typeof s.icon=="string"?s.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,$s))}}),ys=g(gs,[["__scopeId","data-v-717b8b75"]]),Ps={class:"VPSocialLinks"},Ss=_({__name:"VPSocialLinks",props:{links:{}},setup(n){return(e,t)=>(a(),u("div",Ps,[(a(!0),u(M,null,E(e.links,({link:s,icon:o,ariaLabel:i})=>(a(),$(ys,{key:s,icon:o,link:s,ariaLabel:i},null,8,["icon","link","ariaLabel"]))),128))]))}}),Pe=g(Ss,[["__scopeId","data-v-ee7a9424"]]),Vs={key:0,class:"group translations"},Ls={class:"trans-title"},Ts={key:1,class:"group"},ws={class:"item appearance"},Is={class:"label"},Ns={class:"appearance-action"},Ms={key:2,class:"group"},As={class:"item social-links"},Cs=_({__name:"VPNavBarExtra",setup(n){const{site:e,theme:t}=V(),{localeLinks:s,currentLang:o}=Q({correspondingLink:!0}),i=y(()=>s.value.length&&o.value.label||e.value.appearance||t.value.socialLinks);return(l,d)=>i.value?(a(),$(ye,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:f(()=>[r(s).length&&r(o).label?(a(),u("div",Vs,[p("p",Ls,I(r(o).label),1),(a(!0),u(M,null,E(r(s),v=>(a(),$(se,{key:v.link,item:v},null,8,["item"]))),128))])):h("",!0),r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",Ts,[p("div",ws,[p("p",Is,I(r(t).darkModeSwitchLabel||"Appearance"),1),p("div",Ns,[k($e)])])])):h("",!0),r(t).socialLinks?(a(),u("div",Ms,[p("div",As,[k(Pe,{class:"social-links-list",links:r(t).socialLinks},null,8,["links"])])])):h("",!0)]),_:1})):h("",!0)}}),Bs=g(Cs,[["__scopeId","data-v-925effce"]]),Hs=n=>(B("data-v-5dea55bf"),n=n(),H(),n),Es=["aria-expanded"],Ds=Hs(()=>p("span",{class:"container"},[p("span",{class:"top"}),p("span",{class:"middle"}),p("span",{class:"bottom"})],-1)),Fs=[Ds],Os=_({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(n){return(e,t)=>(a(),u("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]=s=>e.$emit("click"))},Fs,10,Es))}}),js=g(Os,[["__scopeId","data-v-5dea55bf"]]),Us=["innerHTML"],Gs=_({__name:"VPNavBarMenuLink",props:{item:{}},setup(n){const{page:e}=V();return(t,s)=>(a(),$(F,{class:N({VPNavBarMenuLink:!0,active:r(q)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:f(()=>[p("span",{innerHTML:t.item.text},null,8,Us)]),_:1},8,["class","href","noIcon","target","rel"]))}}),zs=g(Gs,[["__scopeId","data-v-ed5ac1f6"]]),Ks=_({__name:"VPNavBarMenuGroup",props:{item:{}},setup(n){const e=n,{page:t}=V(),s=i=>"component"in i?!1:"link"in i?q(t.value.relativePath,i.link,!!e.item.activeMatch):i.items.some(s),o=y(()=>s(e.item));return(i,l)=>(a(),$(ye,{class:N({VPNavBarMenuGroup:!0,active:r(q)(r(t).relativePath,i.item.activeMatch,!!i.item.activeMatch)||o.value}),button:i.item.text,items:i.item.items},null,8,["class","button","items"]))}}),Rs=n=>(B("data-v-e6d46098"),n=n(),H(),n),qs={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Ws=Rs(()=>p("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),Js=_({__name:"VPNavBarMenu",setup(n){const{theme:e}=V();return(t,s)=>r(e).nav?(a(),u("nav",qs,[Ws,(a(!0),u(M,null,E(r(e).nav,o=>(a(),u(M,{key:JSON.stringify(o)},["link"in o?(a(),$(zs,{key:0,item:o},null,8,["item"])):"component"in o?(a(),$(D(o.component),K({key:1,ref_for:!0},o.props),null,16)):(a(),$(Ks,{key:2,item:o},null,8,["item"]))],64))),128))])):h("",!0)}}),Ys=g(Js,[["__scopeId","data-v-e6d46098"]]);function Xs(n){const{localeIndex:e,theme:t}=V();function s(o){var A,C,w;const i=o.split("."),l=(A=t.value.search)==null?void 0:A.options,d=l&&typeof l=="object",v=d&&((w=(C=l.locales)==null?void 0:C[e.value])==null?void 0:w.translations)||null,m=d&&l.translations||null;let L=v,b=m,P=n;const S=i.pop();for(const G of i){let z=null;const J=P==null?void 0:P[G];J&&(z=P=J);const ae=b==null?void 0:b[G];ae&&(z=b=ae);const re=L==null?void 0:L[G];re&&(z=L=re),J||(P=z),ae||(b=z),re||(L=z)}return(L==null?void 0:L[S])??(b==null?void 0:b[S])??(P==null?void 0:P[S])??""}return s}const Qs=["aria-label"],Zs={class:"DocSearch-Button-Container"},xs=p("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),ea={class:"DocSearch-Button-Placeholder"},ta=p("span",{class:"DocSearch-Button-Keys"},[p("kbd",{class:"DocSearch-Button-Key"}),p("kbd",{class:"DocSearch-Button-Key"},"K")],-1),Se=_({__name:"VPNavBarSearchButton",setup(n){const t=Xs({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(s,o)=>(a(),u("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":r(t)("button.buttonAriaLabel")},[p("span",Zs,[xs,p("span",ea,I(r(t)("button.buttonText")),1)]),ta],8,Qs))}}),na={class:"VPNavBarSearch"},oa={id:"local-search"},sa={key:1,id:"docsearch"},aa=_({__name:"VPNavBarSearch",setup(n){const e=tt(()=>nt(()=>import("./VPLocalSearchBox.BQzORzSF.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:s}=V(),o=T(!1),i=T(!1);R(()=>{});function l(){o.value||(o.value=!0,setTimeout(d,16))}function d(){const b=new Event("keydown");b.key="k",b.metaKey=!0,window.dispatchEvent(b),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||d()},16)}function v(b){const P=b.target,S=P.tagName;return P.isContentEditable||S==="INPUT"||S==="SELECT"||S==="TEXTAREA"}const m=T(!1);ce("k",b=>{(b.ctrlKey||b.metaKey)&&(b.preventDefault(),m.value=!0)}),ce("/",b=>{v(b)||(b.preventDefault(),m.value=!0)});const L="local";return(b,P)=>{var S;return a(),u("div",na,[r(L)==="local"?(a(),u(M,{key:0},[m.value?(a(),$(r(e),{key:0,onClose:P[0]||(P[0]=A=>m.value=!1)})):h("",!0),p("div",oa,[k(Se,{onClick:P[1]||(P[1]=A=>m.value=!0)})])],64)):r(L)==="algolia"?(a(),u(M,{key:1},[o.value?(a(),$(r(t),{key:0,algolia:((S=r(s).search)==null?void 0:S.options)??r(s).algolia,onVnodeBeforeMount:P[2]||(P[2]=A=>i.value=!0)},null,8,["algolia"])):h("",!0),i.value?h("",!0):(a(),u("div",sa,[k(Se,{onClick:l})]))],64)):h("",!0)])}}}),ra=_({__name:"VPNavBarSocialLinks",setup(n){const{theme:e}=V();return(t,s)=>r(e).socialLinks?(a(),$(Pe,{key:0,class:"VPNavBarSocialLinks",links:r(e).socialLinks},null,8,["links"])):h("",!0)}}),ia=g(ra,[["__scopeId","data-v-164c457f"]]),la=["href","rel","target"],ca={key:1},ua={key:2},da=_({__name:"VPNavBarTitle",setup(n){const{site:e,theme:t}=V(),{hasSidebar:s}=U(),{currentLang:o}=Q(),i=y(()=>{var v;return typeof t.value.logoLink=="string"?t.value.logoLink:(v=t.value.logoLink)==null?void 0:v.link}),l=y(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.rel}),d=y(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.target});return(v,m)=>(a(),u("div",{class:N(["VPNavBarTitle",{"has-sidebar":r(s)}])},[p("a",{class:"title",href:i.value??r(be)(r(o).link),rel:l.value,target:d.value},[c(v.$slots,"nav-bar-title-before",{},void 0,!0),r(t).logo?(a(),$(x,{key:0,class:"logo",image:r(t).logo},null,8,["image"])):h("",!0),r(t).siteTitle?(a(),u("span",ca,I(r(t).siteTitle),1)):r(t).siteTitle===void 0?(a(),u("span",ua,I(r(e).title),1)):h("",!0),c(v.$slots,"nav-bar-title-after",{},void 0,!0)],8,la)],2))}}),va=g(da,[["__scopeId","data-v-28a961f9"]]),pa={class:"items"},fa={class:"title"},ha=_({__name:"VPNavBarTranslations",setup(n){const{theme:e}=V(),{localeLinks:t,currentLang:s}=Q({correspondingLink:!0});return(o,i)=>r(t).length&&r(s).label?(a(),$(ye,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:r(e).langMenuLabel||"Change language"},{default:f(()=>[p("div",pa,[p("p",fa,I(r(s).label),1),(a(!0),u(M,null,E(r(t),l=>(a(),$(se,{key:l.link,item:l},null,8,["item"]))),128))])]),_:1},8,["label"])):h("",!0)}}),_a=g(ha,[["__scopeId","data-v-c80d9ad0"]]),ma=n=>(B("data-v-822684d1"),n=n(),H(),n),ba={class:"wrapper"},ka={class:"container"},$a={class:"title"},ga={class:"content"},ya={class:"content-body"},Pa=ma(()=>p("div",{class:"divider"},[p("div",{class:"divider-line"})],-1)),Sa=_({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(n){const e=n,{y:t}=Me(),{hasSidebar:s}=U(),{frontmatter:o}=V(),i=T({});return _e(()=>{i.value={"has-sidebar":s.value,home:o.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(l,d)=>(a(),u("div",{class:N(["VPNavBar",i.value])},[p("div",ba,[p("div",ka,[p("div",$a,[k(va,null,{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),p("div",ga,[p("div",ya,[c(l.$slots,"nav-bar-content-before",{},void 0,!0),k(aa,{class:"search"}),k(Ys,{class:"menu"}),k(_a,{class:"translations"}),k(Zo,{class:"appearance"}),k(ia,{class:"social-links"}),k(Bs,{class:"extra"}),c(l.$slots,"nav-bar-content-after",{},void 0,!0),k(js,{class:"hamburger",active:l.isScreenOpen,onClick:d[0]||(d[0]=v=>l.$emit("toggle-screen"))},null,8,["active"])])])])]),Pa],2))}}),Va=g(Sa,[["__scopeId","data-v-822684d1"]]),La={key:0,class:"VPNavScreenAppearance"},Ta={class:"text"},wa=_({__name:"VPNavScreenAppearance",setup(n){const{site:e,theme:t}=V();return(s,o)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",La,[p("p",Ta,I(r(t).darkModeSwitchLabel||"Appearance"),1),k($e)])):h("",!0)}}),Ia=g(wa,[["__scopeId","data-v-ffb44008"]]),Na=_({__name:"VPNavScreenMenuLink",props:{item:{}},setup(n){const e=Y("close-screen");return(t,s)=>(a(),$(F,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),Ma=g(Na,[["__scopeId","data-v-27d04aeb"]]),Aa=_({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(n){const e=Y("close-screen");return(t,s)=>(a(),$(F,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e)},{default:f(()=>[j(I(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Ue=g(Aa,[["__scopeId","data-v-7179dbb7"]]),Ca={class:"VPNavScreenMenuGroupSection"},Ba={key:0,class:"title"},Ha=_({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(n){return(e,t)=>(a(),u("div",Ca,[e.text?(a(),u("p",Ba,I(e.text),1)):h("",!0),(a(!0),u(M,null,E(e.items,s=>(a(),$(Ue,{key:s.text,item:s},null,8,["item"]))),128))]))}}),Ea=g(Ha,[["__scopeId","data-v-4b8941ac"]]),Da=n=>(B("data-v-875057a5"),n=n(),H(),n),Fa=["aria-controls","aria-expanded"],Oa=["innerHTML"],ja=Da(()=>p("span",{class:"vpi-plus button-icon"},null,-1)),Ua=["id"],Ga={key:0,class:"item"},za={key:1,class:"item"},Ka={key:2,class:"group"},Ra=_({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(n){const e=n,t=T(!1),s=y(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function o(){t.value=!t.value}return(i,l)=>(a(),u("div",{class:N(["VPNavScreenMenuGroup",{open:t.value}])},[p("button",{class:"button","aria-controls":s.value,"aria-expanded":t.value,onClick:o},[p("span",{class:"button-text",innerHTML:i.text},null,8,Oa),ja],8,Fa),p("div",{id:s.value,class:"items"},[(a(!0),u(M,null,E(i.items,d=>(a(),u(M,{key:JSON.stringify(d)},["link"in d?(a(),u("div",Ga,[k(Ue,{item:d},null,8,["item"])])):"component"in d?(a(),u("div",za,[(a(),$(D(d.component),K({ref_for:!0},d.props,{"screen-menu":""}),null,16))])):(a(),u("div",Ka,[k(Ea,{text:d.text,items:d.items},null,8,["text","items"])]))],64))),128))],8,Ua)],2))}}),qa=g(Ra,[["__scopeId","data-v-875057a5"]]),Wa={key:0,class:"VPNavScreenMenu"},Ja=_({__name:"VPNavScreenMenu",setup(n){const{theme:e}=V();return(t,s)=>r(e).nav?(a(),u("nav",Wa,[(a(!0),u(M,null,E(r(e).nav,o=>(a(),u(M,{key:JSON.stringify(o)},["link"in o?(a(),$(Ma,{key:0,item:o},null,8,["item"])):"component"in o?(a(),$(D(o.component),K({key:1,ref_for:!0},o.props,{"screen-menu":""}),null,16)):(a(),$(qa,{key:2,text:o.text||"",items:o.items},null,8,["text","items"]))],64))),128))])):h("",!0)}}),Ya=_({__name:"VPNavScreenSocialLinks",setup(n){const{theme:e}=V();return(t,s)=>r(e).socialLinks?(a(),$(Pe,{key:0,class:"VPNavScreenSocialLinks",links:r(e).socialLinks},null,8,["links"])):h("",!0)}}),Ge=n=>(B("data-v-362991c2"),n=n(),H(),n),Xa=Ge(()=>p("span",{class:"vpi-languages icon lang"},null,-1)),Qa=Ge(()=>p("span",{class:"vpi-chevron-down icon chevron"},null,-1)),Za={class:"list"},xa=_({__name:"VPNavScreenTranslations",setup(n){const{localeLinks:e,currentLang:t}=Q({correspondingLink:!0}),s=T(!1);function o(){s.value=!s.value}return(i,l)=>r(e).length&&r(t).label?(a(),u("div",{key:0,class:N(["VPNavScreenTranslations",{open:s.value}])},[p("button",{class:"title",onClick:o},[Xa,j(" "+I(r(t).label)+" ",1),Qa]),p("ul",Za,[(a(!0),u(M,null,E(r(e),d=>(a(),u("li",{key:d.link,class:"item"},[k(F,{class:"link",href:d.link},{default:f(()=>[j(I(d.text),1)]),_:2},1032,["href"])]))),128))])],2)):h("",!0)}}),er=g(xa,[["__scopeId","data-v-362991c2"]]),tr={class:"container"},nr=_({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(n){const e=T(null),t=Ae(oe?document.body:null);return(s,o)=>(a(),$(pe,{name:"fade",onEnter:o[0]||(o[0]=i=>t.value=!0),onAfterLeave:o[1]||(o[1]=i=>t.value=!1)},{default:f(()=>[s.open?(a(),u("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[p("div",tr,[c(s.$slots,"nav-screen-content-before",{},void 0,!0),k(Ja,{class:"menu"}),k(er,{class:"translations"}),k(Ia,{class:"appearance"}),k(Ya,{class:"social-links"}),c(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):h("",!0)]),_:3}))}}),or=g(nr,[["__scopeId","data-v-833aabba"]]),sr={key:0,class:"VPNav"},ar=_({__name:"VPNav",setup(n){const{isScreenOpen:e,closeScreen:t,toggleScreen:s}=jo(),{frontmatter:o}=V(),i=y(()=>o.value.navbar!==!1);return me("close-screen",t),ee(()=>{oe&&document.documentElement.classList.toggle("hide-nav",!i.value)}),(l,d)=>i.value?(a(),u("header",sr,[k(Va,{"is-screen-open":r(e),onToggleScreen:r(s)},{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(l.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),k(or,{open:r(e)},{"nav-screen-content-before":f(()=>[c(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(l.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):h("",!0)}}),rr=g(ar,[["__scopeId","data-v-f1e365da"]]),ze=n=>(B("data-v-196b2e5f"),n=n(),H(),n),ir=["role","tabindex"],lr=ze(()=>p("div",{class:"indicator"},null,-1)),cr=ze(()=>p("span",{class:"vpi-chevron-right caret-icon"},null,-1)),ur=[cr],dr={key:1,class:"items"},vr=_({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(n){const e=n,{collapsed:t,collapsible:s,isLink:o,isActiveLink:i,hasActiveLink:l,hasChildren:d,toggle:v}=It(y(()=>e.item)),m=y(()=>d.value?"section":"div"),L=y(()=>o.value?"a":"div"),b=y(()=>d.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),P=y(()=>o.value?void 0:"button"),S=y(()=>[[`level-${e.depth}`],{collapsible:s.value},{collapsed:t.value},{"is-link":o.value},{"is-active":i.value},{"has-active":l.value}]);function A(w){"key"in w&&w.key!=="Enter"||!e.item.link&&v()}function C(){e.item.link&&v()}return(w,G)=>{const z=W("VPSidebarItem",!0);return a(),$(D(m.value),{class:N(["VPSidebarItem",S.value])},{default:f(()=>[w.item.text?(a(),u("div",K({key:0,class:"item",role:P.value},st(w.item.items?{click:A,keydown:A}:{},!0),{tabindex:w.item.items&&0}),[lr,w.item.link?(a(),$(F,{key:0,tag:L.value,class:"link",href:w.item.link,rel:w.item.rel,target:w.item.target},{default:f(()=>[(a(),$(D(b.value),{class:"text",innerHTML:w.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),$(D(b.value),{key:1,class:"text",innerHTML:w.item.text},null,8,["innerHTML"])),w.item.collapsed!=null&&w.item.items&&w.item.items.length?(a(),u("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:C,onKeydown:ot(C,["enter"]),tabindex:"0"},ur,32)):h("",!0)],16,ir)):h("",!0),w.item.items&&w.item.items.length?(a(),u("div",dr,[w.depth<5?(a(!0),u(M,{key:0},E(w.item.items,J=>(a(),$(z,{key:J.text,item:J,depth:w.depth+1},null,8,["item","depth"]))),128)):h("",!0)])):h("",!0)]),_:1},8,["class"])}}}),pr=g(vr,[["__scopeId","data-v-196b2e5f"]]),fr=_({__name:"VPSidebarGroup",props:{items:{}},setup(n){const e=T(!0);let t=null;return R(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),at(()=>{t!=null&&(clearTimeout(t),t=null)}),(s,o)=>(a(!0),u(M,null,E(s.items,i=>(a(),u("div",{key:i.text,class:N(["group",{"no-transition":e.value}])},[k(pr,{item:i,depth:0},null,8,["item"])],2))),128))}}),hr=g(fr,[["__scopeId","data-v-9e426adc"]]),Ke=n=>(B("data-v-18756405"),n=n(),H(),n),_r=Ke(()=>p("div",{class:"curtain"},null,-1)),mr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},br=Ke(()=>p("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),kr=_({__name:"VPSidebar",props:{open:{type:Boolean}},setup(n){const{sidebarGroups:e,hasSidebar:t}=U(),s=n,o=T(null),i=Ae(oe?document.body:null);O([s,o],()=>{var d;s.open?(i.value=!0,(d=o.value)==null||d.focus()):i.value=!1},{immediate:!0,flush:"post"});const l=T(0);return O(e,()=>{l.value+=1},{deep:!0}),(d,v)=>r(t)?(a(),u("aside",{key:0,class:N(["VPSidebar",{open:d.open}]),ref_key:"navEl",ref:o,onClick:v[0]||(v[0]=rt(()=>{},["stop"]))},[_r,p("nav",mr,[br,c(d.$slots,"sidebar-nav-before",{},void 0,!0),(a(),$(hr,{items:r(e),key:l.value},null,8,["items"])),c(d.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):h("",!0)}}),$r=g(kr,[["__scopeId","data-v-18756405"]]),gr=_({__name:"VPSkipLink",setup(n){const e=ne(),t=T();O(()=>e.path,()=>t.value.focus());function s({target:o}){const i=document.getElementById(decodeURIComponent(o.hash).slice(1));if(i){const l=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",l)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",l),i.focus(),window.scrollTo(0,0)}}return(o,i)=>(a(),u(M,null,[p("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),p("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}}),yr=g(gr,[["__scopeId","data-v-c3508ec8"]]),Pr=_({__name:"Layout",setup(n){const{isOpen:e,open:t,close:s}=U(),o=ne();O(()=>o.path,s),wt(e,s);const{frontmatter:i}=V(),l=Ce(),d=y(()=>!!l["home-hero-image"]);return me("hero-image-slot-exists",d),(v,m)=>{const L=W("Content");return r(i).layout!==!1?(a(),u("div",{key:0,class:N(["Layout",r(i).pageClass])},[c(v.$slots,"layout-top",{},void 0,!0),k(yr),k(pt,{class:"backdrop",show:r(e),onClick:r(s)},null,8,["show","onClick"]),k(rr,null,{"nav-bar-title-before":f(()=>[c(v.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(v.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(v.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(v.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":f(()=>[c(v.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(v.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),k(Oo,{open:r(e),onOpenMenu:r(t)},null,8,["open","onOpenMenu"]),k($r,{open:r(e)},{"sidebar-nav-before":f(()=>[c(v.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":f(()=>[c(v.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),k(ko,null,{"page-top":f(()=>[c(v.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(v.$slots,"page-bottom",{},void 0,!0)]),"not-found":f(()=>[c(v.$slots,"not-found",{},void 0,!0)]),"home-hero-before":f(()=>[c(v.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(v.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(v.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(v.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(v.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(v.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(v.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(v.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(v.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":f(()=>[c(v.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(v.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(v.$slots,"doc-after",{},void 0,!0)]),"doc-top":f(()=>[c(v.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(v.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":f(()=>[c(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),k(So),c(v.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),$(L,{key:1}))}}}),Sr=g(Pr,[["__scopeId","data-v-a9a9e638"]]),Ve={Layout:Sr,enhanceApp:({app:n})=>{n.component("Badge",ut)}},Vr=n=>{if(typeof document>"u")return{stabilizeScrollPosition:o=>async(...i)=>o(...i)};const e=document.documentElement;return{stabilizeScrollPosition:s=>async(...o)=>{const i=s(...o),l=n.value;if(!l)return i;const d=l.offsetTop-e.scrollTop;return await Ne(),e.scrollTop=l.offsetTop-d,i}}},Re="vitepress:tabSharedState",X=typeof localStorage<"u"?localStorage:null,qe="vitepress:tabsSharedState",Lr=()=>{const n=X==null?void 0:X.getItem(qe);if(n)try{return JSON.parse(n)}catch{}return{}},Tr=n=>{X&&X.setItem(qe,JSON.stringify(n))},wr=n=>{const e=it({});O(()=>e.content,(t,s)=>{t&&s&&Tr(t)},{deep:!0}),n.provide(Re,e)},Ir=(n,e)=>{const t=Y(Re);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");R(()=>{t.content||(t.content=Lr())});const s=T(),o=y({get(){var v;const l=e.value,d=n.value;if(l){const m=(v=t.content)==null?void 0:v[l];if(m&&d.includes(m))return m}else{const m=s.value;if(m)return m}return d[0]},set(l){const d=e.value;d?t.content&&(t.content[d]=l):s.value=l}});return{selected:o,select:l=>{o.value=l}}};let Le=0;const Nr=()=>(Le++,""+Le);function Mr(){const n=Ce();return y(()=>{var s;const t=(s=n.default)==null?void 0:s.call(n);return t?t.filter(o=>typeof o.type=="object"&&"__name"in o.type&&o.type.__name==="PluginTabsTab"&&o.props).map(o=>{var i;return(i=o.props)==null?void 0:i.label}):[]})}const We="vitepress:tabSingleState",Ar=n=>{me(We,n)},Cr=()=>{const n=Y(We);if(!n)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return n},Br={class:"plugin-tabs"},Hr=["id","aria-selected","aria-controls","tabindex","onClick"],Er=_({__name:"PluginTabs",props:{sharedStateKey:{}},setup(n){const e=n,t=Mr(),{selected:s,select:o}=Ir(t,lt(e,"sharedStateKey")),i=T(),{stabilizeScrollPosition:l}=Vr(i),d=l(o),v=T([]),m=b=>{var A;const P=t.value.indexOf(s.value);let S;b.key==="ArrowLeft"?S=P>=1?P-1:t.value.length-1:b.key==="ArrowRight"&&(S=P(a(),u("div",Br,[p("div",{ref_key:"tablist",ref:i,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:m},[(a(!0),u(M,null,E(r(t),S=>(a(),u("button",{id:`tab-${S}-${r(L)}`,ref_for:!0,ref_key:"buttonRefs",ref:v,key:S,role:"tab",class:"plugin-tabs--tab","aria-selected":S===r(s),"aria-controls":`panel-${S}-${r(L)}`,tabindex:S===r(s)?0:-1,onClick:()=>r(d)(S)},I(S),9,Hr))),128))],544),c(b.$slots,"default")]))}}),Dr=["id","aria-labelledby"],Fr=_({__name:"PluginTabsTab",props:{label:{}},setup(n){const{uid:e,selected:t}=Cr();return(s,o)=>r(t)===s.label?(a(),u("div",{key:0,id:`panel-${s.label}-${r(e)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${s.label}-${r(e)}`},[c(s.$slots,"default",{},void 0,!0)],8,Dr)):h("",!0)}}),Or=g(Fr,[["__scopeId","data-v-9b0d03d2"]]),jr=n=>{wr(n),n.component("PluginTabs",Er),n.component("PluginTabsTab",Or)},Gr={extends:Ve,Layout(){return ct(Ve.Layout,null,{})},enhanceApp({app:n,router:e,siteData:t}){jr(n)}};export{Gr as R,Xs as c,V as u}; diff --git a/dev/assets/zhfsxlq.Dig-DWOQ.png b/dev/assets/cifeaqx.Dig-DWOQ.png similarity index 100% rename from dev/assets/zhfsxlq.Dig-DWOQ.png rename to dev/assets/cifeaqx.Dig-DWOQ.png diff --git a/dev/assets/olvcwxh._0R9BbFk.png b/dev/assets/dgfelxe._0R9BbFk.png similarity index 100% rename from dev/assets/olvcwxh._0R9BbFk.png rename to dev/assets/dgfelxe._0R9BbFk.png diff --git a/dev/assets/jxbxcun.DC3TvBOO.png b/dev/assets/doyulqn.DC3TvBOO.png similarity index 100% rename from dev/assets/jxbxcun.DC3TvBOO.png rename to dev/assets/doyulqn.DC3TvBOO.png diff --git a/dev/assets/krsfyzm.DuBHk1fh.png b/dev/assets/dyqtlpa.DuBHk1fh.png similarity index 100% rename from dev/assets/krsfyzm.DuBHk1fh.png rename to dev/assets/dyqtlpa.DuBHk1fh.png diff --git a/dev/assets/experiments_accurate_accumulators.md.BPqWh7OV.js b/dev/assets/experiments_accurate_accumulators.md.CqEFN_MH.js similarity index 98% rename from dev/assets/experiments_accurate_accumulators.md.BPqWh7OV.js rename to dev/assets/experiments_accurate_accumulators.md.CqEFN_MH.js index af0a88eb7..ac7e8c6a4 100644 --- a/dev/assets/experiments_accurate_accumulators.md.BPqWh7OV.js +++ b/dev/assets/experiments_accurate_accumulators.md.CqEFN_MH.js @@ -1,4 +1,4 @@ -import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.B24clL9_.js";const o=JSON.parse('{"title":"Accurate accumulation","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/accurate_accumulators.md","filePath":"experiments/accurate_accumulators.md","lastUpdated":null}'),e={name:"experiments/accurate_accumulators.md"},n=t(`

Accurate accumulation

Accurate arithmetic is a technique which allows you to calculate using more precision than the provided numeric type.

We will use the accurate sum routines from AccurateArithmetic.jl to show the difference!

julia
import GeometryOps as GO, GeoInterface as GI
+import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.CpnCegiD.js";const o=JSON.parse('{"title":"Accurate accumulation","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/accurate_accumulators.md","filePath":"experiments/accurate_accumulators.md","lastUpdated":null}'),e={name:"experiments/accurate_accumulators.md"},n=t(`

Accurate accumulation

Accurate arithmetic is a technique which allows you to calculate using more precision than the provided numeric type.

We will use the accurate sum routines from AccurateArithmetic.jl to show the difference!

julia
import GeometryOps as GO, GeoInterface as GI
 using GeoJSON
 using AccurateArithmetic
 using NaturalEarth
diff --git a/dev/assets/experiments_accurate_accumulators.md.BPqWh7OV.lean.js b/dev/assets/experiments_accurate_accumulators.md.CqEFN_MH.lean.js
similarity index 73%
rename from dev/assets/experiments_accurate_accumulators.md.BPqWh7OV.lean.js
rename to dev/assets/experiments_accurate_accumulators.md.CqEFN_MH.lean.js
index 9ca67e2aa..7354444f4 100644
--- a/dev/assets/experiments_accurate_accumulators.md.BPqWh7OV.lean.js
+++ b/dev/assets/experiments_accurate_accumulators.md.CqEFN_MH.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.B24clL9_.js";const o=JSON.parse('{"title":"Accurate accumulation","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/accurate_accumulators.md","filePath":"experiments/accurate_accumulators.md","lastUpdated":null}'),e={name:"experiments/accurate_accumulators.md"},n=t("",16),l=[n];function h(p,k,d,r,c,g){return a(),i("div",null,l)}const u=s(e,[["render",h]]);export{o as __pageData,u as default};
+import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.CpnCegiD.js";const o=JSON.parse('{"title":"Accurate accumulation","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/accurate_accumulators.md","filePath":"experiments/accurate_accumulators.md","lastUpdated":null}'),e={name:"experiments/accurate_accumulators.md"},n=t("",16),l=[n];function h(p,k,d,r,c,g){return a(),i("div",null,l)}const u=s(e,[["render",h]]);export{o as __pageData,u as default};
diff --git a/dev/assets/experiments_predicates.md.Bv_nbSH7.js b/dev/assets/experiments_predicates.md.DS4MeDQL.js
similarity index 99%
rename from dev/assets/experiments_predicates.md.Bv_nbSH7.js
rename to dev/assets/experiments_predicates.md.DS4MeDQL.js
index f72c2886c..932ab18fe 100644
--- a/dev/assets/experiments_predicates.md.Bv_nbSH7.js
+++ b/dev/assets/experiments_predicates.md.DS4MeDQL.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as h}from"./chunks/framework.B24clL9_.js";const k="/GeometryOps.jl/dev/assets/aawycxi.0nxlbsqv.png",C=JSON.parse('{"title":"Predicates","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/predicates.md","filePath":"experiments/predicates.md","lastUpdated":null}'),n={name:"experiments/predicates.md"},p=h(`

Predicates

Exact vs fast predicates

Orient

julia
using CairoMakie
+import{_ as s,c as i,o as a,a7 as h}from"./chunks/framework.CpnCegiD.js";const k="/GeometryOps.jl/dev/assets/oglzmiy.BGGXnzMt.png",C=JSON.parse('{"title":"Predicates","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/predicates.md","filePath":"experiments/predicates.md","lastUpdated":null}'),n={name:"experiments/predicates.md"},p=h(`

Predicates

Exact vs fast predicates

Orient

julia
using CairoMakie
 import GeometryOps as GO, GeoInterface as GI, LibGEOS as LG
 import ExactPredicates
 using MultiFloats
diff --git a/dev/assets/experiments_predicates.md.Bv_nbSH7.lean.js b/dev/assets/experiments_predicates.md.DS4MeDQL.lean.js
similarity index 73%
rename from dev/assets/experiments_predicates.md.Bv_nbSH7.lean.js
rename to dev/assets/experiments_predicates.md.DS4MeDQL.lean.js
index ba1ad3457..f411d33c1 100644
--- a/dev/assets/experiments_predicates.md.Bv_nbSH7.lean.js
+++ b/dev/assets/experiments_predicates.md.DS4MeDQL.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as h}from"./chunks/framework.B24clL9_.js";const k="/GeometryOps.jl/dev/assets/aawycxi.0nxlbsqv.png",C=JSON.parse('{"title":"Predicates","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/predicates.md","filePath":"experiments/predicates.md","lastUpdated":null}'),n={name:"experiments/predicates.md"},p=h("",10),l=[p];function t(E,e,r,d,g,y){return a(),i("div",null,l)}const A=s(n,[["render",t]]);export{C as __pageData,A as default};
+import{_ as s,c as i,o as a,a7 as h}from"./chunks/framework.CpnCegiD.js";const k="/GeometryOps.jl/dev/assets/oglzmiy.BGGXnzMt.png",C=JSON.parse('{"title":"Predicates","description":"","frontmatter":{},"headers":[],"relativePath":"experiments/predicates.md","filePath":"experiments/predicates.md","lastUpdated":null}'),n={name:"experiments/predicates.md"},p=h("",10),l=[p];function t(E,e,r,d,g,y){return a(),i("div",null,l)}const A=s(n,[["render",t]]);export{C as __pageData,A as default};
diff --git a/dev/assets/explanations_crs.md.DJ9--UE-.js b/dev/assets/explanations_crs.md.D9xjcHO4.js
similarity index 83%
rename from dev/assets/explanations_crs.md.DJ9--UE-.js
rename to dev/assets/explanations_crs.md.D9xjcHO4.js
index 217c0ee4a..ae315a02f 100644
--- a/dev/assets/explanations_crs.md.DJ9--UE-.js
+++ b/dev/assets/explanations_crs.md.D9xjcHO4.js
@@ -1 +1 @@
-import{_ as e,c as t,o as a}from"./chunks/framework.B24clL9_.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/crs.md","filePath":"explanations/crs.md","lastUpdated":null}'),s={name:"explanations/crs.md"};function n(r,o,c,p,i,l){return a(),t("div")}const m=e(s,[["render",n]]);export{_ as __pageData,m as default};
+import{_ as e,c as t,o as a}from"./chunks/framework.CpnCegiD.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/crs.md","filePath":"explanations/crs.md","lastUpdated":null}'),s={name:"explanations/crs.md"};function n(r,o,c,p,i,l){return a(),t("div")}const m=e(s,[["render",n]]);export{_ as __pageData,m as default};
diff --git a/dev/assets/explanations_crs.md.DJ9--UE-.lean.js b/dev/assets/explanations_crs.md.D9xjcHO4.lean.js
similarity index 83%
rename from dev/assets/explanations_crs.md.DJ9--UE-.lean.js
rename to dev/assets/explanations_crs.md.D9xjcHO4.lean.js
index 217c0ee4a..ae315a02f 100644
--- a/dev/assets/explanations_crs.md.DJ9--UE-.lean.js
+++ b/dev/assets/explanations_crs.md.D9xjcHO4.lean.js
@@ -1 +1 @@
-import{_ as e,c as t,o as a}from"./chunks/framework.B24clL9_.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/crs.md","filePath":"explanations/crs.md","lastUpdated":null}'),s={name:"explanations/crs.md"};function n(r,o,c,p,i,l){return a(),t("div")}const m=e(s,[["render",n]]);export{_ as __pageData,m as default};
+import{_ as e,c as t,o as a}from"./chunks/framework.CpnCegiD.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/crs.md","filePath":"explanations/crs.md","lastUpdated":null}'),s={name:"explanations/crs.md"};function n(r,o,c,p,i,l){return a(),t("div")}const m=e(s,[["render",n]]);export{_ as __pageData,m as default};
diff --git a/dev/assets/explanations_paradigms.md.DBcWqEbw.js b/dev/assets/explanations_paradigms.md.PSNZ06gt.js
similarity index 97%
rename from dev/assets/explanations_paradigms.md.DBcWqEbw.js
rename to dev/assets/explanations_paradigms.md.PSNZ06gt.js
index 979d96ada..d116e9954 100644
--- a/dev/assets/explanations_paradigms.md.DBcWqEbw.js
+++ b/dev/assets/explanations_paradigms.md.PSNZ06gt.js
@@ -1 +1 @@
-import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.B24clL9_.js";const y=JSON.parse('{"title":"Paradigms","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/paradigms.md","filePath":"explanations/paradigms.md","lastUpdated":null}'),i={name:"explanations/paradigms.md"},s=o('

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.)

',14),n=[s];function r(c,d,p,l,h,u){return t(),a("div",null,n)}const g=e(i,[["render",r]]);export{y as __pageData,g as default}; +import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.CpnCegiD.js";const y=JSON.parse('{"title":"Paradigms","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/paradigms.md","filePath":"explanations/paradigms.md","lastUpdated":null}'),i={name:"explanations/paradigms.md"},s=o('

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.)

',14),n=[s];function r(c,d,p,l,h,u){return t(),a("div",null,n)}const g=e(i,[["render",r]]);export{y as __pageData,g as default}; diff --git a/dev/assets/explanations_paradigms.md.DBcWqEbw.lean.js b/dev/assets/explanations_paradigms.md.PSNZ06gt.lean.js similarity index 70% rename from dev/assets/explanations_paradigms.md.DBcWqEbw.lean.js rename to dev/assets/explanations_paradigms.md.PSNZ06gt.lean.js index ec2456be0..96af7e45b 100644 --- a/dev/assets/explanations_paradigms.md.DBcWqEbw.lean.js +++ b/dev/assets/explanations_paradigms.md.PSNZ06gt.lean.js @@ -1 +1 @@ -import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.B24clL9_.js";const y=JSON.parse('{"title":"Paradigms","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/paradigms.md","filePath":"explanations/paradigms.md","lastUpdated":null}'),i={name:"explanations/paradigms.md"},s=o("",14),n=[s];function r(c,d,p,l,h,u){return t(),a("div",null,n)}const g=e(i,[["render",r]]);export{y as __pageData,g as default}; +import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.CpnCegiD.js";const y=JSON.parse('{"title":"Paradigms","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/paradigms.md","filePath":"explanations/paradigms.md","lastUpdated":null}'),i={name:"explanations/paradigms.md"},s=o("",14),n=[s];function r(c,d,p,l,h,u){return t(),a("div",null,n)}const g=e(i,[["render",r]]);export{y as __pageData,g as default}; diff --git a/dev/assets/explanations_peculiarities.md.YNoUlJgY.js b/dev/assets/explanations_peculiarities.md.B6SBpZ9S.js similarity index 96% rename from dev/assets/explanations_peculiarities.md.YNoUlJgY.js rename to dev/assets/explanations_peculiarities.md.B6SBpZ9S.js index 02210a3a4..acc28d653 100644 --- a/dev/assets/explanations_peculiarities.md.YNoUlJgY.js +++ b/dev/assets/explanations_peculiarities.md.B6SBpZ9S.js @@ -1 +1 @@ -import{_ as e,c as o,o as t,a7 as a}from"./chunks/framework.B24clL9_.js";const m=JSON.parse('{"title":"Peculiarities","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/peculiarities.md","filePath":"explanations/peculiarities.md","lastUpdated":null}'),r={name:"explanations/peculiarities.md"},n=a('

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

',11),i=[n];function s(l,c,d,p,h,u){return t(),o("div",null,i)}const g=e(r,[["render",s]]);export{m as __pageData,g as default}; +import{_ as e,c as o,o as t,a7 as a}from"./chunks/framework.CpnCegiD.js";const m=JSON.parse('{"title":"Peculiarities","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/peculiarities.md","filePath":"explanations/peculiarities.md","lastUpdated":null}'),r={name:"explanations/peculiarities.md"},n=a('

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

',11),i=[n];function s(l,c,d,p,h,u){return t(),o("div",null,i)}const g=e(r,[["render",s]]);export{m as __pageData,g as default}; diff --git a/dev/assets/explanations_peculiarities.md.YNoUlJgY.lean.js b/dev/assets/explanations_peculiarities.md.B6SBpZ9S.lean.js similarity index 71% rename from dev/assets/explanations_peculiarities.md.YNoUlJgY.lean.js rename to dev/assets/explanations_peculiarities.md.B6SBpZ9S.lean.js index 966b8e6e7..f73373956 100644 --- a/dev/assets/explanations_peculiarities.md.YNoUlJgY.lean.js +++ b/dev/assets/explanations_peculiarities.md.B6SBpZ9S.lean.js @@ -1 +1 @@ -import{_ as e,c as o,o as t,a7 as a}from"./chunks/framework.B24clL9_.js";const m=JSON.parse('{"title":"Peculiarities","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/peculiarities.md","filePath":"explanations/peculiarities.md","lastUpdated":null}'),r={name:"explanations/peculiarities.md"},n=a("",11),i=[n];function s(l,c,d,p,h,u){return t(),o("div",null,i)}const g=e(r,[["render",s]]);export{m as __pageData,g as default}; +import{_ as e,c as o,o as t,a7 as a}from"./chunks/framework.CpnCegiD.js";const m=JSON.parse('{"title":"Peculiarities","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/peculiarities.md","filePath":"explanations/peculiarities.md","lastUpdated":null}'),r={name:"explanations/peculiarities.md"},n=a("",11),i=[n];function s(l,c,d,p,h,u){return t(),o("div",null,i)}const g=e(r,[["render",s]]);export{m as __pageData,g as default}; diff --git a/dev/assets/explanations_winding_order.md.C9ZwbxD-.js b/dev/assets/explanations_winding_order.md.Cf8Ra8rH.js similarity index 84% rename from dev/assets/explanations_winding_order.md.C9ZwbxD-.js rename to dev/assets/explanations_winding_order.md.Cf8Ra8rH.js index 50c904f82..9d6e66d58 100644 --- a/dev/assets/explanations_winding_order.md.C9ZwbxD-.js +++ b/dev/assets/explanations_winding_order.md.Cf8Ra8rH.js @@ -1 +1 @@ -import{_ as e,c as n,o as t}from"./chunks/framework.B24clL9_.js";const l=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/winding_order.md","filePath":"explanations/winding_order.md","lastUpdated":null}'),a={name:"explanations/winding_order.md"};function r(o,i,d,s,c,p){return t(),n("div")}const m=e(a,[["render",r]]);export{l as __pageData,m as default}; +import{_ as e,c as n,o as t}from"./chunks/framework.CpnCegiD.js";const l=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/winding_order.md","filePath":"explanations/winding_order.md","lastUpdated":null}'),a={name:"explanations/winding_order.md"};function r(o,i,d,s,c,p){return t(),n("div")}const m=e(a,[["render",r]]);export{l as __pageData,m as default}; diff --git a/dev/assets/explanations_winding_order.md.C9ZwbxD-.lean.js b/dev/assets/explanations_winding_order.md.Cf8Ra8rH.lean.js similarity index 84% rename from dev/assets/explanations_winding_order.md.C9ZwbxD-.lean.js rename to dev/assets/explanations_winding_order.md.Cf8Ra8rH.lean.js index 50c904f82..9d6e66d58 100644 --- a/dev/assets/explanations_winding_order.md.C9ZwbxD-.lean.js +++ b/dev/assets/explanations_winding_order.md.Cf8Ra8rH.lean.js @@ -1 +1 @@ -import{_ as e,c as n,o as t}from"./chunks/framework.B24clL9_.js";const l=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/winding_order.md","filePath":"explanations/winding_order.md","lastUpdated":null}'),a={name:"explanations/winding_order.md"};function r(o,i,d,s,c,p){return t(),n("div")}const m=e(a,[["render",r]]);export{l as __pageData,m as default}; +import{_ as e,c as n,o as t}from"./chunks/framework.CpnCegiD.js";const l=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"explanations/winding_order.md","filePath":"explanations/winding_order.md","lastUpdated":null}'),a={name:"explanations/winding_order.md"};function r(o,i,d,s,c,p){return t(),n("div")}const m=e(a,[["render",r]]);export{l as __pageData,m as default}; diff --git a/dev/assets/emzwabp.-VpeHhXX.png b/dev/assets/fkidkll.-VpeHhXX.png similarity index 100% rename from dev/assets/emzwabp.-VpeHhXX.png rename to dev/assets/fkidkll.-VpeHhXX.png diff --git a/dev/assets/chjhvry.DwqDxlAG.png b/dev/assets/fktvlcp.DwqDxlAG.png similarity index 100% rename from dev/assets/chjhvry.DwqDxlAG.png rename to dev/assets/fktvlcp.DwqDxlAG.png diff --git a/dev/assets/zkusagc.Dab1-ETk.png b/dev/assets/futqezz.Dab1-ETk.png similarity index 100% rename from dev/assets/zkusagc.Dab1-ETk.png rename to dev/assets/futqezz.Dab1-ETk.png diff --git a/dev/assets/ghuyiqw.ntn85YF1.png b/dev/assets/ghuyiqw.ntn85YF1.png deleted file mode 100644 index d9fd4d57b4de8899a85d6dd8b170ee36391c8760..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206880 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%0Ax`S{K#hO?;n8BAE>9&(`1F9 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 rF^vCW;~@&9|H9z^-?#a{^6P);I-?e(2E-y","title":"Pure Julia code","details":"Fast, understandable, extensible functions","link":"/introduction"},{"icon":"","title":"Literate programming","details":"Documented source code with examples!","link":"/source/methods/clipping/cut"},{"icon":"","title":"Full integration with GeoInterface","details":"Use any GeoInterface.jl-compatible geometry","link":"https://juliageo.org/GeoInterface.jl/stable"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}'),i={name:"index.md"},n=o('

',2),s=[n];function r(l,c,d,h,p,m){return a(),t("div",null,s)}const f=e(i,[["render",r]]);export{g as __pageData,f as default}; +import{_ as e,c as t,o as a,a7 as o}from"./chunks/framework.CpnCegiD.js";const g=JSON.parse('{"title":"What is GeometryOps.jl?","description":"","frontmatter":{"layout":"home","hero":{"name":"GeometryOps.jl","text":"","tagline":"Blazing fast geometry operations in pure Julia","image":{"src":"/logo.png","alt":"GeometryOps"},"actions":[{"theme":"brand","text":"Introduction","link":"/introduction"},{"theme":"alt","text":"View on Github","link":"https://github.com/JuliaGeo/GeometryOps.jl"},{"theme":"alt","text":"API Reference","link":"/api"}]},"features":[{"icon":"\\"Julia","title":"Pure Julia code","details":"Fast, understandable, extensible functions","link":"/introduction"},{"icon":"","title":"Literate programming","details":"Documented source code with examples!","link":"/source/methods/clipping/cut"},{"icon":"","title":"Full integration with GeoInterface","details":"Use any GeoInterface.jl-compatible geometry","link":"https://juliageo.org/GeoInterface.jl/stable"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}'),i={name:"index.md"},n=o('

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.
',2),s=[n];function r(l,c,d,h,p,m){return a(),t("div",null,s)}const f=e(i,[["render",r]]);export{g as __pageData,f as default}; diff --git a/dev/assets/index.md.CU0EZZRg.lean.js b/dev/assets/index.md.BDvCOB10.lean.js similarity index 92% rename from dev/assets/index.md.CU0EZZRg.lean.js rename to dev/assets/index.md.BDvCOB10.lean.js index 7f21f170f..8dded02e5 100644 --- a/dev/assets/index.md.CU0EZZRg.lean.js +++ b/dev/assets/index.md.BDvCOB10.lean.js @@ -1 +1 @@ -import{_ as e,c as t,o as a,a7 as o}from"./chunks/framework.B24clL9_.js";const g=JSON.parse('{"title":"What is GeometryOps.jl?","description":"","frontmatter":{"layout":"home","hero":{"name":"GeometryOps.jl","text":"","tagline":"Blazing fast geometry operations in pure Julia","image":{"src":"/logo.png","alt":"GeometryOps"},"actions":[{"theme":"brand","text":"Introduction","link":"/introduction"},{"theme":"alt","text":"View on Github","link":"https://github.com/JuliaGeo/GeometryOps.jl"},{"theme":"alt","text":"API Reference","link":"/api"}]},"features":[{"icon":"\\"Julia","title":"Pure Julia code","details":"Fast, understandable, extensible functions","link":"/introduction"},{"icon":"","title":"Literate programming","details":"Documented source code with examples!","link":"/source/methods/clipping/cut"},{"icon":"","title":"Full integration with GeoInterface","details":"Use any GeoInterface.jl-compatible geometry","link":"https://juliageo.org/GeoInterface.jl/stable"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}'),i={name:"index.md"},n=o("",2),s=[n];function r(l,c,d,h,p,m){return a(),t("div",null,s)}const f=e(i,[["render",r]]);export{g as __pageData,f as default}; +import{_ as e,c as t,o as a,a7 as o}from"./chunks/framework.CpnCegiD.js";const g=JSON.parse('{"title":"What is GeometryOps.jl?","description":"","frontmatter":{"layout":"home","hero":{"name":"GeometryOps.jl","text":"","tagline":"Blazing fast geometry operations in pure Julia","image":{"src":"/logo.png","alt":"GeometryOps"},"actions":[{"theme":"brand","text":"Introduction","link":"/introduction"},{"theme":"alt","text":"View on Github","link":"https://github.com/JuliaGeo/GeometryOps.jl"},{"theme":"alt","text":"API Reference","link":"/api"}]},"features":[{"icon":"\\"Julia","title":"Pure Julia code","details":"Fast, understandable, extensible functions","link":"/introduction"},{"icon":"","title":"Literate programming","details":"Documented source code with examples!","link":"/source/methods/clipping/cut"},{"icon":"","title":"Full integration with GeoInterface","details":"Use any GeoInterface.jl-compatible geometry","link":"https://juliageo.org/GeoInterface.jl/stable"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}'),i={name:"index.md"},n=o("",2),s=[n];function r(l,c,d,h,p,m){return a(),t("div",null,s)}const f=e(i,[["render",r]]);export{g as __pageData,f as default}; diff --git a/dev/assets/esclgnl.C3SxJ3x-.png b/dev/assets/ingzict.C3SxJ3x-.png similarity index 100% rename from dev/assets/esclgnl.C3SxJ3x-.png rename to dev/assets/ingzict.C3SxJ3x-.png diff --git a/dev/assets/introduction.md.Bxgq13n_.js b/dev/assets/introduction.md.C36sb0xX.js similarity index 95% rename from dev/assets/introduction.md.Bxgq13n_.js rename to dev/assets/introduction.md.C36sb0xX.js index 3196e8216..addc32a86 100644 --- a/dev/assets/introduction.md.Bxgq13n_.js +++ b/dev/assets/introduction.md.C36sb0xX.js @@ -1 +1 @@ -import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.B24clL9_.js";const f=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"introduction.md","filePath":"introduction.md","lastUpdated":null}'),i={name:"introduction.md"},r=o('

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.

',13),n=[r];function c(s,p,l,d,h,m){return t(),a("div",null,n)}const g=e(i,[["render",c]]);export{f as __pageData,g as default}; +import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.CpnCegiD.js";const f=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"introduction.md","filePath":"introduction.md","lastUpdated":null}'),i={name:"introduction.md"},r=o('

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.

',13),n=[r];function c(s,p,l,d,h,m){return t(),a("div",null,n)}const g=e(i,[["render",c]]);export{f as __pageData,g as default}; diff --git a/dev/assets/introduction.md.Bxgq13n_.lean.js b/dev/assets/introduction.md.C36sb0xX.lean.js similarity index 68% rename from dev/assets/introduction.md.Bxgq13n_.lean.js rename to dev/assets/introduction.md.C36sb0xX.lean.js index f5c5f8fb2..e704dc269 100644 --- a/dev/assets/introduction.md.Bxgq13n_.lean.js +++ b/dev/assets/introduction.md.C36sb0xX.lean.js @@ -1 +1 @@ -import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.B24clL9_.js";const f=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"introduction.md","filePath":"introduction.md","lastUpdated":null}'),i={name:"introduction.md"},r=o("",13),n=[r];function c(s,p,l,d,h,m){return t(),a("div",null,n)}const g=e(i,[["render",c]]);export{f as __pageData,g as default}; +import{_ as e,c as a,o as t,a7 as o}from"./chunks/framework.CpnCegiD.js";const f=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"introduction.md","filePath":"introduction.md","lastUpdated":null}'),i={name:"introduction.md"},r=o("",13),n=[r];function c(s,p,l,d,h,m){return t(),a("div",null,n)}const g=e(i,[["render",c]]);export{f as __pageData,g as default}; diff --git a/dev/assets/jehsbsq.Ca53rWB_.png b/dev/assets/jehsbsq.Ca53rWB_.png new file mode 100644 index 0000000000000000000000000000000000000000..879e4ec1271703d483ee3c98a2bc5d2c14fa8ea9 GIT binary patch literal 77705 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 C$!h2T literal 0 HcmV?d00001 diff --git a/dev/assets/nuutrqs.CLtpJ5Wb.png b/dev/assets/kcnoiau.CLtpJ5Wb.png similarity index 100% rename from dev/assets/nuutrqs.CLtpJ5Wb.png rename to dev/assets/kcnoiau.CLtpJ5Wb.png diff --git a/dev/assets/hbkqfhf.DaovVbE6.png b/dev/assets/kssggsd.DaovVbE6.png similarity index 100% rename from dev/assets/hbkqfhf.DaovVbE6.png rename to dev/assets/kssggsd.DaovVbE6.png diff --git a/dev/assets/qkrpuin.Dz86q2IX.png b/dev/assets/ksxutwl.Dz86q2IX.png similarity index 100% rename from dev/assets/qkrpuin.Dz86q2IX.png rename to dev/assets/ksxutwl.Dz86q2IX.png diff --git a/dev/assets/adbjhet.BEFUMtlf.png b/dev/assets/lhpdfnq.BEFUMtlf.png similarity index 100% rename from dev/assets/adbjhet.BEFUMtlf.png rename to dev/assets/lhpdfnq.BEFUMtlf.png diff --git a/dev/assets/liicypg.BD0hVfse.png b/dev/assets/lnugvso.BD0hVfse.png similarity index 100% rename from dev/assets/liicypg.BD0hVfse.png rename to dev/assets/lnugvso.BD0hVfse.png diff --git a/dev/assets/nzznycn.BOOG5oTW.png b/dev/assets/lpjngjy.BOOG5oTW.png similarity index 100% rename from dev/assets/nzznycn.BOOG5oTW.png rename to dev/assets/lpjngjy.BOOG5oTW.png diff --git a/dev/assets/fgtllgl.DHcwB147.png b/dev/assets/lsfurro.DHcwB147.png similarity index 100% rename from dev/assets/fgtllgl.DHcwB147.png rename to dev/assets/lsfurro.DHcwB147.png diff --git a/dev/assets/qdzykgu.Cb0_DiYE.png b/dev/assets/odnjzpw.Cb0_DiYE.png similarity index 100% rename from dev/assets/qdzykgu.Cb0_DiYE.png rename to dev/assets/odnjzpw.Cb0_DiYE.png diff --git a/dev/assets/lbpsisg.DeeQUply.png b/dev/assets/ofqxxvh.DeeQUply.png similarity index 100% rename from dev/assets/lbpsisg.DeeQUply.png rename to dev/assets/ofqxxvh.DeeQUply.png diff --git a/dev/assets/oglzmiy.BGGXnzMt.png b/dev/assets/oglzmiy.BGGXnzMt.png new file mode 100644 index 0000000000000000000000000000000000000000..e439adb1194eaed85ebf496568534841bf6bbc9c GIT binary patch literal 59321 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

c|-u??75Da^-3 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%0A^06GV*c+_`gG zqI!bR1Zp{+Jxc4nxp5iD`uzC_E%(lx%hC7d^dDts2W_Q&_iHwzJ$TU4+IndqEAt|; z59grH?DVvSogIHu(RSm3P$0v1eSL|wBjI~@lQR_B_K8$3`>g+WH$R3Sk_ISSSWF|s z)gJ+vtFvPl$I9ATzig{W&T`4M{A=j*^z>^u zaCnT%o0?9%eJeM3LoR=4`M>w3YE>Xnto`(fPe35tz;ScK-NVCU@ZKs(X=!O&Tif_P zT)PzC1wFmq-d+hdwmWWLKP5{7?3NpzL723pNOQ#foNn6@#xVOOJ1#z+&i(divZO1H zlyWfFJFH45lQ{c$qm8xK`mZBXy@6q2Esc#C!gN6o9X0rCRCSZ}tK-29g?S2J<86&19!949`;08kyJ?dEPt#eE9GomgnZpn@5fuK}tr1MoR|-1#JQ3)zt>>Kgt4h_vn%Dv7QPKS7T#D zY<6z$4d4wI7gVxht{vLaQc`bjep8l8lJ*cW4K==YZDhJF19c7CazaQ5DOi`Mld|eo zgdl*9qa%CqT0_)Pz}r-SWPrBEk4?P2H+{DL(C*tOKlt(UXXnq)&fB)J3>M0vV6zGu z6Q`v1WU9s4{TLxEoo4Ej1FC1v5P;o;lYaRm+K%-64~KO_MnFIU{UskV%qEP~pX(boG&5J8C>9iL!D@xD*a zc%N$V=TCz&ms!yjxyu_ntgWm@4evz;OXa;%_?P8w50M>?*~X6YshKRX+}!lY6XC9H zEbbQ`6x7)J+WKC3zNm;uC8~qnjYPsJ?C&?2FTy?z$ulnxp;d``-8V{_cFCFCifzFS2@+ zPRxE7h$kl}hgheepr8!!P!LGvz~+Dr2lLl|2YN%}YW*>)3ex?YXmWm_SfFEO zmGP`^Xh_dd;^X47w6a2e_%=CdcKtesn;ifvy^u+LbD}6f7y$s6hbPC!>vrWD0-Gi$ zB|Xtd{#Z7CC?P-J5q&pGx!qtn{r>%TozAyg6atTEJQQxItFf8=pD?3( z?r;p{?wJ2MZS66AZ50)NtteM%R|E*6?+V&&#L2yT_r84jB7}xzadBKH>(L|mp0LQs zeVYo(%J&ze1>7_T!jk@{;p=rh9I-p?;@5BAxQ`#FBU8S9Jp-+JdATR)28<~yF_rjnw(tw?h@5lG=8&P_se_tWDo^IDy^rE7VNG=hvRNvfuBy8t|V<{zz z)Uy{akmhV`Y}7S0D!tZ=!ooD&-NoH&aib%dzy7|OXtm;$7X7?r_Ooa9PEOoBJO{k@ zGcqOubO+eCbNu@iW||xY5^r;$IdCVBf~gN)1?rq?N%gn*x7N=4P(!?Z4ER=1bFsP} z3!^&|n|9<{|ivc|{I7m)Zm5$~f1cjNoIeM3b>Z{W;ga@*z zHOiE;L`8-EZaIJZxk2e&ciYeaf(ZO|WAC&95*wBL$B!QgIjEu(?UJu=jjPQkvx1CA zkBqNhN5lT@+qaP5V0CqM>@(oGe(z%hd12v&_+-Srm8IqDpEepApO9{y936pn?au-M zOG-)#=GhG~p%@1t^P$oE^a-IXf|G@6;p~h8O!eei@;Mw%UEOXlHGB8$L8ovQ4|Vn5 z%io^n<_->?&B#JW%*7QE9W5*@Y%^Cxl$B3-2>FEv29g>m6tVFUJ<>KZnwy$3zj5P6 zeON)kQie)cZ&^sy{qF8=WGMA`fe}>0*#VkXP6PlMIXMUetk$;Vy-^KyRhua(DK(!d zNl0`Ncc^t}5ba3^H{ORZ4mnJN^~`$yeBsK2RtsTD%CMh5ohuoErnKwT7$_+zD?Lz4 z3yO=U$^xG}nM66&<+-HR%*V~W^y}9o<0?G^!> zD*=`~iWjy}uKcO6CRX2eAnlB7o!z!=o2^&Q(0g3Mg8$Q3ujUhDq9P;b=_{S4K51I? z%@N-sxpT~Ruw4A`VPdw&xw$geYKS>FH~{#t`)FLi%#BY@f~EMmv9`2hH-*hytji&O zqe>~%lET8Ds5oi|un&L-?0z6{`d(UA2^bj-VNtoXpOCT2lvng^f6LD!ATWNw|aolQCdn3 z_~cJty42a(Sp;SR2n0Po;4_je0A3uf66`SkI@X6v`t@T#QdE?d?K5hYq+}V;PFzfk zsk!-wckl4$*4k9+!omVdI*o0jk0E-0w8kZByV*?s(t2-AggQDpaN-fGE8lyZ0OD!+ zuf!)LytdQ!sRSA6bayF{y7cGcjp;crv@N@biZcQv?R9sx0{ua8QAHi}$$d-uYYLsJy)^K`?lT z5)<7%&dm+BbY2&weTre_{HUGpUEnTr~$FBJSO=o9kgd8zb zfa`&82zOlbT`H}M7tw-r0dh`^kI!ox@QF%D5YQ0r8$dZUG!*-IIOW}BbE1DnH6Yr{ z%LVs0%6=gwV&P?Q=<6dm6z-GJi{40@KRWJukd<|AbW}@UUoE4JhDZ06Wd}M^>Cql= z!g#S!sbeNeRa3kmD4o$hLo%Y(H3Eh2gaqLij!wW1$6k;A z*ba&(Ab{j!kuU?gcLJq`Mttg1@;dMx_EIBN=IjL|7ZP%EB@$jB8&EaT$@-Ts-}Ce9 z?(OwPw*m5%S^SX67n4_69n^7W<3z*H{Rp(MjXd|NveFya1SkZW0HW}rkm;UG--Lu7 zw6ut6+;>V$%xmYFb`WnxN@@~32;8)^Lw?~vDjvm3#Hx(e`#OjK$k4gvol_uGp-T!^}uGy^71m$M0De!Z6+ordN&6+x?P3i zX%m}~_HN8HA8hc}`=UV;^lrr7dtQlj>soEMjYw3(xTNU)N9pOOkd))YwAI9zG_aas zsrIc4d1Cz)EkZlk3mU&Z46LbqWB98?k4*5!6kjxJn3J)wajrqBFBOBp)!VnzW02T~ zkQD*Lx_T+MgBY?E?x>)rKB{myN|~)#OQ~>psmS8ufwX-`Mr*vm5wxORQrCd zoIbsql4axP%zk-`=7%TC+YVjpE3!rWlTlJuIZbJtJsW~zZjsm)0k*R_;l$GleYWjf z7vEWr&iQ+t9ecEuc!7tTPq5|jQ0`#Hfg_cF*1KJPE-(9po!D3+G);G#&En$X#$@%f zI5;^cr>1nypTBnX>f3c2Ma4P*sG$mvuKs==@UUiPB3{3pMMXs&9Ar}40|Ej-{@@l< zn$3V`N=i##=;l4bF~YWEd)8OxK72v59L6Nxj)VL{zqs-rM~f3|BcgxhiZ@yyFrYeG zT1XX=;Qf(g(RXD&evIns>FLSD%(u8ii(Pb<%+KEF;31W>FFcW(_%iGo~l>! z$H&LMDQ{nl^CF;MH-h0HjFswY9Ya1BUS>0d8y{ zkOBG7T$Z@bu_QKss;^(IbjjDvfdp~y{(X@3_mne${E@{y(2dr;eT*Cv7aa{U=8&Jf zy!^iX`xiV;eNRtI8%8{!lSTm)69)aybkgc`s?X+`Gd@#ua|G>VBeWl?45}Bv3loJ3 zbhn-!0?$MM`NCn&EPWnrE34Jjgzfu(!I+*gqj^5 z-in<&6UDh8;{jCy`!zK_ep*#kPgl1oNxTCbqLx3&_LbSbqpP|=vHg`^9!^e6NE$v; zhsa1tA;`#+G$%{y*z*~oaT_Re4WmD?i_IAXICP0o$NuaozkVIK+ zUe$l$?DV^9@jqUG8|H^^WE{x&6iA+DW##G@YuHa< zEB*Za(NPXodL^zbR#aAQf{GX!83D)o;K2iw`4eVMbW(2iY93_{WAAY>Se^v+C*Xy{ z*%T&QQZ?y+tGOZf;_??L!=FE&0b1JW(>^*j1_C`E`=_I04%N)uy!dMMb`S}J4^ftc zg@2;xT)uo6xpUX9UBHYe=h3;KkzZoVfBqOqT#UJL@!~-`x>aoU=%_Iw@5G6MwWTT7 zrW?6idt^d_#PnN?Blmv0+~lKeB-PLoz*JF^*t8PHxq3>Sb7{OGii8bkZZwN1bqRfZ z;=_keGBcB<+=Z~9d3kN!-EOE`EG#UZcAZlb6F?Ldo@@CzIqKTl1qcLeip|X8bA%e+ z2+RivroY1BQ*_6BX?W5+Z{isBSNRxSym+&>&=L#@4laSLhRlbf%l`F5+pXD{=3N`! zIFIDyAyOojr3`zsaluN8Nm2BAi6x2FRn4T2To`rT(t`}adm znI0c^UjJnaxk5of0aUZ`ehBOU9>B(U0;p|K26`t~i08_Wnm<8< zyiZK1KyXf?>u$-t?c{t0d}c=z_a;Mup+4f%ZzAi z7#QkV50d#PEnUe8r4xMg=FLN`QdkAhVwT5X$&tI&o~!rY%#0UznuMMl;+7wb#D*NO z7`hl97dLe_PygIGIcFY1EWN9%3%5p+V`MA5F(BbMf`$v~l}67c0|SCEUX#?6`n=>$ z+Yz_@5@lJLKA*0!Ya|b3@nnF7*5TwME!mQs0x*^G*_7IpU}q!;?|HQ^Z|O_+e=F&&&S8NYPAY-P1J7C6X^%niY{c{p5r^R>*}QkFl7MQ z!Tx~K1uTAmp8kxd^||Pnm={J>gP%U#`15-iQ6nxco+x5_3v{}w>Vw3@L_fbe0+kuY z!pp_w4jB@fEF@Q-%{6~d*?jmmK$&7!0XeuYyEf|g=~wL-^+Y|vNb;{#g%<;$1IbVWtK zz{+-XcjLIBX>KR{JWs-`ES8i|H5gi?ky9c>KMMnoy#^~G}Tvl?H zYv`rM#>NH)255P7uNoU`>FTVW0KM{c7b#P0FoJ$ujP@Pz~Qsq7H z`LiF@KB2K8N{a1Aq0)%UTfDu!ZTlt8!---J#?H>dcdH>}VTUQ@E#SyND&V299(x~x zY>S;25EP`oxYWzQ;ov{K=k*zn@f=SJ=da5PD}kY*?|n$tl$V&VM#jg3b9{?l1MMqN zS6^>$Y)p(a3`Zd1(5Hjz^IraXFmF=@jU7~baDCMB1XfqbBp@=f9o5ER_b?V57yIV} zs}Ggr%KZG>6Y_|@4bx2TQ_>3&cO^;Ov~qM@L_w?H!9Xp)n}W&0#^%DMOO>v3DJTeh z$aBns#&snQV}Lb9c0(-S@k71gj)Cxs#`G~%2{rKZa5z;0sE8ycM@OT`KSq-Pi9@>^ z>oKAh9!qd@jn)N5*PxU5K3KuXW@2Yo<+d=&YANs%(h^P35e^Qgk(!;xHjg29BUTa< z^+7sA9hu)Y@@IWzswtrWX@7C2QFd>j3W1(}q@p^8K50s`5?Qga;clVdC%E?+-$9X)!~ z;MvosQ#gkc6U#{OAZIiagzl{>-l52jZ*$%-4HY;UwTE6^M8!V&)#u3Ou=Z*BCb`aY z;lC}%)PM?^nVIMMOBKjc`(SO#&bCG}0Uw`rF&kPlwfrha2vv>fj87}h-_Di}Cl{AX z7cVN20Kgxhp<(y?{cDzc{8QjVH~Zc4^>uY7D1`(;%U%p{6+MG4R^vYO2%Bz!-Mjr= z&X60%m8aHb{V_YqmmPZf*Kfv~@h30l1=USFXV&&?(0}pd49Q3P`$HDUB@m>pxzu+( zJZX(Ojuwtp)?1xNbp$-m+#JCH19c4Xcz zkn{tyeX+qz}qRsK%p|K^b8CMIVd1-6BHuO9{MpPFEE|# z6yspgp^#t9zSNu|y{_^kV=u>H(KRonI|3(LJb%BR+QU{jVjCY6d#+fcf7xRro&EEl zhpetB=4=Z0f#dz_zlb`F*0D(6@?2XyA|;hXLW1PwFjo^m%>l+udDA=br1d2z`Jkq7 zQA(bMNs_Li&1T>+IS(Hm=4Z8mn2#)qAOvj2Q9D|E7!nzN04R{PA0`?a`7jIJ;E)g? z25ey^aO)u#E_6AAs)HFwSC>xyG%)LzFE;^3qZ40aH?QaE!YEa4$cmDugWs^S`iiPy zFXsld0A^NDP|(Q8Xt7^jBDvCKw)fSmSFvUSeELPf8(suD$jj>w_)h{x4%n3k&i)Em zD1g3ZvoT>;q@s6?mO1*xp(J_&Cr`eHV#I$r|1h$ov~;pizYlDf(bg-c?(S-vaW<}; zpoHVhu*CivE)^&QkV*dV#QKk2+Q{9(=)Ylf5YpCAS8w|G@%YJ;F}jwjbZAvz88~E4 zVPh+afP6sZ=`X21IYbK(^wIY` zIH}+moa$``2bfP!<(E#l%CTH_2t3;I#w4jO#5AUw^kJQ^ zTw#$vhKoiLhN6uk1}d1)X`>x;x7#XC?hRWPCx7>-SO5CtPB!b03GSp6BnylK?Iw*N zyG9G04j_XM4i2u)0XD%=w5dRnEaUaCT#+qAd1-k$BsA0;&;`#2?WjR^_B`Q?e@4$u z0m;EWgo^S76(k@m>;vr&w`2a1ky`fl0&7mDH*R>3*HaHxx41Ekr=7Y>u=1u{HM6jA z!`kDe$ZUgeZtnGA-0!-NtLqQKG!-qMf9g00I7{G(K9X-9QeUZ z;-T)^iZkUCCTKvIDEyT(U@QxEZ9%~XRmVgz1Dq^_Q*{ z^neaU2L}>H>gLx2;^+HZMdOXZc>)y-dswh{`Od?Ez~w%!|K$@l9AJRmFW|g{N%o}| z55*itMRzCShQrE#)6)+H9n1j?EpIf_k~xZ1ETIgyTjJD6T5Z1l>dBK`Mh=V8giZ?{ zK`5_o>%Vx3{n9w-BwcvcejohSmf;W3fGiQfZ_EB=&rsP-@L`D6(XuVDf{VNS%9nhO z1u*)!B^|eFrn~Uy1Lc+(wUo3pGSVs_7sMeIMa9FMoQ|da_yEX)vLM5jCYwPzAONQR zkbb)`kJy#&0oX$T1r_%kg z(hP5e9v}Hp>=10=3M9OGg#jy#p6Cw2o`}gFU(lO>UFW-VuUkjRPZ$mR`=#Kol8|6P zm|n9-T)RIDMN1@FwYHGm+155fu8ObzbQG zR+J$qw*#=FNNA9SE0a{XE%?rj#H*Vb8Zw(s`B8|i@7ONi$_b?n52W>XW(BgIt5np~ z4#2>;ev!lqSni;Ju(!WeI0;Q%@iF-!HBC(w5?Jbo&+IG_a!=P6g3=JXy(ael+}?tZ zLs&CvdEoo;^J6Bc>$qPr1GbK?uC2*WRf(yoMi(v|NY=oI2$=ScxQdn>u@R93o;Z4R z3g#{-Jc#7C>1x^Y8e^6hB?H-{J%_wtgS$ljc-*lRX9emp3N`)&Quf-~^iqqt=gzuQ z^kt?d54{W{N&5W!eAmmh;D&0aiF-a>a+2-galH}-&+ak4b=AQ4jfS@){e}=u{ zCKsOl3f%7QLUS3Foge@uCpS+xS_(4=)}RVRx%v_`lYpi@x`u|yx64l8%H(rDDD=Oe zH7gWRb~e-c@soq#?lLeim={|@NdsMr&qiwl%!tTAyA1MtI8VU#?4Z@_a0TUWkt;q0 z4+|G~*!+Xr>#7#?1Ba$@2+&3^exd~8%q(xi?V-N2#SMp}Fx_yoIl7aDD40rBQxiq; z$Sp%iXztvNjg5?SbdR4r8BIy`_1*4i`N_3kC`7s7_3Is@zrtxPhW zVw{}!lg^_TD2Fu})%k_hiMf-PvU|_?rSVp*%Y*q|pGx&1m=D&TT+-IIwj|CGn9CTR ze4d>>mR?iyeH&$lZQ$uQai{b<&V~1i)O_z-raGQ&T^XmvOZJZT zkbO+cCxwL%(9*ho>kL`d+k{>)C!B>I?);^KfZ*V9X8i?bq;Fgo%us%;pXAh;X_NeR znQtO2;Qw;7x1R^F{Mgut7Qz`EGsvthi?S-E+z(c4)*`e@q$$d$qb__E8jgMz`EgkE zVdDhM#S0V-)wPlhXhJm9o8Hggb2BhVDl03yy<;Smg-Hd2423_ zPaV4EMshWo1>VsHHTEoT%2wap_#Ir-MfFv=w&ifsI|Ybqm4eO$kDB?X!V4jd6PI*! z_Dk2I0t1jt6EL3l#_7l62XjJlb$p27t`!Dq`~?dRC{K1lvYi@91RE?^3QW+Xq`(87 zk(LJAQ;ETkoXZ8oPnq6Y??Dj7fGqy}dH#h0{S?P>F_vkBtlDLD!E3kfD8eXm10{we z9nP)qyJin5aHEOL>W z=dSz#r_-Y7O^aR=VYz>Q6pp>VzJ8Va(ypgnTQYSIb&ze#NtIAtD#gG1lfaDB&vi9( zGM1)md)2X%;tfacl2Is`7GJo-r`#u$Q#+uhyj7Zt<$88oRwD;=wsegKV`1b9} z-Ik|0D2eJ~&&KB&Ca zoC88!kkTu+2rDdfCh%=RL1^pX?XPk_uw%#Fq$H-KW05+i?wk|P*W0_bf%6o?aPooB z-XBv)eEQ{Xf(P>5U8x|Jbg_ipho1uYK~-rh2E@q!fo zcYS7dY6|w2I+??i1FuO0hsrVOY?!_*ZPy#f$jAaF7k2s8cnSs5T9}z}MtTMh>*SdS zzx%+h?54~$r)@0U+eX^y<@~%LMPj>g_=%mBL?~<+8aPD)8{fmk#HX2=hUIP!AdQEZ zZl6_`*>FJK$CmRPKQ4i03U>INI-i=G0kL`H>pMGXrqUt5*3E1}&`~id8vlX<07?e^ z(>X`&Vo9#q^Ls=j=}8mUWVky96s}BvQoaTn_CVO(`K6^qiJMw)aS-cLVHvty{{Z`=ShiTY@vZ_I&hDSgn9fghnPY2skzx&I|Pf zm{SKawe!8_M7ha%WR$o#9kqrifB>A~`ozh?TCKR)DshvdJ|FXMy3OS+54oNjIewQb zR?<^L4!L}}6sk1T#Txacb%0M$Lk%WE@M`|q*g!d~6mKc5{cZZ=%xww^%`c`x3B1jt zwE?=JbaDYzA5r(;7JDNo&Yh$BBz1pNG#LVQFbXynxD|I z2M&DBicTDQ`p*=Pn8m0YFq+*AMbv4AB*@(#YC+`Q6J@ZO(R+0fx-?t|p7*Lp%#Z9%)$4mz}xhe zC-~UQpN2IJ-p6NpXm92FGb%x|*ikqbRoptsLN_-yc2^A%?QnETbZcvL&64@m%9YKq zv&R+Y&Kz4gOxr%;9J7mQZq#jOo1(jqwwjuCjUOpVI-uJqal!T^^hBb>HP!lRMh;j9 zkW6)59MoeAXZZ~E^d9Vx-w?lW?%dlrCeNzW9vhK~(dzDQI!a5+=Yp1&miT4t+v+ut zUTC=jB)0>~19(87MF76%`Uw-G{%_kFUUgN~QT=Nmt&qED1zhqB$=Zay$BK+|ax>{H zhr^Oe#`kcqujX+JoAg@cH?^>>I;{e<*VQRXwbHUVkG&`7jN;$o5+KnSW-i#>O06e?R(ZZI4-u*k8C(b7+W5Ncw z$??puc?3r&Z4eK=D42foACaSFd>a^G+eE7f_toMg-+o>S|FPNG|T!lgx3W zmD#HHqr$MC8&?pbWh|Xzd~7sjclEUMZ_qu|@<%n2hLioM4jz0BeG?t&IxWLxV!xw& z%KG1I3|`&rPK=>ob6S_ty}Dvr(Aa2tmpQ~wb*YsPtL@hD?GHu{S7XWD&4$6YEKIDU zIP)1;I3(YN?H47Qy62Qn5)7Qc2vqVD6BF=Y9eg!~Hg2HYeLvf0j5WasW&n*|#Om`g zzgDziz!9I@i%>M(KK6h}Rs7;e9oc^KBI8Qsw>tHMaqAxy=AMOk4Bd3h%}Jn@ANu6l zu7{@Oy|^LF0!N2M*}-%KylJ>k!Tf;gFH=K_I`Zen<8H4$(ODboiHoZGXk`j_#5y$f#Xn6F@E zWgYbqi)tX-v!^Dz^}xO2yYXiz)0sKz4Rk7QD);{Tx8=y)fBUo>8yd_0BwIqmQ49 zD{y@QZUdzs*FH5hCCU28uuOHfw$2ai2tx|v<>b7irzZgt-}oq|q7g+HojN#KTY78R z3bT5IG3u?2sFH1gEtD)}#u)vxv^-ffnEF3nfHkk?9n7qT!JYalmY!iZGI-y7b&0V2 zR-4!J{eA3f;l2kp5V6PCrwJ{rS7AyDi^E7LVT!I4nmE)n|5^e(#G<>~4Gxq#VG2!% zjqTKYd^?DnZMN_0jZ`7;)wo*8D=5Hn)5KT}Z%I?CEGxg=vz#1gnkN^}W+JeH0s|dN z`z<@3>?9_pDsCVFGsbwrj4ZBkwmoxio~Qh7MIC|2c6yE%-#F9z3wY&EHTCu~3=IGf zK`9|{vgRBLB!UU*Fyg_D-P@}-D0&N|(W)M(&57uAW%Ex-)s1!gJ0>x5yzn>>BiuNQ zk+m=2nb<{4e8|rX{AQC`f4*rD1Vw~Ch&S;vOUO_^s-L{&A4hh?**!8e21W-NL?W>n z%{W`+;gM6DXoV0iCpX;2;ZIA!Y;@vvaevYr8HWOg;TeU5K-^ z^7-^Q_mkhE_-=LRtlg5hh40q-R{a-}9=M=TD?mLzJ)5Xp>320xmq3DQXi$VGbI|zI z>@}mIrPaQ502&c~;rm?UesU(|6%}x}g6>DNQH%Y z(6B+khlLc%qjhIaPoZVhZLZ;=<}Y8Camp~P2iRQdv*it@^x%O5;Jbpa)4`=%sm4Z1 zdi2bgV=4GS=o0gol*XpooiyI%8x}@6)R#??4*S_g_R<(R`2J*pYc)u6{LqT`@9#ja zM^g=C1v4mS>u_ekKJ$r+xS-enh3q+Sq+V%;^H|N9pOWPX94;%;1Z^CG?FFW znFy(1^2hXJG>-S{U$5h#@_KmeCME{-?dj{o9zh#Iv*sX{gx&;0SQyLOn_`%jkx_s; zfgu6TBS%8$1m)G#_C6K*Fp`NL2PC?F-*F{>X#t%_leu(!<6E2(&-U@MXdY^iTNWiw} zZTqxD46kvXKwG$Pr2y3n7z?u-zX86%T9L6x!LVH7v$Y8x4jm7OK4jP$Ql+0ie_~GO z^cjve#0NxnbJPP=VZa2i!|3t^@GSzPgksJNG zn06Q&D{x;j!;WKp`Qj3R(vp&Z@I$Ed3d}+h6B#M|>M5ASuG-ldojZp=;Ty&9e)EVu z%H%w66}nP>gOc!PQZU+st$^E%V3NhNzkdA!wE`;2E#T#wHxlj-E0BaBnSjhiX0}5Q zVrOS(W%UqsYXAOP6CrT8o`58dY6OK5F#@L!%nR&TUqpqD&I;%z#45hn0JFTFb625n zqkF+fNp<4SuV2)(v=;FT2w`O6M;$ZZV-DK4Z^6j&F!S?!SIr+tAQ!<%eN; zyE2SRyO~1z`BpV(jvy`;a(VtRqevnD6R1T@I%DYeTJ3!dxgofrI};75c31hx=B11f zG@tgH=H`SNh0+OFgtUb5cO9s}H8t!fPcFk+M7FE8t83+HCd-C~0g>WYBuN$)mirs( zsWN}?vu81eF%obhGB-iEVmVs$OS7`9Al{EZ#363^^ofF!5>_gLkMH~mPR?CAkXAFk zn*d#@MB^l z;X@ic4yRD#L?_JT{t*!oCA~l)t0@`b*}dO6jV7gpv52L0%Y>tnW7$HEYJT7xeE5B8ZiH8cbsqa-7H%tXM!ZeM`< zH0ZHD3=ELNXmwnioW|DKs$+18v$L~Y6X-l4I2_G$!mI&&g6M>Gbadd6f;71ABu0P! z+3_`cYJpe47uE9$3krhz^Md(M?I;z|2x-T%KNXm0_S~?7x!#^0YLB-ELF*ApK~EO8 zA7T?Pvji~H+yI|nczO8-eA{rSz;*tk1A``*;^MkPV}!F5JqAM$7QHxn3g4jN`0l|$ zpgG=?lAN6H+uHInYsDoc!NqtDc`TIO+E{f^3sfd2BSS$fHNZez6wJ5@3G}9YIXOHZ zAKW8B$|U9Ie+g5$>I5815cd|Iyuu+BTU$~PbNNm;ap_)sd^dE@c`p|Os^Z^kse+on$<6;>{8boWA9x8j+Q52T?d$>+CrH^eehR1>)>%r1y;=UyRr10qI zx(UZXQd*3$)Um9lIFV6`W6tksw76+}>g))H)7>O=JS97K~;C>;U}ybDb{|;VXxiK$P|lov85$0JX`<|5fRQZ3r>ca|ktiqfSLPPM}y~d|4<#9r+J_yuqeSB2QL)IRQQWTC){S#p**D zycTbN{(Kua0oi*Waw+Kqw(Glryb23W+-c&pboR1z3ggR~x%ZLy^ za!J3TzW&&;V|3t#7KQ{wMRisSH6e|Tty9> z3U7Y6GDuHiiX1Z_@B)~{=+Jx$zbH~ z*!{Kz2DqO7ezYd< zpnz4%?KTzrjV7Y`6FYb9!jMBd@}#KJDyS_gc^E@{|BbORpZ)OlC9#}W=R@0!tf3jgNh!EgBoGpZR!)VA5}yg8DTsvZR|E% z#xQMEM1-K}#{*J!x;P1E&OCqijO3+k8$dJGTKlIHgFNZ7%iR9cTPr%Ms)ZF8UZ>1{=Lp}DB?IhD)}*gzsF;P z_<#RKu`{NGm*9~W<$L?zgdY)+1Q!X(-wXRceR_B+&vnW{>vPxUR?AbFFKWwV0yZaX z9&r0U*!y7m;yI}H8Js#Hfol6sF1(*!j!-P<_dF@cpj5Hooe}tc=Sd?UQNb&M?~mLX z*hx!#@Ez~%?H?y!Q50O{Uw+;)7k1y_iHFG5Cmv7MmpAriXCj$?%WLd<%e;%ELNuR?WrfmZ>mb9wgQ5p6 zFBYg2moFv@7{)nC34MQ6{Xr&&+l5Q@Vnv7?;W(uAXLia|&GbYaZYuQXWG-xZrA_m! z{`PjAi$wTV8~nmCJCPipKarvBX#vFgG@_M0+HBm%>9(`sKi$rcy|SWruIllU^+woM z>S{o_X7^|(-YSc%xjswy)!UAy zA>^JDb#I(r>}T!ln>fI7hY(A0rFq6$*IIcvkFfs;zx&4Xj->Fizhee_a-LT<)W{OZB$H|BJ7h`+P_y^^msS9c8Us??2gQl5Ec z!T)Ui>R88z-n8cfIx6>Jo6n4k`Oz7b`DgFHPYujZKUqn>;o?Fjk=yPt!Kpa&{f_f2 z_f4lyf@f1F4Csa?KA%zDnkloK5bYYftXtv3s`TV_SrKkS|oT?vrN2Hgquz6s))@WVyH!fy=ElaNh+RB8Z z^V8|ttL3&<3O(YOZ-LJqMR$In{(Gc;YKjzca=kC+O!hebQi*Do{qM(5>*Tz?_HkEb zyvdK}8v4W$VgFV-mE=Sp3psfola6ZAvoTITn(A4_zgyEjk~XT7wJ^7^WBckQ3$@>eX-UhUeAOG(2Q3{jJ5x4WE4(F&c8x6qu?&CB8z{O=VC zalF17>IeEbZteTGdgm`+-(eJNS9@sX0IzSwe|t`nLw-d4%&>mcM`@LytLgJ|gb0>9 zbvbI^Sl=NoTRy_t0NE|GcLR`sB(vhsg#{?%B{ zNy54}ji+QNy=wWlf!*6KsUIhMc;uzhIWAtjc>li__f_AwB=uxmUE}qAblvJ(M*1}C zzs-A-UO-d*%tEu2h1d5F#lP$G&*$|Ona}(~Q(fY?|BimdciFnEGRsES+I8S&7Z5P7?yKQe1xnkM zhe|;-$u7N?umD?lowN3;B^NbtpNJXQ2r07ZS$zG{YxW-Pm3ndS_w?o)D?VGU!XG=j z@%GbaJ9`C8cNnP)twcLUhX#FXW7nl9QRsdjB05-N^(9M#uNxLEuBS=)sM)6vFUGv| zoanwDW|(i%Ftqur7+3IT{HQEF98Tg>Ngc^U(^vpA5poa(%Z)~xFlH`Y50n1&NpenV zW4;!6!ga{YwZ)V0?Spdq$wef}%%W_CB(eK{P(27Bd>>h}=ur7oiU-TB>2v`yrNXO*XAyTC&o^xxUEtfKy)_zmv=Y}BP+wfR z`~v1FSq}jcUo7NI=~T-82-iXPskb{QzvuB2zGrc|MCn{ofTMJ#^mz@z;|hWcsRn%I z^EJS3V_~wJ)w@}no>YfE?wBe2@kULta;@2}=@UgCfEAzPZFzjoB6t zaI%-p7U};Q$T#Tnnojr6zqYtiwe^R>ldZECz`ua(cI99Q)Cx(NrZH+k?XlO5r;NUaol$= zU%mLveuoc)VMfKxg)krI&Hu&Ld%$D4hyUY`l&FZ19X;7H6WM!a6J?LAtn93ml$nu7 z$;yZ*B72kUY-NuM*<^2i*Zp+P`F?-@-~XJ~dA&Ni-QzQ^@qWLr>oWp3uiogriFR2o zpZUFUh6u=g5Dboak&<|=RBw0Qm<<2QRjDG2Fx3Dd*zgOR);$6tpV5P#PXYeE7!7cH z7*_=%BZuq(VB#Pcd2MyE*kfI%+QY5a*2(1~j+I`?GhXADd={O1Tm%q_g`(KDBMONGSuqranKFa!n!z3=hh9(Iph-ZNx6|-p;5kiR8d(LeyJyJYgz#%@kYQ0k=h}K0BrK-=} zh-7y&&wp%fO>n|@y;8&l-#3mL9+{Yhvg&p~0Svbx z)mIoOs!~!|iSdJ%uJmy5REC5hUes&tT9@eLjfmiIdh9lUl*67m1{lpq(KW@bm+8U2 zD?SrG`%9%O@Fl?E)J{*Ui|@YWwSpDYCAMt{6v);OpuDcVZYS3>TwShQafDbE;`y;` z#I--Qc3?GAJ~0umvn-SWu5t_WrR!jp*#AZebkvLqF7olwkQME+^Sd+S^y`LNJM{BhUe3t;!Hzd1gbF$<#We}PvBtbq4Sk|$s;r=+5)4dSZLm&0-|diy!2 zuuELzVpvEpua`{L@cOvVihH3xJbwda*O*C{a51KB=u#@iBFQGpyj~`i31RuF_l{21 zFGVdKewEMm+nb$GGvv{>C(hoEh4I!}L6lm{&L1`ybm8L57xdq zRjoF0`|o}Qk{#i|0hOxUt+aMn*+iZt-alAJF*(9RY`b3|QOH3i zjI=cPDmXXmr(dF4WY|9fn#CJ{g~OUTu2}d8FMqGZ{XW3W68l44M8dNvi{diyAhNjY zYzZIFCfGT=|F~2~nPI5j`0R#pap*Z>ye88bV*JuCfdr(occHuEQUt2QafwFaq3_X? zlwGG@7r#oUGz>M6_MH@?ey~C(xF4>D0X7c2nArYep>?uXX7E+xs-1Ydk8F3T;91k1 zcmjRId&L69t#}U?9`h*Ta4eao_m?fr!A57v@~9p6mnX}CqvC2{QAnSGaUcm6|O zXv=Cd{lsnpY>svi%ovkS=DMn2}9y#uQ-A50qk{W=`n&B9BrB$-;zZ4iKdStmrk9G|=50 zB?b-k_MbcXUOD##EO8ijO&O0#Cx|R$r&j!r_kr@AxZn(if&O@>`S@_+m^?bM4XjxA z75!3t<&le0J>0SNWqM@T#2NG#SXPc zMgxanL<|A-iQ~2g&j_2fsQ=-N$ON((q7^P7+y;E5@A3YGU=uBbX0J>hdYQ4qtFoR= zD#n+;M)~lBCEe;4r)~n;!XaqelVF2Mw5@EukO4 zMPNbBa+Uo^4Z1`vk=p}jKP2c?qQn?Vi5_iwW&*ag$XZ#-~tv4;Ezx;>~H0}{ujeyCfVuq9HlW_@|Kbm*dV%&=#y@J zguzL7Lqm0;9&;T$HwtWkJ}CZQe3{Soa%ZB*S{7)`Jf2m197h z%dkZ*p*B39(N!IOs3rCHhiCpts+?>|+|1JkFFn?h#Qp{J8=$7y5wPiWA|Yc*GmN|_ zg}H=%*|zxN)Ic@@-;vHO{9HrzqIa|p?d5HMsSCg(+O%$lnZ{ihvGNK0pX3Vn%o8Mm zd&JlGf8{}GSFvxXaVh81WA3I>vnZcXcm@ad8OjO8%t~Pl-CRerU=ULH|38@(XvL6( zI-?11q(q?`jqmmt`+ygw9sLS2UsRUan*ZiiQVgfD7ar;dK_Y0|Do#Bw8>&Usy^YO2 zySd$a(X7ImCF0a)Qm$b$qz#TD{1ak9*t?k*y!Ixi8r-z($L9=?RL3S(Dc$yQTdzj@ z4p!gr(M(*h!)&Ep*Cw6h4q5TmKPtv%_jE=0>`Mfk0d)~t{lg#gkQBvRan`?Pu3Q^_ zrA=abY4!R0^dk)60|AwrKSt`_$q~2*`L$x6dB53k%Ud9q79Mr!|R0aDPY`YY*h zJ4l$~-x40YJ7?NZPl+<(s3Y2nX<+<+hO`Q2t5Uj$6 zsEYt(M2WZN`rN3tGKV17u(sOU!&i8!t+DEN1!`>jHY4;%bA{Li)^_?+NhEQwW00Tp z7n%rUYdtj6a_D$0teZHDvOk|0j(l1rZ2rY>8Z;$BshAs@U>Ta_bfVwm=8s{gV^*2+ z_T)$%g`JDK5D8*7M3)FQ6tGiY)TMugnT>f!DlCO%SUYJs3f0}bD!~K8>2jMlo5#kn zTH-#(G%Fp&fVNr@oZ4*iojWGAtg zJt}dG*=~#<)dpnh(#RAJ85UAX8MtHD!07PfEc|4H3Hv$Y7KlT+vsTg?hJ_fAHzUE$ zleclu$W-iwAQ;KLzmwWEG>je`9T(WeqBZH}s0}*oJ(8LPyikXv$b(H4hPt1Dfle4e zXJIbF?9HxYCuAhsGQk&&bBUY=#$_^X5~gqVuZtP8{Ib!%L;~~L6o@>E2D^Ur0K7rw zUJCmFqQP!z6P4b0w`I0}G81)e)E;lmQ`mk}rZ5ODScfv$_7`GWa)^l(c9fh?)hTrG^@5g+!J)1UQeGGWM~ z+8s#9n802;lAL_Rhh111TmWGX3+6{a)= zJIdV>4r9zKVb_JMF%h8=97{d0oRW|w^ysJoHn1(O$sqH2ln54u-aBPiD8%EGP{pb+ zS5}71zo`#0r;=~1VAFQNE6)-lZ`RG?UZN_F82D!R*`N~kXRmG}s3UR_D+-y5S=@?2 zW_pSxHWsb$HdG1*d!yAN`(6@R7OLHBMrGs z7z1j93%Ltx3eTVbJF{m()eW#e_A#d)Nh5&kBjZex)`TFN=AY%rGG9i3jNt|j_GMkMa5VO^hge7K5&!>K7u4)IWN9uk*vSxR!_LJ5 zla3IoAOq${iTs^C3(UoZ82fi}_ZI|q%hKeCQG2-9k1ydVbOmKOw=rxZ5siw~~zRS9e)ZN9`b6@zux_vY#Zgkpa~xc)@XGy?)c$-9_p<@A*arT000z zki{tJh1fHVf_@1;t}K(`)>F$Vt1{}osnhg@BU5tCv7}3f^8i~YoQK)UV9VOiU*~5< ze}3s7-$Y*F;+Zk|i;o=-)kbs(CKQvI@^f<8&`OIYQTBQ0t!O-)lyk_kVAV7mU#r_< zoet)?L56B0iv-W4p_Oyp91Nzip4*J~JM&lLTm-0YYwXp8x+)0{Ytf%clLotaia*5+ z%r;~xem^?Jb{^GDvD(6lLLDajlX8Cf_WLEg&aX0Z(xdA20bP{?p|kMR#7`c`24HJP zoZE_hLe*dgcXIT>Vvol}-N@m>t-d1_hLew65EGeV@~H{0hH~PW)N-~*X{$ls&QXWz z$^>nufSjxXaeW0(}GEO>jqVgI3dZOZa3KF zW#{6+v7j_=BNuy5^lS10h2s;d$qTnd7G$?w&L?KJ$4-9(SYe1qh~6}!9;N-1!H49* z%7K+GJd^|*1X$>t10DnW#WG-FQL|3SK3Kd;li3KKWyUGS8hZg^nex+xX~_R#9q<*B zCdf3H?%%d689(1nPo7@nA|?+w%-&h?k6>k(!DK}t@1unn-V|+szL}V9pWIyrtJx6p z*PNqf-yjcjV}SYgWqA*Y{~Obl9(dkchqdBn;_{4 zAxr0nuSd8kjo&$OI+Xk~k)fJxBy>R1&~YeRg4Gd#xld6+ytbzRds9dVVhJ?b;GvK~ zG-kz>^#Vx&f9_#9VaE3wB&|m@PF0_vq#HDU362%EP#ObuDx;RKj6#j5Q7JlDQ;HBc z|0}fuAmw>MzlYzgJc2KO0DP~4)E)$BgD&@>Rs|CH8-RlXK;VD$=6Kz|6Hqm@?qCMM z33BN@0D;pz3<8O2uDfU_5eI7a6xRBz*yx1!CS&LKW9WfmJA!fF*0jY*8HhE?V&>xAzIduSVeX0~utT%O4 z_*5Lu9O@^G_X-fQPkXZq46eSvb(g^wMx`^93Lk-au`vA6w8@brz!M;s0C>mb>ky2_ zTv4AIX|&1VydH>=IrL+bynj4C?Xmb2;DMhAgasGo8I*GQ+=WgZf@5xdfb3U+iYb|c z7}XX**e6iUWdD&+J7MG;(Jf^+mB#moto8a$Ihe46S!b9{SLMxPR~chmX+yZ2T;D z)&04QSD`JyRUnvr@<*^-j|lBEFGKwAl1>MG-*XF^*=OFs1o*J zjn{y#-i1bMXcs`DZm8{-e{)VWIrv2p35c*=UbXJvyf8-X9rU&N17CJ9Nq_v{V72)R zkEgVe=csF!7}S7$3Lf=d$bDt#qO|qnQ}d++MMfC4Ou!`$;r~Q7ziImvIHFi@L4;V^ zM1ky;{KL?T_#pA%LIcV+V*SQXxZM8uaGN3;*bKlqK$iJlve6yL8cPK__it)7tuQ|v zXaHm$+@x-=INDo)%2}i&02mm5A6zqNds3i%{wdbP_0V)Z=)} zpqqwl216*waj!35y~%s&>`+cUFnj2%)qZE#Dj1u+rl2YB6l`$ z$j7cJu9JJD!1Cr61+-Qhu$zAd+=kzR!Nk4Y=67!%RzRUl<+vG$U_tIk77fVuwHZwR z-c*eGLs%sMj+8UtyT~t2#eqzFpk}LB4CWcu7yKVUcvjFUZ0j3C6qdjo3m?VadWx+(*XNSWp7! z)Mbo)MuAY&Z%GuYBG=~eeSpi!qCw;04}+3x-8$705fjpA4x5wJ(3y?~h%E##TZ?R_ zb#33ms|R+^QqK<#KVUjud{wiN0c$%203Q(40gR-_vJ#{A4yZ$@Cv+dOd^HBtBVc~7 z0gYmL<68i&Oo7zexoNW3>po!Q2^TyygDUfe2ck!?VF8Xp%*rbxkJc>?E2I0LPx&9M zzmaQjAA`D;of;DZgGxAuqY?T}@y9<$U?U*W_1+Zr%O?qZR8% zyYVZGdwF)*1h_xo04}2u3>7p>Hh$GsaGK4K$zsj^@~(BEQ2C~1k^vAg0M#BLTp@_H zxN8sAVB+?m`@ssj02UDf9Kr_hlAHS~~I22gnAr3xfMq9l!-X0))oia~U8x z19=^EwerV)m0jgx!B>y@o2MQn4XkESIwQ=;>OC^ZC{Tl%a+NZyXefaYp3h20&@q|w zVjB|2>k4;8{-Vh-h?fb(eR<&&YYaHBI{{?JV9 zH03?q{IDo-FBd^ueO9VVp_1Z4NITR|O!#egBo9L$er|XbyN~5opdjuawvYJD5MuFCMYkr^N8u2BMK{JFkI`6;p1z~~j*AsBsu|R2C0pRiWF{xVfKvFFE z{!uyZ{q~I!t-s)5a8e9mSv;pyGDDgtVI#}{rYZsq;YLla^&BE|h? zlqHT=4~AiX0E-gR0>%85+Fw8lUU7#L>u5>5-~ zG!QC{=K|3#z+cikH;^DaF4X!MT%tW(EbJ<%jf3$7w%2#iEQma>F8P%MgT2@({^OkB zlTzac8$?rY#Yy1Rl4zZl9^n!ZM+1JDOptk}w5V-IaVsHS343W^=!S9<@p`m9; z2m;_~-z!)SmLGZZVZ3LxpR0W81=55A3|s>6`Jku;Tz&;AF;s!w1}n1s zyZUpEEV}0~3@7C&VW0U6fj@Fj(_&jFvLlffA(LFiHR}hv>;3z-BXjum z-BdfUtwOIh-@_JcqH#L-Em#ZF?*n8f(wiB|VL()Dn`_-3=lqqk6gmo~qAXFYA_DnC z(WwGXyHVJ9=W?h+7JO}m`NPqpKS2^zJHNt2YOSD*kHW~Uhfr`-Bksi+Q-lOQ`qif{ z(IHU@_BHXVcfyPpGKf%FV+`_u4<9S$0k4i|G;fN7jpyC_Rta3EnOPf3gDB^^fX$g0 z8fpLP4*n9QC(0ibGeXaM{`zw3?F)X0`OL`HNw*QH19ZZf8DNZQg?AnUpYxP08>R2P zJ`P?7$cHD;YRdF6&sXQfD?lL*)E;f#XXNy|`)YyV{62F>tokMtF~26g%jI6TT=%;0bI#2oWbr?$)g24d}$2`1B0OQJ2?l z9l8Z)@G@7Lh+hmVHkJWicIFt=5MJ}y@8H%+Pl$xGrgwn3-UMVn6e~+Oftk6{i4eLw zKc2v`Rxn(pn?JPe9JWIGPfTQ;)IisVUk84MXC}N?6GSpYSI$F1-F-fuAGi;2OLrF8 zJsN=bV1YFOWe*^3$lhFqFzhZcQB84(CF&C22f`Nm!N!9?VM}1_tx`;<=z4p-&JByE zb0l8CPa!%7X!B;xM>VlM0gl4y;d%m8i4jL5yyDaBlag%sxCyrShwf%BPdfOEm7YX= zK;zQp$u~Y@7nGugusM=-gRcI(!~svGv#~7jqR?Uc7;L4dOZ7rUy8QEd)z_*|0s(li zqrQ*OI{V9Ch4!mg z{8kcOJK0p2PLti&vbrDNhu?MBbr<*zWToS&kEy3E z>32XGXVq$-Y zx8At4u>rL$Szhp0`WEXWFQnWo>!aKpstHNeELUs?N)8F$dCoy&8>5^PdjW7DfK>-| z?q-%|`dYft7rd}BlG)*wA>#$&C6=jvvZU_6S(8ZYz@gN}nWR@r^r8Xq+)_rKA< z=GX+{TkWT5;oYPjHi?$q@A&#v;N$p<4RoheI$o0BpDaH+JhIA<<62W9fr6v=zrdk2 zZyeGV8bB?J2oC@|MG=#HLV)Fm3hCyUtw1E7>RnrWu{p8#Rm5%~Cigr$(}alc;<1?D zahXBD`FgTz#7Dqj*MdK;sIrG9I3QipgHmr?)S*HU+`{GWEjAB&30Wo%<%g#{M6l{WqQ>%1_X1rQ72Evt!qv zUd`qS^$5BTF)jGQcfnO)=fUvT219HFrph)~5PW}iW_GqMP@vFu0o?pHe1|qh7$>D+ zs1C1&Fdmx{TB|?Q@o5uV7peVSRvjd^?W91KnH<12Y<&O?&t&hy{0#xX5Un@`E^QE| zu`QOPPyqz{AFH>9!5VPnRTbQJKOt#b&}2pJ;NpiRhy`rBoo~JEg_OuX%Y{Sn38*js z?1gq18L#ULew_0R-9p-aaic+6m3!W5g$h{#(+EYKSNsrCfhP=36?7<5pP_EN4uN9c zje#K*nT5}(%C_X$8mp;lzGb23Oz*RzQgZC=J89BhHh0A}>11cTNIQje2MBF}U}}8N zRDc*ZW+kUWTF)%dzo1HjcBuwG&fuiD-L_MOdfG%m#H`qAJ5 zpOCL!W6rEplh<6*kqxUY&9f%wB!&tNUAFH~K?9b#h&GYOEFc*1UYrWyyhAUg2RMuU zH&GfW0hN)Bm)&{AAjcUd>gnet|KM`rI=g;`Th(oHfPAiIGvusaD<*6embg|^QSf!) zJni);wsbKo(5oRqZ!nk;q1yeim4ebUV65(wc&)Xv%ydl*ckcqJ-MW1U^;3&Dqo~!QqrUZ@(Y#u%xBo(joSabtwch%0h!eCAG!ni&K3Qcq?%I-C=ku(U7R) zX#VFAuC0Y+e;b0%@~giu)k7$Q9DV@FDcWVkq0|T>QnU*^QUX$}5Lu-6Q_YIR_Nc2F z<-`4vi5jqVp|@C28#Mj5V=#54X3W_19T3o<(_FyQw*>ZgQA&{FnJt?-3}_n5b{TK% zmeLyz_Izbo(b}B1RFJP&y=!}{)h@}3Msi)ISB7g4NR0ZfcMM6ELA(wHLeQxC<8(Z9 zC#?aZJ|_wFDB?DaGLlSr0Tu^Vs&UhX=p+jBu6y_{^Tsu1|K=1Aozd^c4Yna(rL`5m z6e9hi&bZ`>dUvHByB?)};kfzdOHs>X9*&q+enG+W)cmabk+Ay^Ghb=?IRJ(etgQ*e z6hdDVaZqUVUtM86X6oTJy)=uqzYhZplpX&tT!|`y)QdL5{NtpYTf4)I$Hbayhi6sE zuiXq9T_+`7`LQSR=MR3r?RmE%QO{PrB}FoK1pt+NBm20EF-4CjfF6jm?|7WCTYd^9 zIn&GBK7Qfc2s2%Vjt&QR+T=&Bp8KU&W*KoF9eqKtuODI8|HaFtvY`FKw=WgS!D>Sm^8X_Uwqk`{VVJQ?n#tqJNM&w;|@8TbO=+Jc$7v=W~8@LWL3|aZ71hX=!eRC$QM}Ves<%DjSd)rJV-w_DV} zWme6l2P8{!*WW~oJYq{nb#vHvGp1n@X7_skMX@Aln2TELc3$(u44`L)*)R2k1osmu z-EZav2+UgxWa4v&2{9b>=MVKsoU5W&jns2Tk6FCyE(z&bDKrKv>BnsARQ0w!#}Y^? zLlBO#=`z0Neb_Wrif>ig+I)qGGe9grBoNhYabW2`zBVt{za!KfYoK|3Q+@T*F*_QK z)$xi@l9OWbG1+psh1ih8T5H{4mH1wqM^$iyf?KpQhbp8JrK2u4p&za1M-ZhgB9fDl zO;lZ{;y~xnPHnRiWs#4rP|sx(Z*i?+f2{k=rzb#ZyyRov7#U&aM)P{w5lvky5Cm^T z1kDJcU+!4>8Y0yIV8*+g7B$F5lYHZ9p_vp5g=`SL_|Bk$KD`+NGq%5W7@1nPZY+yf zLkp9*&k--)YFxYwR;wNYvGqu30S`@M_|D0YAo39iIm;jfBdZcd4H9LV-I)OryLVxN z=V9*FJq#(y04bebXpk{%aMmJ$eH$AE&H&?v5YQ77!}me8&eE)oaMDA_nDT1&=HXly z==U<;#*ugRt{G(50i5*ilk7ACc`m0{fa*j^dKGXAbq^+ z?wG4Cd{I`Y7VB~{_Vr=mR#hp(ARlDbuiO^cF~{Jq6P~Uk`s)Enhrn)4X5Q&~Kr2_E zj!HQj)SDEQ7g3h&)Ctw}lvXb4Y`LRlHcmfM1+4_CqK9^LE1ihx9?DMR9QQ1^gPS>L zOS(rj`A#*4xaY&aS^zk4Nm)rpBqWQbPkB|x=8aCfWSQ@-i-n4UHI!r)K9QHZ3xdMc z2UU+Ua2^E*|CN*2X_e1l(yM&APS{}p z1zgNzL|Jw|vjyZqd3jqtBOStSZ?tbc4yrAhT**qMa%75*$++RU0T4Mkx1MbpA`s6BK| zOhj-{)h!^#>EF5V`*0f5+qNm|(>Ay8r4)ixrV;&#Pr|_z&nk>>jG} za$U&1044a)mX$`((U9ck35|mP5gB1==Imw8_|vGAjW`&|No$p(97@EKvZQg*1u&(z zs7q2=Sal|P)#03mwn9allj(@!S$u!-+P!aCBTg&!*%Y9A;9#c86nOeDSJlZj0WWs8 zER@irikh5G7V;oWYPY_G1w;e`*E6ZLq!#$I=x&j?2i=kl(raS3c>DQ^K`H zW=&S}GPV7g0@Fl9?tif_9sA(kb3~_5nDlUhg&5ev8&(oA=j!`yd43DuGJb0%S=AO6 zg?H1S=ULlZt!$*pXU%as{o!nB?V*FhD)okD*W*Upz$DM5n0 z$vHNHL-2B_nGFyZv2^6HVV2u9qJup|OIlyOhG_D<_>L)n$eu=Uh{8wc44wY<<<&a{ zU@2wOd*Hmn++7?Z$smNp1NFu8(4MyE97`b}NdTyq%*4il5B6Y8=LmBi-Lza0g|lH$ z!eh&KHe!LGzb1|bl+x`5o*ZLk5KoetKgiP|kMuFShufWZ+YS(!#RrHw|-Q zQhT`M2Ri7ekxma4e$53Gy3nO1~g-NODp&UiqQHb?n+N=a&2TRW#5*Udx7p8P_LR` z02zJ)zcK<;6Ntn6p*@m$V<@7$j8PXSiM|qX!yFc5?kg=6>y`hBVqy1Uwi4%z+$;NC#s9#_hK@TPptqGrGdJp%l&iWm#;bsEl zA7?l(WV&83ON{j&c~YwW0^Smyce9|#X(%3d_Yp1%!&c~^qwq@BhC?r*F?;7B4bz3l*|LRhbnqq3GLb+4 zGPX>P_Xg;EmH_iO?7hjoX(NOR{rs$-v2myWt!pQ1M&t9azjmb)LZNG^Z+Okd)#rEz zR?))C_xj~iPOnn@L7k}!ReCB_I2C!09N{RC(3h{oJ;8T)s`DIqh)pwSTf9|&E)zQr z7iGf&X*Q+_YlODq?H0M`fQg7<#0APMFJ7;0H+W`vJNL+ zXf5ia-0J?9(_d`Sco}vAem~zKETwe>P5E67Bqe0((JREy%ytk}|KZjMWOKXLxy2w@ zmXN&*iT^2XLP?6h#c?ACn!Hdx$ULkqtQ+2otWy=6n8&Nv%$W1!y4`g|(?~Tt+BL}Z zcyZ03*aHwJq=v=aYg&mVN#~I_$}Q~QWm%G>$s3VC%);zj1s*o`pY&mZd4)9=A{5I6 z(Y?gohLFcH9_{>)#qbYCGOFgkxBdFN$YfF4+X#G(FKDF!UdZc5 zPTT{Qc<2d$h=8+bLs!fN$7**ks8|z)`WJ*70@n2oM)>g>Qh#daOYj5{HX`MZ@AA~a zbEa&^Ii#BhRB7^pSn!H|p3vAJGt+ITQ_#vLYj%5Gld%I z=dtQD_=3++zwt8=Lc=`$;`h@(2v`#T07t~JFa77e~xpw>y7L|~_W{ki7+pH<{b4$I@`g+h(e@lZ=yi8E~ZJ89+Q?cNI_nfV6}KjS$>lqoMH%^zb2p^NJOJ zhMiQt6Zh%$9)kU-mOqh63JxW5gQ$xpjsJ-Z4$6{Ugx$)|!dphWf{iXPHy~vp3x~JV zO43&mJui2g>GqjRCc9>BQyr={3qQ$ME@s9_v+FbDWM%DamDX~i5$OR^L}0aY<`S?{ zJvMG|tRe7b^s)_<>rfUTiXQ+410aGhk3ECI@Z`V7OE9Eo793QG8Px4K4^Vh)gx*p^ z5L>AzM%z2fqrnMBelLCdvyZ%nQHOWca%g^PO6V@`#4P|YA@U4vf%Il?Zy_(N1)6)*09qB=lJUw|7*1k=ik-VLKf(3t zHV8kyV4C|$Dn`}eT+D()W>3i_+V@4FI$1j!EaHZ8c)`D%DNvF^1-dV&3d@CzMxusa zw7>13kk}Sc_978uB+304P8eK%^7D&t7zs7*$WLZ%aVN;M6&q=(B%q`U$q#=gI6)&j zM{MyH;JwF)TL#PsJmAn3&@v1|Jwy7hSb_~Ztn@kYwnUJ5WRlwW}#`)GZu>2AMOfhn%E8qTmM_ zO|it5h>YaFP-_SjNEV+#fXnO@X8ISi8U9&VAWKEVtQy7tdZR?-p_Ainulegg5!zJWcU~%#O_CIwUSkR|M{m@AbF(!t`fp_ zE44VA=g$)rpLL5P|E*7y?>-FQKKO+X>PIEqNsd-7eNt1Yy%iqX7svUdy)8OnQ z;H&OkQk8&$MucA8m6S%YHYkz~*!hPM+*>aW%{Cu5o!@weehLXNYPyy3f?~B8or5j@ z!im?#ay*vnN90>|%J14p6rW@?6aV_~z$b2eabV@#;cwe0t@-;s&8yGedW-pvwo5r$ z-sE0O|DwiK&94}G6bS9*e;0h^@|lj+3+HvFJ=;_CZWURZP?3Xw8Q~bADt83B(p+?o zMvcAFls_fAC*M5uj`dxA`skIMI0HmD8_IhP-{d)%o6#$h+yPRX&TA?Ek8mq&oKcOIm}qg$njRs-=+`NuOrz;G zpszzsbLtL97Sn$i{Uxcu)AfsM`02~6QIY_vaIK)Tkp@J~EEyn>I@W%IM+gThgTE>% z5wP1fb%iD@YBiKRrjiu7=TdHm3$Qb^39`2d%doN3GmXl908)#$3LeFWYzO;QY!iUj_pOP#J#Q}9;k(UVF4qO9bVVyF)PLN3#kNd*G;4@OS&(9JxVxD1~(_DybCx=t;gj1U{G^gbhIRCM~2H6M5HUzDyP89eTQ= z1c`)JU>eCq$gFB4ILGg|(vNfB|J+hDzMyw0;W|_OulB+?Yv;hnF9Jyd8nvb*7FSMe=Fd`;rh$Bi$B|BT#(YQTt7-F{0KigRT7#S?hzg|(^;eYH5RKUKi57+pK*VygGWfu?-Qm#&-)gIWO73I5_xrJ0g*Oez}7 zn$glV}#=Q zCyIi4z%%U1%YkP|A7!dfZ|7=)tR7Vn*3Q4H@j6FTlE9hs;pVp%>qpYp@>H#So5-GO|(>vE-#U7+v6QM(Enqu zm-~dJ^bQ>xUW{YTd+v2_C{v=k)=Wv&$d5H>dsR);w5~LgPUyYK`wth1_8F-z$Gz0N znLfoUov#2jge?lq^1JeTyZVi{bsk`Rur|w5&6ZSgx>>l?(uPlUypVEDa!$#GK_35Q zxT8*DE(YWS4j_t!h8kNF{{GMC>AN?J_}f_6dCGImE|V4@nrqI=)NX~Ai<9|-ON4+6+8^Q+EhUHeFRBGL~K$w2oBP!f)Nj5rw8O3xk@ z)%KWN(_6l6emCArCh1VkWlJPC!-HF1fzgXGt`BR(BF~)Xgp4Dl9aeiXaXr=M)#W?1 zQuz&(*cb-Z!8u^Fp^cjtn3JYBkPG?(9?NO81v=cF%mhbjew%Kn)BmGLy_I5l_yW3F zj@{e3x&^(zn=E*y-_7>E>SgLyV8lbl`lsP?+ES9p3o zIZfB{xR2uYA<;EnoV04IKD!s5kOV|& z7O8)MmNkKJNbxf=#V3JLNV^LYsG+}1EG?hEJoK`c;c`O*p~%FJ{;{@k=Oq#;s%b8g zOZv}FpiqnkC;Ot?shHL6J4Y{Ow#r2I&*Mu)8eEiDz#tefWHiLm{m=;;8fnA%am8*! zAR~-7IUl9y@2mIo>{MsuF9#7OTn#|DjKCqDI9hcXg+!++z%S|yM2$x zbq|q#NDB2e?R*+ejws;|+)TAk#uG{>FQL>hJD=nBp7t^SZ9YuTbH4Y4G^IO)?wZ}A zgnY_kW}EI+pN(%hjmS}7ML^$ zBo!Q_f|RcvH~Dg@U-zAVj;x_XDw%-WONt5x)M-f%N2|=vF*OuEFzKS!ncHxA+W5&V zN7lx|m)z-mpAwP1xJL2?2+aqSAQavoyoA?=%eFii!gCH$eZOTbQhy^33Wqgll?rEz zL6g}+Ku&-xJOyV<3c=2bxsBi5F#A06hOBj@Qiqn%s>z4UgETu`nDp*3S>@B5DlzK% z&nf~ef=t=ic%*r#m?B}~0jRos896=>P8vp}66?w2(pdMt)5r}m=vd>~CytH_eWcS7 zmQVAL^*cV8=h5Mfm~sNdjJ6G-ZJd9n-co7(j4w5)003y{M;y5~e%5oJeu2DB@@2;0So#lD zeN!<#Bmx4bU%tG}Q9Df=OcKy-3^XhB0+1z>Lj>`U?K~C-SAoz6F~cmNb4vwJr6N

V`0_?%4<=H36^;vbti#Yz@=_i-yDW})J@%Xe5kWbcHZzdQn zW`F^83%zYy`&5@#08Fu1Lb`lD#x#(@tt5>w(+QC>z9BAv$_#VvlNDFm#&kA4wZ2cV zZArt23hVW`~Xe@f?_%GiDv5ZlnDBSGPvJ6d3ctr48aj5gD?W@mrA7{wYklvg7 zdP8UEx*J9#VI7lC*TkmZDA_zWFF6R^9;WKTbB^2P*cwfdMZikm6s0le#<*S*s+5T@ zd_pMSjnZ5?qn9rf#;C$jZ{;$A^G)7Rt2qL`0@z$&7>-U1oV^SJLVnPqbKRkXyGZiN zDer$;yAr#(8?JTFHNN2K7q(=g*mL2;fy*hCf&j6>le}7?fd!-MvsTiCYZQG`H;KSD zZfmw@@*zA+IxG7xm@P;>v+DT0K4;mjVj6|K8!^Oi3rGAXNHI040wciu8XZ?D$74%A zsecY`p~NTM{YrD|n<8>mN@ZjcatBs8!2vh6)s{BEc8y7qNhp6>bB(JRUy4;6sr*4b z>Lh2QE8^_e(jTtzkw!hKE%5qneqeZOiFj-}FW_NL$Mg=N;R4FSkQ zG~QR}G30#saPwUsBu?f#3t$vbV=wOABTsj=CNPcnorB%W>eYBYux4cfiUqi#-~s$H zR2L9j2A&m;-D^SeZr`0hh+6dH!bP9wa089yBHq^7;Hq46!_Q)2cfd-s!>qR{MC1Mh z;XX9J2!IYMqTAmRoN5rX8j3!CHd2@X<@{hEj}U&pj`D)?bTfO)06WaftSO|Cb?_E4 zjR(8Mko6*U8%j@*vH<8wHYmD72gr2zClG|wfnSG{+8Pa*;U1WD#W^FXs&etcpUoY8 z3>n`@aw4q>-@ENSxY%n-(A~7dK7J|lU(2o~ZN#-FJkC&B5V>@jPI z7k&oOf6U5?gM&6~-zCZ8BQkPeDqmp2FG!F3ZI3~C;n1vP{7dX#EkFbvqP$1s);S;- z0RB!fv-RDT*Vk0Uuc;=d2i>)82`6s9hD711_6PzBM;|}|mox1INPj2x`b%Ftx$`)R z*agvPL&*TN3IY4U)g}zfG=-M2Z|d-Nvyj2b1pUUr#4D#?o(v~GY4g$M@gL}zB?hGn zfy4mOCC@OOcE$Y(UI^#_X*TGjHH+;sLwA!VMuntZP&N6%%ln+qU=70p#c?6e&2ERF z1phK9(7(R@Tm_mnI3A!W$E5ZMREe``jqqqmrE5)rTBo&Ul9*TS|GqO?+$~ceE31F% zlmdQc;Pd8MjS|2nptY?!{vAjMg_G1Wv^b4QpqZJxG9`;zl0F{HExfJGdKe zl1c^qrnV_6x@gh!4Xj>|(hlivz{rYr_32MQw0DZj2PEXZ$U0M z{mOEA?}gumDpAT@mxdqgr6z4#QFuP$mToe%j)c@DdxV6}gQA2kZR}SoYYli?KI9b8 zzLi30HAu!OXVic>AeH`Dd$b48`qk|d7VR*Bp3pDqf^-e^k#pOGDhgD}jP@|Ud_f8C z@G!AJpbsXH@}za_MDDzz-9cc`)#xGRNtRHH#m5kFWEZaDYY-L~5*U!zk}Sb3AG37Fafjb*qKGft*J7 zL3K6`aX&!yOHm_!U{?`O3nf!(kl~(q1xH=30%oXRe2;v_7s6{O`+2puxuExB4|>$r zK(8twS)ey=JT&`)25+__9zFy8;|a*({rJ|>hWJBHmmuasLLm|rvJD4q_&$qztFH2y zBp~3z!5!S9G>`zULLa1YP}C#*5EK&px^Yn&DGRHp@CHH{KHmKFxDEUX!PyOW&j&tCg-nO6Lx!yp^2>&*^n>;&S<$TTyr>w zoJ$S*bU47sBJ+H^)l&tD;U2EJIT^uwa4I=d4;0L5!x{udj=CZKC%-Y6&T)un1(3WSKL5oF4=Ic!2)~QMtI19p|Zfm=m>l z{#MFs0C1i z)ix3N5qvt+xPk2owMrP}a2^*2cWG^Hn}kkY}XIB4!JvEF`7iRVh- zIV!#>;4(8Xcv6S}-;zt93ArXP3R>O$hUyM?E5Z6A+djwILl5Z|IQj${u20OL89~PE zk&D$i0`p=J{@Vt7oN`|0S0q@yIzCW{cT2e1@G<{jhr{_k>&{AUCu+t((W+n7^wq~& zezcCOH20n~HQl%e(Yj^q%WK`aw6nUpcZhl!>Y%BB>0SdogdVDmroX;|mi}aA_P{1U zkxAb6uT4;fLxG4>$+U9DH?Xz}_^+WG7;sJl2j8HHSOjF8a1OmV6mcTbU8`wm>c|vm z=-P4p&Z&<`K`9(LPTIT*$*NJAkE)N8{@{9-L@h+x1kfqzjkwstH)!1y^E?9Tn&ce6 z&`fM2ExM5ImQZP$xDKL}L}=CoQ6_Xy$j4j()*_!5O5%9K4d) z`WrX|#Br_-Ru6J;HnB^u63cWl6!N-4ulO>^3gPhYjinJ-D?l!>ymJ{DhjSe4VA(@g z@h-zYO+n5@D01_Hf)z+zl4$T@tX}JsKAh$-X+0AN)gW;&RNy7}6p#gmR4@VNc_-gg z3JyXwsOAP!!4h3rivK>5GvFdbt)gKTBe&Hz8sg8NH6dmb%KKfI7cQ2lIq&k5fJTTo zB?cVdUX28x=Zu7E$eA~R1Robl+*Uy=w!MrTREdb!O%z&yYL4M%R*8%9*~&_fP_Eg5 zSOH0S+Bg3XZSNhA<@^2t-zBqfS7fh-tSHJ#rCTXVAr!I+S(!x%Wt60{D@2h!GD9dM z*)l>zWv>QND4zGF@B00|ujilN^LqUA`Bd)fKCkmU&SSoh_i-Hqa%3+U_f0^a0779f zJMPo>ZmQHe0I9qWP<&{dTAZCAIvdrZcE0-g2VDX~1RM(ewnW$PQ0?|dlR=A6aV&9p z^a;~uJR`R2kLy)m+O$!~Z0uRWyR>l|{Zd=C%HXo#fc4i%G3d|y1|rbD0y{2&!8?H3 zfIstAeozn;`Zgml+bR6C9sUTN9BLbJ_R-JJ4d2n!f$GGIn~q=Y-+v-#x=_umaU^=6 z(8RcnwtP0j!2r-`$j48DU~#c*#689lw3FUq{&)FxuBK0)2)(!imiG1V%UFq4kwT^8 z;!5jU`4!nvpYF{zp+bsIiD`_<`Yt)7yXp*B<}XXPeMu}UE1RFaKR}%+L8j}u+{RRh zk@b`}p#BO`xqeeL^SLRSqJ8h~zz}e5xtxwp-6AK8?HM4KP>tOss41u=*l?2`nqK4d z&Li2BMw+;Qme*_aX!LX#(hk1%lbBn5lbM}l&KJ0?C)vt}7@6pM7rA>Dn^n43`nUUb z6~q))v^ho(-g1%u@Oz=*yH3{EyAR!-uSEI#mwpYP6LHU@2eRndAh6v4$+0@6Qqb$9}Ai{z1nKCp zI~DK)BCU(MRbUw-u3#LHGm6mWF=}oK8z_=(t3xMj&Yzzy({m~%KYmG5QTp8465W08 zbS-0MQLY8-@Dy61JXj7R;aEiU`hx?MX!=8oYxI+PDKIqb`|HlQ>sQNObKi7vjb3%w z4fWc*AWB9l zO$+B9x_JYI=p93&7Ta?ts4l3b(e`R0%TvpSaWu`1=MWNDPgkSEviJAGZ7vxM=NLIr za5VD(>Plj1>KD`J`tm|ib@~W5;|1#3p8a0%{@{HrgA5QQqd6j5Q+0D=7TRx4lTc}bmGmobNWGir3j01)Q{T~EuDDb)WFw?#tEn7QF;X)KyhF-_83Laph zod$0i{oX8a$mS1h)Hws&AQdLTPM42rJ)hy+H}3m|?H%N8*8?UMOoo5l&WV(cxP$(- z943t@1!H^+_kKrWYX6#8R|`zDDYhOyNb> zYkK5^171szx!g?XhJtGJR6SzNt=viUS2<^y2gQJ(m*{UN@CE6o5Xg9%>Wx3Z``kTj z-A1m%RmeH4F0=O9wYREA)*+NT-Njm9{KjXWQSxBZoBq!-lY!TcrZhO7&`lg#=ORk` zoK@Il;3Q|2Tu zZ9CO^tU%U?9XnbU{MZWF!TaNFVniqD^np+CWY1r{0uNG!?!a)A+55{EannWLBQ?;| z_BO&ldw*Etb$-jdicM4^lRn`m!neqJRR6f5Ik6zy`&q`8xveZn%8nwOD9+}|<8b%1 zu7%t+lT$*9cMhsG4L-`;g~1#|b15bTc_Fb~Jo!|`x(+_=gR1PagaIUImFea`vz1@M z4aT%)1>^?7U@YLNbj1k!xt#gOe`rTyRqFOTsUPtlvu z5^)8fJeWgDS#=&gY30~7%{qt&L4!>2LvW!ALmH}N54BytF1&U@>>!FkUl@ku>wtc|^wSR|E$WEwZv_hSByVnnF_{vTjt5s-CEHoK-^Q6A(wmpG zU)s6zm5`cKTs3)dl}Ev2YJ_XRNh}Zy0tmz8p(TrlgH_U6@jY1gMX7zrtJ`{so>gH zd$hmQ;36%$HzSUR{xnN;ncGf#ORCv4w)%TevU&1TpXq0km)EV0M{PREcdDRwI}OPr z0worM5;s8FRS0%%;+x@g4biY#MGpI9ciEu&y&?XuicK{r?p7F(1u}EECA&&=f1-y7TqBw=qcerFS6Nh&p*qSF;AjA!MVXAL-zb9w( z5A{Uf=28E&DVo}Wj@}drqp!Q&JF#55VD2;WrWvi0a~5HxgoA#zlZskfuw(P*ks!V+1J<25m|wjn^O`7<(csv)iFM%9{@+r0vA5sA=U;v3@fSf$8>dyEv6U6B(Ibupzt7kGyx zLpUK`Wo5JAuBx`UokbGHW$OUPB zL@I02@8O77L^zF9>%D~ocf>p<##0t&ot*i|^ve5gCE5CX_etFPuI}_RiGlRNM`8XR z6*+i-`ni^xM3=3N$3SJ#f^0ESVvV_ar9MrR;q1qn@uV5dMvL5T9(+OB;2$|UO5QFN zrl9;f`JoG+=CN#R|L8~%J`6KmPiy7hd2E)-XDz?k!5v567` z{6^MRtvmcr{k};RmY;clW+Gp=xL9rGhAsu7H!~;SM z*d^QgaP&*7TS|a)KW_KYjO%A;HLL4>%%tmN70Pn8){kBDJD9`}e!O0&aCg|LVfrxt z)rz-@#mU8)C9V@X6uJ?$4{7ig`YmutNJ4g+5BYWC+wU#(UyZN1Gj&o}xL4eGp=+s2 zrps9+!!tZsRj)X7RI~FCMrom-RI_EBp$n3~;S(HF>lxF}^G){B7f% z?TPWR*=PF}u4<6H&kBiR??&GR0deBfelXoBjlz)_Y@BHvY`i0%VQMI_ze)DTuv98r zdb&Y*TcO-umvTcR_U_X=6_m%n{KEpseJ~Y!z0btG*VJnLTGAp3ouH(+y{$xs@)<*T z(-cD`hwB<=S?3*nui3cOO`2t0tZ1_~$g3rU6JRI*$?rAIE9&|E!VzZl6{FD;@p#Cf zBC;crg4@9WWbn%1R=k8&il!RX&`g;Bin@DjBSdl$`h6UtE3_YlC~flBUAs3c?Ht$Z zWo@7^iD~#psi))xIUQ4?HsdYStWbvRx%g)?`643=L#cAPTr^yD3K^N0XHa0?o6jF( z`XLtFcy*iDJCPk`M#{Q(u5%=c7iz9fj3>1e70Z*+c|;gi+soxdm`?b*zC(~5mV=)@ z`AA!4R-b((=VUzg-hh)cCAz{mU@al6k*}IL@o@1C!aS-xReIx-BR;h)bU;g047}7l z7ev2DRcTcm7wR>aF#Di6S}wP=e-BD=SZvhflY2J$f1Mu zeQQYSyM>5hKchR}M;*P-uj3c+rqJ^e{}1)oQR>HxULP!LZAs8ymo&<;mQ=mML!6zp zQ-Lh0C&HKr?A7%1p*a0@B$w^K?m>ZNM}|qqxBF#E&JJd={TrWl@MVl5(jaSpl~DEg{)&f2_BaMSQWRO zvI`!qVyO8g<75}|2p_MN^Y~`k2#%Eetm$xn&GDUIpnP?ny`v#zehAG~&L*ByOflP9}bNUAFnq{1Xq)W~V-!_7XMEQ5{NHyg!n z&bY#{C|Q@vb}p&oG76XMuxbm>x@s4Q?#2U4x$uDDqX2~>R|q+Z?r z8`w=qsz=f)sY3twB$LFHAR}pcK``B<7H;C2{;+)=breCtv;tEV+5JYoYT;SVar%1V zu7#~I_Kx0z@Gu-xRq|v#7L&BQePcvD^|nh6=%H33UOE;fOyP}HsTY{4zP-%Re!hG6 z*rv)|N692(8KOisx=ON=YKz73CKmT~%xfq|)3qg!s(+nlivPDHDl+{x$Ai9za`3XN z#$3E{1v|9!zhIZ-L)`k4{8>j`1+qva7W^U_A_1rqVIOIfS>L+3mCNNn@2 zB3VfgixmnszoFnyOG%?_Ym;QiuN&W9B|PIBzCpUid_Bp#lpu5@8EnTgMW6{rcCWR- zGmGDVuToumfI&9p)LShq8lxs8*k(<+!I) z7Uaoc8SXEs8p>_8%P>8E6)B91*o-c&XRRusQLB{(cPWq`ocdpSTQRcoBzml^0&wN{ z!|Q5&a8t~^_(lHkSCTi1ghy!DTPGVg4CttKU8;nJT}zx^UIja$Mc3U6n7f&;THh6^ z@vg-GpPnR1{R*K_?(+H5R`jX-mA2B1_D`F)*#e#JK3daQnBJ6 zHc6q!XCL4~EBnq%Lzpf)Yw1J0kcU#!jF5xZbjvA6Rh9OcbQ6L!nn@^tIz4@V+Tv@v zZ+z~eCjVE=nAl)a#f4sNIY{!hCkSHWxK-?~o$-_OV#e^Nva$D*N_L@$`jYZo2t5PY+(x(6JWUR>c}ovxD~f8YmRb-yZ?7_pEKX z!T+wvfG;$Deeg@NyVX5uL3KxYBkSbGqM98i&#bI4o_M0FjwJC4CRu)}Pc6dqIqQUH z*1*(|R99gu6;-VNnutHk^-aaEW3ueeKFf4Ws;~aFU+F0`&xE7s*Kkc6qajho#C8*f zZMIP3q_B0r6=_LA)c>*>(7EoZjBTgO|8yS6T8eXj$u+9ew|hR%L7OjBE+ou<0UFWG zI=T9i>KR-T8wl(MCABZ@CU|Fol}qj96>D~hpG=WnoUJMS_ON-pU})c7%irG%`CRRj z6S6)lsw&N0VuR1ZTezlDpAP=vCwi>CIg~INO?waR=YRqpRD|q*eKBi(42joiqvb1q z-mKd4l$oRFw=qPWzTPhWDUg?{G{jrqc^e@x4Kvi3k(%W>J(K8{HQ!j{aBg*c^`+^f zedjycQNvxM(Jt%dg+m0YnV|ux$ARTUFg!TZZLT%4ncPEPz#4kd@=oCozk(@$bHq|hni z89WkU3scP(uas4?1?e!SD%hUMs@R(YlNH~3Fx~Y;uDWtcW6CXVI=hY5L-j)Hnp{$1 z9VHzTi|_kLNsrfVqQNT2#IlcsyziYJ59~40FWSdr$rL>HXkl!uBa(Z+*u-aP#(QiH z>w`?a`11tciE!}5H!OeI6C>?%+|NShwT6$w@76c;Rsv{0FW8Aj|G3ISs*f%&S42iS zG+v$y*v@^SzMD3*fRWi{jq{rKmlY=x-V)b7rT6Csi%fF){I5nY{U4^s`VB4Qj+MK7 zcvDvv^Wr$p`RO-b;$gkNrjvFg9;CckUR(^U4EVXM?#ltJ?|kC_OnVClscrLbtfU#^2%ljG=F{#xo9Qdu1Wag zQTj{bh|B>v5iZoZcd6nT-^WtrDwKSAq93{RCnMw0_WrKUImgOOC|-V&%Atc=;_R-Y zcLZaC(1@Wvys|p87X>*57f{f;^88t5!LBbxCf(87w z3zJIyB~Oo}nhcYazAhO&k)T+Qdy?KWR_Jkim-%UaW)4k1b~?NGAf~W&S_l>T_o!2N zn)aE<9nUKrQCB@P;K4XKYJo}``ETM6spoPQ^&LVIma~?K_#zM{dQtC zEC69HvLh3u52jO6wj|OED5XW~l>12)dl_ZTMAGcjjORX@(ip;RB|wcw(h?TI>e10L z^>Kb3&9866CPx1(&bd`*DsKAKm-1wBc9y~J$2G}>+w}QAEVxrAWtg4#VGpGV@qA|? z_$EMe;!5NF9Ze!U-=Ca%{pVx%9X*fr%42FteC_w^ePa_8nYQ|NMPKfn_Px!GSC3&J z-u<0d^2N%z#7tw>hG=%?Ww!Kk>G?A@PZ^~bAec`|edW388_YB1M_ z1R0zG97PwVjxG|18KoA^2Ry^;hn+^2u-MKvgxe$B6JSrW*;fb zT4M&kzv6SATKQQxsiO*A;6EM`vN1ihNjYUpl#SyNern3zylu1|y&Kla!C(}x#YPIT zy`GF^7tr>3tbSx?iQVCN5=VSUS>Qb?I1)AR@Vqx9-M$${Z^~LF;&AiIDUIan@3Q3g zqOBsG+dfdX~_i2huga7E*kO1favs9?@ z9;&LRG_2C6XKx5ZYn;AtWap8O@r-#~#My@N;!&gDLvF6G9emk)a@?1EOX|o@=EL#X zr~lqw(a=A694lWcPyA*|n6yd&;(=az`PwSF(-%4`Uea}Ol{gzGIQ1C>X-4YDDiXWL z%ZzXJh&nSiXkr}gV7kV#eSO0xLbG(qufA;y==e;5;3za7v#UCWQ zX!cJG=S)o3OtKCt!dW^A-PhuY78s^oCS{v;sc0l`i4v7frI>sbdP23$lcPq@BBpLo zF@Rpdjs^`I#C7-(+%8D(qfz!)UD;Yvy5-<4_AY%Drj^UaeUv_5?j(JW2{-Xds>GZa z7q)w?2YXeC=iYv--ld;0ta$Q_I9nJ$$WRrF;PrW%w!S`8x8@mxY4~>PkPnCBqu5t1 z#;G$Uw4YO9%KOGdg%)cfcsWc|BpDK!ES4UlG~D?)v-&#+&m1JEy*1J?+5DX_@jl*! z>2Qg8dLsT=UFQ~mB8S8CiW{=fb(z`;fZXBUAsBQ2KRzV*7kKk-BHo6EkG|-@{|x@Y zj5-U$A`P*4V}e#&F-iUXRx`N1;Ig{*?*rNXH>Ta3;nZ*ahIo`85NV1>0>haSm=H#( z1$_*Xza|$gcP&2tz~ow`rr2X z@f!aTXLj_7CxRgz!Nt?eE5B(##>xr4o8@y*4nm#V3Sj;KB~w>3@(sugZMCaC=UTFE9FAUUn~&=&to@ar&INs;5` zf1Qm+!>m6OidL*EFDwJeR{#7zP9tuBxB^tHM^r6h9{=rkih7xaBn2rDtmSdL|NGL! zQ?WMqv=8_GjjlRZLBp=aDQ`P`KGgT6kdcPalieI#qj87Vxg=BM?rJ{VCf8C?0-%0e z2~JLk`adtqsQUXT#p?YlYrBKBwVe9z!#L8m0)t`-Z`e0+!G}=BEvF!~KX(3?=Hjb~ zH)Cz`kscvb|E?c5v9eJ)IH(@}|9w+Njqh`_TZiw>-#}c0xFd*4M$7*5n&31|P1m?6 zK&}%c2FNSF<$?>~viI*{9REW5-Q3hy^tp|R@fw#GTWM)jX*4-Q{>*JeMtj<~TKFn0 zzF(aI-(P&|%$VZ1`nYU=6JaKgD01 zO}sELhnTQ68jJm#3)!_bOhilm#>^MStvaWY)X$kX^ScNV>mzm9K=h`b*08W zs~?jY{F-!xXf@C0Zl%?`v}H9QjC~M(tIhc;6yvZgp)idHL5watWytc6{-M1sS`-JdTD- zr5E-@IK2I*sd6x``tn%))_^1bWQ^lT&g3LXxYWzQQb8`4U2De z(OAW*%2W6IaJ+OaROD}HW_JeN1A(KYUj3=Su7~Ns?{7f$=tj6Ufe{$Y*}xQx5&cgX zB)E}65Gxave7mAf0t5kE37HZMQrp}ndC`~?1Sk&Bs8s@k)AbU|faY~NF6XM&^`Ev~ zY`y;V9kqLGa4yvA8mLBGc&`f|-LqgRaW zcI=NNYoquuU)2@Ga*a@Yq-tNqs0=h>6VsScGhH6>S_&X*@{33>r$pi77z z#=(!kbOfXN&d4PVLMsJg~gg;o{?3t@{G!VVK)ccH z-i(W1`=~RoprkTBF+nc?!h79!DWFgmp6^Q_=Xqni0q~b(3Nb_4e2R6lr|>H%gt{Ww zYS9666@b1V0C;77wxjiiD9VEE5A&gWbBR6%OxBh?-!9ZVqtMI+Duba&qcTwbO7|5C z#p)HLe4|!F@&$4#E-{dD$@(pr(hzfVb=?xUw5nv{czZ0&{L9g3x${UPVSle$8a(NAw z^%USYAAqVnw^`7)y}jMGD?5J2t!0#=cm18cdf;a}gnk&qEb!++w?<-c!4Ymp5V0zJ zM@`=*BQXpB^fCZRL9B+WQCZMiIB{4ti-<$Ji+QdlZUG46x=2i4>=2#uGvT%JZLeJn z^u^bPbAHs((qpRO+JHp|GWuMQ@B}Et_b&R#LHE&{J5Y0HyD#uk%5|G$iYyF$$ z9D)B%15G+La9)2J@Mr@RQ(s2`GqC_NbbWLg6Ob)T4*;3;ud-!~FwY46QgX*UHaN(g zt_dAm^FA%qdArI2wR=RqrP(Isb|TMCYEj;2TzKXuK&XP0H!bl>GqE3lpP>`btV8En zfs5MkVLgwS!NYV!J40_xN5LRo`?M-}!3_sAhXzr#X8v`*wN!u%f&nlrw-( zhOQmjwihjL;f&B^u1#I;%3K-1{55Pgf0DLsvC(Vr$#1G{=*5dxc-lvL5C=p z=?P0i_jfn0@3Y@_WZ`|E43on2^_jBeZRlEnF+KOq_kzT>>IfM5=F8F?ESOQd>wAokOu~g@tl1%`|MqoeZt))`srI%gA`&wvASp@wQ!>J0O5(9 zd3AHW5%=!#qR?^<>-_Glkub*ZsSHLa)_`^y0zC%yLP1|!AcMf7TC|T6N`Dmu9DcO@ z+ayBHKH`wPH@i8k6}PBBLM(VDPp|fJb`koAF?)8&pUa-^+D8I822{-=fJ+iaWxt65 z2pw5hJLXC*?o%EM`&62=t~t1kG_?Woo9tc9`_bG-k%1=a2~(=B(gRyW7F<4V#tkFM zbE_)<1n@Z~?8gP4H1-%()M=<&l9`uYD%K>RzUY`2k zZhT66>F0N6=TJd|M6rUf#Fhvh^%fryo0Q2wMOxN_s}8POHS4JE_=>URAZT=U#?es) ziiv;Zf0!XYL_TD3}_A%?+D_k6r!=((b1zKac235>@gcb9(cG#ct{d+1=QP@6Q; zdl}Ya++C~mlN$O!vnJm9jGxqC$^GCFKj`*Wfv-=-5Y9=7_9eki#Jw0CsOS_X#ATZo^~kdU({r?DaIw_k$< zGF~ZQ6Dw=V?fLn6$ZdAzr{@4Sf+pXy)DIZ1F96x8do?vQ5SAEL*6@5YOc#TIPKMs> zSkfbTvy6`Ogc$=2-;ZqHv3lv)`oM1c9b&>w65*sbedDR z_$Auo`h8ztU*PVGW6eKR_+e5HnG$vUDQu}xv5PfYWThXfWpz4qWxpzto=rtxRW8Q4 zw6v)2Ir9!cJ3RaT{riEBWw`*C{i&C~bWx)Xo;m<7Os@N-L_|_mLItHC?vRqojl-x? z!c7Lz;wy7W1G80%dj{3R4rDUtc`&)4O3N;t+TO@*c=zN>wWuxWdxW{8%_9)=VpMU!TXuyc7GliCqN*&u=y-DfjCmt~;J{;;(Tn&pv zreseY@}py9oWlC$PHwJuLf278ZSi#5#4H?xvbm*3bTR?R>8G$;eReXi(zfvaluqH) zfcAN&bzzJiJT{wg(U*|1duim}?6WGzwtb9hc9mpd05p*hl04pzo(VI#Y9x1Pcra;= zP`R!I(`m>bd}BV(w7VxmI-qju?pBpm^4&rc#N8ovBK;AkC+gU>!%hELM%5QbS}~QQ zt8%!LWum(FBOUY6pG;>H45WB3(Y6L&=B%}=M7)dLjh{7+6In)*7H2^WN!>swQ1f$k z+M@EMVa1rO92TW2@3>q&Zo08effGSV}T3h$hjbBQ$5VVrWNm*QNlQ53aq=z7F>bf!Z4+33tv@MdGISdMyqj3I zh^%v5wf&4jYUkMToL5^X7+2m_iTF5ooI${@3PFSzHfp zB=Qfb9QY)c*5_>f$%0nrxVx*(<={*55*#U{`pKS zm4%9B>%?vOQjK#YtmB)*l}A+HjF=8Ql)O*Oskmduk}s^GC{9Gn zwU`#V^L9+Q2zDEX&8}?N1Aru~!VDavrlfCu7~V!pQ%6%8tTu>eo)=p!5VvFH-M6`w zjA&HyJ$w^NymTHi8&=oU9HZ=XAm@)zWF*_W5$XGWXcL245<6$C4ZlMH{?!WibI~CVKimLs6JeKA1+k9Y}G!-XyX-nC-&m2BK^8m;aZny_CRhxF}t%VVnD4O6Osv=SKJMM+jXhFMS&i z^L~VFT^`y-s~W-*7pj)?_qHoCQuuw}h5x^A8gV6VYdRB3?pxPxN>UST2qE_BZR_bi z_0L7u&nwvU`&?@~ZTl`cE<1B}!2fkVy;PLyRJu@LwMlN*)Va%JaxFp=_`c+}W9e&w zMDwOOipg43S3l)s4BniokF=O_w#l+#Fzm86?pNLsy(3V)y^*R>I&Gxq!+k2XocNGq zG+2Hr+iHQ|Axat^4of4iPt~aIgQ|Py#`kuM$kLq&s$;c2{}xlx55&3+@DC>NYmmf*uIZLK}4O)O!_@AlZI8kTrl1q_M&?zy=31Y1uA<2Czn z%>!;Ol*KnM)r}&F9sWgtMet+Aa!i@{oZ=HCcJULZ0b7Be7NLLsJ8Cib*$pWq{>!;C zyP8D0O^hPO@hU?M@!$WyJ|5QBN&T`MUW3fOeIGiti52Y8fm^#_<3`c3!8Mey`njnd zjJzD05D_yxd+MK90AgjF6X>r_d7=0wM1%NPi_keb4e^^dZ^DI~b7g(`=xo^)T{<{z zTUA1`Y*sDRpU;m73u9mB@9j-8>RkQ%j=V7qE$w14`J33kwh+%~Mu(F_K;_$FSDTn% zZL?%?CuirAG4k5wSO3s3a{embr1sJ4>fgovA9vfs2t6FEVw*Qte7bNnWN?Dwy-d%< z6dV+^j*)TJRp8~LLx&Ct1y*?9Jil%0R^L^*A}WE8e-#q~K=NkJHV1y@|9-T@*^m^q z-_+OZqZ33~Ss7u=UYF4e@Ru%seH0#^k3KSj9Z66SZ8=g%Ok+C4Fu{}rx*k72KX`mx zAPT&6>5}fgJ7}04e6zmrH4~3KF-0f*?3TQ==g%*pR~2EMqNZj@q&@l%iJ_3UZr#F{ zv}EYZsDz}ZQ>@zHIBK3cm2@ITPluMKVd4o%QLPYD0?~j!=2AR5I(qjmS)d9X_8(knF7|q$L&i5KQ#q0a!2Xawmso`IBzXZ`w5@{!Y+ zbW1PbpQeU7fW zv;<|VxAhX`+`PPf7$N&r%6DB>hO`BrTLapZ^&mCM*K{>4P z;ztn%)uEA2v_2=d+FTNn@$#i&bJM0<+qQ2{0(%qX23oUwYzrpRdG_d3GewC6RPKV5 zA-XM}eW%}d899nVblxyBFgO)p7TXBq3Ex{B;h}zAd(t~)VQKLzL8SrK0$CA}x??gB zL?}x2DT3V^+0A97g-Uu=CCn{S1=|VzM5^h8` zB4q&q0fc5hUs$Z(ooq^byrVtkR9kCn#18#UWb((MJZfs{bGf=a0x|461w>3W>fVQF!?J^02aS`%;C95XbGC7Xg|US`fkT?%rhO}Cz#dorDx zQ$vMNnF(`~?J1$%w&MBCnCa$A#;S=D2ISfZ12SH|e2J_AWZmmES`pD~l=6&oJF?)GjMdjwLTcRQ&nk|PHjF2KYi`(_Ws~kB5p9Mj! z?TO52Z^xWnU*9#eqQQ|RJ$BHSD0fiNGPRGnpodIk&qn+HvOh!z;K`F03y6FpO6-154^z{}GtIshp5^!VT`qWU0!oq0DRf>weqV;xxv$I@ z@l7~=3^sq>{)Ctgh2OWSM~m|Kd?Kx0w%76!=n;tK!w(r%^*_0CyL;mfQVAToa^=dw zgFd-L=kIvIX(IR^uk-}}4CMxTjt$M+kvX-wa^?3PH|5(JDOAH?DX6ThWag0%dr16X zMz6d;6@(L`s9*^`oG=_8zlr-xFHqpnZ@9jhbtz$*rU4>ALqkJUMT@*fTN96A-(Y!R zb}ru@+GXs4((uR2iGAHK(!a`J0h=g!Hl0lwAI{~buo=yM?eEX`M6w2zqzec2O}&d)-WRw z5*i8`hXv^3Jgc`9I}G>9B|k={N#@s&kA*Z$+{yNun|-^=y~>LfGqv!ZWJ){k9ui#k z0Sj|ed+mE=^G~A6-Tpc*E)Jx81K^yq>MtwJwY++@jQkk$Mq@|#Fi#t7lNTquKE3#G zukw?u$B$9W4sok&X1bcHN!tKY570XFc2A+p7q9Ly`K+ecZEAeMP#cOGs)IdB|!za2=d2ig#%Q>t~0P|q>JOD zTH|~#I&1}fkE*H7Dqz5`=B$;nvVX24n5`){Ftj{8EG&5kv@xz24o_>@9kU`)2Ycgg zL2+{{IFaQ1#V8Dp9S4Uy7IOOIM&ARPU+MJT;i2VhE}$rGe=1$gP0m(uSLU8o~5JABF7 z+IsvgDs1oa4NAjxVKTtL2uq@`67u=;=joZ5jwj;_X{h#hbbCRIP;OLJRpB6xz$;W% zUIOjKLsFX$hQtjipG&TFL{`C2r>D^LZpo1ynn_wKFd<<0DzK;oF-q`z^4F6P9@ zLc!@yBi#(0!y1!ri>M=r`aXwgg?E&6)r2@WkuUSFjG&0d>ZHiUj8WURZG#8rZJ1S# zuJcoxnlO8C-{QUq)9y(7wyN#6CBOMgG3JP%)!(*5^Ncf(*WBc?96)m3fN<+ON-zHe zXYe^o%bKbxqKz1(-(8%y$KT>TkiISca&{T+#|Kmr;2||NHSt2wh#{HMc6!3iw0ry( zn#5-9#%wQM)_+}Hjk{b=k-y~{ymYRm9*v+{ELw!&j5BF%Qsyft}wKo;L z#?Z$lFNP>w2s&(~ACfD~CBxqz^tALS+cD9R_7j{5rRiV=bu)!b%0Z}SC4&Xz0%0UYSKq}p}@_) z7y3%$+MiJ9W-DouIh$l+e_j-HIHt9W=D3#9x~L8^(y9j#O>Ck-hm?Hy;@)oh?716N zs{dOnt*;iA(hrYK#g$39>pu?MW&D`a^kup~g!8vbhF*R&wKQPj)EM z?2q_-=U)#$iH9TclE~$H(lysR_o9njn7QU^?rqFFH7B6!f6tJ>g1?5iW6bga|E`0PRo1#`xma>l14TN#;(oUbG`wpIn=LLJY zgHd8&5YWrB`czaxuilMEG5+gOV85|#i6i2R{_{5F^AAFX< zn2rcH7^+xXS0wKV$^f;swJItq7Or=OHpzYKJ`?~AijnD zuY4^X)?}&f+(UZFC?YH@=edw4R*#a;xN@PQ>ji)T5GCEXaU(l>ClN@qQ32lazfKqM_g>wG@!(hob1A(Z$c5Xx@c*oLn}!LH@B1-HD*D9|p%#7elU zQ)!%}xYtPbl79DqHW<|zJEPMYGrD3C#5igxsZ(@spF0kK1hV^dI5%QTgaL?}KLD!1 z_{ba^j^MMu)*4RqJ z^z@=?Xn3x*jKC*gHYmb}RjXDZq~gQG98|K7O}XO=62vSxImCqwYuBQf)r}cZdtJu| z-%a87p@%X~B{cyefQv9R)|Lboyc87R;Qkknr#&ModB-A%14S$YM4Vk`<_B>8yh~8o zXc>TG$~arpS|kM2P?1Mz8JGv*wu({a{Z+i4Sth%G!Y{F=|_DXlYC4p6O-aIG>RpL))S7tHV`JP_bAx zB`@EG_E|v61&XU5+fZE%B$Ou%XV_MisUl1{uBfPZ{CKlK6-`3= zw4{{O%=9!ExbNP*yYpNFdnel((s>r7gAXK#b0T=$cXxBE#&(Puqs6G6LY)t;BF$|Cx*z!(pye;JfLdrU*%YjyxTYuz7xa8BuJI*u~j48MPS0VdgBpewTX+}jIf52arOsE*btfZ%> z6Hvsj{RgC_rT6XggxnI;A24VT6wobvoh(A+hBO=t8yhVR4Fa2Vh$Cd2;CjPB1Gd$L zxDE#C`m2vRgHgN8ut-*R_O5hYspgx9WC-3yh_D}-m?Qz`#?;J=nOim+Lf_ll3)j== z`GtdwFCq8@aSGUd3e0OafYSWt##s+f-BS-TAvtinmQbe#03!(^3vvDHCOmV~P)OL(3Bc3e zZ}}vWgCcMUdwMG{FnWqj!cZ$R9DCg{+W>QKpA}#EDOo!$f^3Q%%-nY}Rw3oY@(Iui zr=H{{{bnMFqTAQtawDY{xmEbU0WTzX!oQOV+z0mZtp38!uUShw!MOS6%~8wCC2mtV zZC~>Ee#T65UF4`<5&Ukp*5FYEf#6n^oSvyBZX%ZqhmTGGBKqj=-H(%EDy@iEdttCv z5|$rM*ym%u!_)$>&TX^5E$+)YK7K4j+=v5SWwqu`1uz0$*lNlRguc`LNh2_A#Q5;D z`h;DW9j}AtOt~nYe@1NlL{E?oK8W%f`kZ_iSoIpx9h0#3^knboNV#UIZMA)C0()u_0YJ+Y%;x z3IuT9ffqWPkLu*!vuKn{mLq7G!HN0^vI2ar?4@sU6IG|@@q%f}=}rO^uD(Ub1eJQ9TCQ0|NtDi9r|_l*)13AY(iQ=bMs} zaymx4Bo(nx^K0OYIM&gmb)?2F!xL_zot@;~umSOKDA0*#kL^N=yyTN+WktmogrG>U z!m%BJvLLA4kYPb}sAG|Jm7*F^tZL_m%LQk2e!^(^!TtMk@RCOu8pf4MT^dgvKORJW z{QSA>fddC5B{dm+Awf?1WuwXlpGU_zpQK1#56^#iO>YFDX6BHs1^lJpksnWp07ZNkfEza9H}YO_Y?CUlRZsHH`YZ4}J9os_h7` z`&JYg6t>fPkKcr!m8_wusY&p)v5M+|+SC)*xYNl-_4H|jGiOfdq~*7}-KyT~3-C(m z?~^+QV7z9pCaE`H8guV|t0`9!u6?JtD?d8Rf5d;&iSheWZY8ea%~xHe=g%8)~#+(3-n^k7d~x_x4kEMoff4Wb)2@7a^z zJ_mJXNVlGiEotc#;{jAqMDm@X$d~>s!UA2Wv{*w;opS3~eX(oO`!DGu{wOMTuB3p* z4fNY*_I}Mdb$%C2p*EGt{H^a_fbBeqt7Y>Friurw$neuq5)mSD?;py&yb|A$NZNOZ z)ALcrCS`sBc)F9w6S`?dSbVQ}5t@ehg-Diau05uv26$D8{s8v0UEhirR(AdvREjTI zS67#K$q|)U(6tfJM`AdFyNCwgXM$uFnc|*!0*TjCc#`fdZ0@vzFPWk?Y~OcfMor+* z(W7sWrP=0-^uNY-nk2P{!`<_Le)dZU3%?z62`@eCjIBh4vK)O2UW-#Qg-YjRC^sO2 zsu`k%m{mK9tn;O3&wD`5nRH;GN6xO)t6htMh*$TvliJEBD z`WnGvG6&-C;QcPV*fmMXdEfK@zt8`9p7WelSz%IJ4UYLh7xTQ2TzSnUchmdqD0pklwP5?ftQGe2H`oAk{|cKh6G+ds*!&|?tE~|tqOui zZNnTf3|fQ|n6oLtk=GOJYmn3{9nXU4nR0j3+Qar6(K6Fm7pIQ{D|&l-h2llf^YgM9 zD%D14bgNgeD;Nh0c{DjWo$xg;`THB`8(ZySB8b2E$zr~Z$q`s5ys3goBa{YB;L1AQ z+4#KDMFJY=^?!oip~QaUKm%$`#nt`CjyYXt2WT%#xV*eCo9^?Ht|`JrX=$*tpX+o# zR8{>0cq6ep{o}^+Oh`Fa5DF`0Eo|o;_KFrwKtR zF>wprJ7eIAWy>f^9G*wEeNYIe9k{k;r>Vs|4o0)SKsa*GipTOGj6;of6R^2nJH~V;OFMlA2=`})M+Ky@L>1^ z@uDBsXuHNQU3*xJll?~Zg*dO3$m3Jd4_HlU(hy*`qi0Thyfx{x?$b-)Xx}7vh?$Gm zlJ+ z!xT^>Pgg3dKPobBH1ki z(|y>DnwX+MiKCTEteohd8U{JvYHycoxJ>A>wD1sPyfAaZ9(R~Xo>MF+T!kFeQgDaC zby@}lh|j^k@fO|JFnZN_QZgsX3Pq>Eq5~9 zaZF@7+Mvm;9sZdHLG;^c+!V&1XlA^U-z`ta+-)k};Ez$O)gg8&awF2HOQPfI=l=bD zb@k>;U-pT@1wQL^K592M(IkhsK;#BCY_;8#-TOtjO^)wsj?zHy$X!px zidr`D9F}@Dc7v`9$^(kc?tDGf@O zBHi#E%g_6szu^1Bxz2Ug-q+r!thJu!zUMvX7-Nq4_^K+)l95u85)l!RU6GSfCnDPY zfrx0AC&^CyjrbwMbo}3*TMDu=MB9Y_ye&x%BqCxUx*~H?^FicvpQGfFs%?oa;TH!F ztG;46Mt(_iH?d{bTb-R0S#c~`mCvZIA2@d|8lepBEB26aJzVJ&Spu&-rin3 zW-+tPIaGQCzv5zeD`+_wU~iA3n@$Xx@`& z)fg={Vs+*SX=9}D>6!Md+f_fR?EkhVs|*bdbukZBy&Ri;AkZ1??@zWq@y(aABmKH| zYGr#4!o_y1AxlBT@lS7}LTIJ=q3VU03z_c|>U;&wT9}p^pMLzf=ua&;{F{fBb*!(* zF(oDCR+f%}LhZM2-`d+hHbfw9{+dZ2Vr&b0_wLW|2Pc^c#9w9I0+HaTW4}|De0%azHA&Etv`N*tWM^bG*W#MlXu?Ua=UnO$GoP#eu+l1vVSKX z5re0url#xWV#iE>iN&-x_QsWz@NRNauf`aOP(kyB?}4mjy>!f*OFh)I zsVVmpk&QORNE)5HT?^ z6%|!|xB%bz^BEnPDQRh(7cLZKXSekB>S=3h8w6(OJ|c7RgUcS6mwqqF?yS8E0-u3Sm^R=Pejx+tV6cne9keWG7{YWn2R4Furp~)9Cd4+}sP= z3l7VF`b-+5&$%#oo}i*y`qSsq`QauV9i70_fVlYhP)^;iT<6Z6yV)-wd-dv%4nvQ6 zu9M=fD=mo%!tLzr>@TqGYYP({nTD+t*y(e(E9)WzGmUCPe0_awN9%5O93my<6%Yt^ z`i5P>Y3nO?n*UYq!_3UASdf?J@RCk!&w&#^hlb)AGU&uzKgluOigur^IIa-F86d~R zsuC?~KiM`v))-czd;Pix{vpS>UR^u0{bhn2lZe~eLW)MRL5Z`LuI~3BkEJdXtmyp0 z0?oNwo^=n?Yv$Sc`P&8tV)SofG4t~BRAR*Y@~nDFT$bNBnp;~-+#me5kCKH)?GLu~ z5S{3WW5+H>d>fm;{?S~(wCU|k>H43XM)APAb(8I><>lpJ$@LL}5>9hWj7&m8E1w_j znx6QgtgIY=*?(?!Hf46~JfbV#dVp7@$Zle8EXJdyDp@%yF4hv>!YGI$>Ry&)kX5$02Lf2a~W(#b5b@%KqlkxM<*AtV(;PeQzxmX=0E=_@K8 zaHBeURN!u}kOOgm+!0#ZdePtgB}Ib|Upeq)D-7GSVmm)rgoK823{0;t&)9N(Oc@-! zWqf4d&AHpApO`6pg_PD-W^V^uiMuRKKRe3Nd3Yz|@aFn*PrkK;`^L)J;*`&UlczGB zD17f=p^6-SQ;_U#$s8RUGsMr`A1$uuS*|X27`iO~(XS}lG+bI*x^(Fhj=$m+b@i4A zL2FAZt3(bTFR%Ok*APp>_6B9{n|+Q0%uGxl_7m^Cc;m(mIl1aTeMPIT;wG$-FTHTb z{vRzml9H1Z$~1AH5o~mHrEcp>m;8=>r*?RQvwe`n*2adEloWe#p+Q$0zeGuR*{;rw zJbd_&DpSB_q9qYO1qB_M2t^+MGf?KSy|pQ^yH`ctHnm2D>5)=5ZmzAY zEKIgrw7=JyCPl8m0SxV$qNbs#6OZ)v_V)8rAPXl{jR7ytc-6AbFrEZT|H{hBZ0jWj zAIg}7>S{Seh11Q(s+aU`Zf?RHcll~+Ysc!s=BwyEs*8DzUGUvOY#PJ%f4-NG&C5PN z@rCUG8CkHdFem5p&9)wBTZig1P2RPb@PYqh|a}PuZy~nUsHq2 zLaeTCt4nE0sf)HXCA8~yR6WHrA> zGI9EDckY#bYQkD`mu(Er%-|o;l5l0Nbb0MZ zshbO44p;8pc6PO~G`UroPek4-lhXzb~U&^X1%aKu+; z`lhGnDOFjG)R~FLM`j zON)(F8`^Ab5Tkq9k)pwBVloyN7l%+$)>glCsR9@If=2i&7c%Q8@}ZE6MRQyQ@)IpB z?fm?FjF^kVSOcv?F55A`P%eFE{EQcKL`R~+an$uCp+bC{+r~;jVD&k6_V@4JJ=LEZ z2{p`)!3}5?deqg_yw}b&a21z0b?WiuVtR2`)!yjo>FF4ctuT#uDJc`9qoc#a35ki9 z2J8V!ioP~PUFhrUJ34Ud#vY36*RMNHcdBV?3vzM&8L178G)M75QhP@IJFMn)-*|V#?*7#H_y>P=Vdi)eVz{4XeKY&$3YU36XLEy zZtMYa?%SKo`b7>|Q=UFPRTUNX)13iqznGF4J%xmYfA8v?@!229rLpuD6Ri~|7*dU^8x}!Dy8gPT;k3PXH4?>jO$irtLVd~ z!+j3YuKms*=+yqrODp=|6`yz>>hA@I>3cRdaVn^xk*{C#;=r%0JaCA>mzB7!J5*c{ zd4wR37wX}+(P^9u<4?#dY} z+uo`TLQ+ahN@}4NJJ293`rz+R_5lGRqR+{Dr7y?!XI`0?Y;W(LLtF&iRQ(a_)T4kR~CO5y9d>BAO?fSMhu>N2|x7`r?(U~OVj zm4Pf^Jt`?Ql;nVNa<0S4&IFJ4^gn z;D{X6Z}GA(-&7%I1!ZvCzWV)e$F4%ViLYF~etsG(8YJa4HP0yT_mz3XL^TOqxDX*W z7$B#wXq$ALLQ2R&K{b#?>2?0s-HU6B7Rt3a+K3HK{nqMg)4^}P(-c`cG$&7{+!*`u z;|K5Y6XRVutjV4egBf8K9T~qnvz`PVHW_b`4LhBPLeTVqzsBXRl`~ zJoop<&NX&5b$5qrsE_oP0UTY|(YZ&u>bg}I#wYAG-EK(L0xlu!cgkkxR}|jP+P31vyN^Bh*jOjvygG-zjpNSi*Fz^cs3i9z;jE4wNSX*0%o!*7q;IcSb z!R71kZ^TvKMSr~FWO>R@W?z}F(FalvD6_^>b=yd1%H|*gGipVLRJI)=8g_}epB)y zrc$a?znAj*AB|CrpK2Nf@N)hMh3=o00 zB#x4LDISwq>VD`+E-hVdTp!L>Krba{?{oUaiF1!BSwCFR5waZ?;?N@Tl4|&Mq}Zq; zwf%m-0Aqsv)Q>rK?PdMih+{fWhU{W#4bU2GQ;X)E zADA?M5n0R~gh2i}k(QPwB7BSN-erGMFDVw1AUUSUi5D%Y1SRJk$!<^8nH5)Ymkmb$ zT@|;^6-_+sK)*EpPHPsQIEZ9@z#>|+NXQ5AW@G=fjd!*^h;fx0LPAT=~bWf z==o-5VUcgzEY+VHX{)nFZOOB1&jB8O{yU*OV}F6Zx?(?piYy4-#1$TeyhHVPVQyh| zc6K`9G<&=ByBiy^3##hIS5KHYzZncZARK&@UXxCFufpZamw~$(hf#H=Ig=b593lYWc&7+y~%5j zmN}*NfrV+TH`S=Wt-GnI>8Iikqhm(Do*!TQ`}dt&J`a+a2XrMA{f7*^8@t4 zNj4z=DxJ}tJKxyUUJ+?9kl(v}L*BaoMq7J3;3Fj+o%?Wg0K4s2P;l^B-Ry+Jvf5V_ zoSX_4R1Nlw?Kl6H`A|;DtG=-@SujE9c65N@5!AnvgzEyunWp{=A{HBJ6!heYw7+#@ z?bJ^5w5-Q9a>~jf%M|*lQL*vyw{P5#q_=IkbnNKSbFKS>g=K>EwOZ`#?7YdSE4czr zlFO@NI4fw8fYehqBYIT zQWk3bl|qWGW3#hgQ*J~=LFnU0{)PCx!ySuncaiN{EKK3^FF=1~rGPqnG zExvnq#^F%x+24_g!<@FWs& z9uwgYuNuOc`i**1c7NzHxXx>4g@n_IpFVx^wzjITUO(0lDO`S%r}tC*7bj7=Q0^d_C~+v$AqM$ zXmPh|g|4+BXCwF7V9AW=mM2<$GziRRy1@0hLMT^>)4aES3s7LVfA3UJKDWz#QD2#C z^LF;7vCqCIPDb)bGEpEeOBZ%ev?d?TTF$qy8fV=4&+{~B zb|xewNc$YjQW%aZ$EL9F+ySu&wP|b9h2`D5t7E|n_ln-WeG3N0r-E>Y@K%7O>lV10 zH#j(0_-r50`1d~pscC6?d6r!SNz5McTjft(C2BQLD#m)>$lbjZQb+O_(37pZyL)80 z8{$U5f;Fabd12vB=m+hkq4`zNNnXLA(rR)0$)K__iS=E*;3+tlM+F~N4Jn25`)UYT z{NQZxe;CSbsQiZKQLCW9t#41M>LSxh0PC`1SeTe1FE}a}UNbUER6TPiRPN0J|!ik zL_Q~W6()+!g;o`yx$*uI7d16C2z>-%+W>AabolGW>O25m9hdLRm-Odu$slrRXlUku z`o-PYOOCjtUQHi9>z8~0Xa*Wbt!oP4-}ILB`MrDhva+%&-zKO%z^})TACFaCLHcJ7 zy&TDFR0IChQE;=|J4(zY zL_gbgbq<2UGH^S1h$vkq4j~K6D3I;Q$jG$$Gwt`L<~Fvr*vpPsX&WLpYAz(^1)a2FF( zTb{3a!Ud*|G+l^7R8n#PclI3$H~u~l?N-CvShzQnAlTZ;8V;1Yfxo-|{Jg{A=KcG# zka4X0i`i@?AnjoXG(Jp92V>Q`^Q<`de4h^XJ_mMLTv{5f3#t45y})_V{3F$kJ9lz% zSD=$0T#jElr6xmoc^0RGRw-ArF9XHm4iRO!$g8wO?px2Xvo1Tsn_8;&8twcuC1*ji zN|KUTSogB|l$2~jze$~zr4_n&Bbe--qoX18jMpiqPNLCv+UC;8ywEd_vlb-Yf~X1b zY#y{DL!c?{k{`Q@l#9zc6c%qYm0+l;dU|>ZwIGh^X=zlYVuS!E#SRJanow#9GT@B% z6so0bQ|!plpSs=o>(l)qU=!vUEy$$MFmdE{M^jzJx0eSza4}># z;<2I`85tm<_KuF3TG#h60_yG9wdbC9n|uV%&95_M+gyCv%$}y^=36)j$Z=XpWQJ~w z?O@puo{nngWM_95*p3ZW_yu>FY?}2IE+VxFw{nk|Vc&1ucpDLM-7Ww9!E`Ln#k@BN zSI8d%DJxe;g`fYqh#Ps#7_aJs*b%xyYh`KKsX~B?DR0x$>raMEOitE>`7-s%npj(V zKs$gO+gs{(fsyeMR~1xUgu5XgtXSg4R0p>sRd0KCS$EtM1(Uc6N76$Qk7g6(O-KPj$>x2b})$ z<;#^TSL`~YV`F2Biq>(u5Cg|4DdX$hNf-f=3z6e+2Bf8=pt!yX3%jyhIW&7M&k}bl zV%o%@qM||^6P=pM;nMrIn0W{Awor^p@UQ$_V0Of~J=Osj%x&fGP4GJd1G;(km`3ZK zy!0ne$^q4J+X+2-BaU}0E$dPk_{1G?f!5Uqn_hjI4H-fcDv9_OeC-NSsYyem)9fJe zrsm?}A_@>eige#x``#-bM%joi%BESZ)G^md@MLURvo0)=$ z=%M_tcC8;W4=Z2C#AG6bGBXD{$pU^uSAoubJJi$D^Mmxr5bbFi^N{cpp*b#!d2G#xR6jCd$rFIt*HC~_TqOBU6w`jWG@iZ4&5!9lhqxJ-1`Qw>oxV*f4r^-140Jeux zk|ac0Ks$_#jMJ~#xsy;#ge{coAnJ{h*Z=%^V@U&WLL_W^-{+99uE z?|NDZz0V^l@80P^7H~<5LG%<~x%E6UG7|adgTgaEKSbmAldJ_ukGPL)1@D8j*QQu@ zZM+00@Y;VIDVLWS{65pIQItT@ckEy!swO{t`2KM9VPBcKg$a!Y(z)A}&(*Xu2a|8N zy;B3cxy3Dop2OtO5T8*^5bB|yOdN7^q^Q#z$nSJIxUWgw8#SMqotj-J8V1D=X7TqZ zc=sy(ptJH{O~v^Qr`qjF#2|h1CZh=tYhrvnA9PxFLFNK z(>Uh!OhOznB%t(9XbTw99|mXZHs0CIJ~T^ENWim z-P-M^PoDx#Y0(J9tJ~0uMj~r7Wum^Y^)}N7_1o8^1PgG=NcfNJzFdZajR9`eH z0s{hYaBkkc3$*5l7cFfRRc^De=7DS{n|%$jX;;2^~I@<7B5k{Mv%g9-(*W8>q?K`R8f5--5~c2HxRL)dn-mz0&1z|sWIoil4qs{e4aT*Pi%HD{@9 zbU*OoSuU;+E^Q5soZQ^D*49+rK=CVB4ID{Na`dbl#n;m+BYL{Kw2tCx=+WPwX3wGl_fBm|7>z4Y+-AkvMv21|pgF{36NlDXy zb}cO*?xZ%gA%zbcVcaVKMdkHARC0DAP<=PVz_27cX8Q zN{^FzJ##F@;W7@yZgxy=@&`TIwfEZf>odIt8uvefS3wFwZ_v3p?h;um4_YGlAh4SA zb-#$-UP0E~7y~{XN%!3-)XvAkr#Qxon(URu3_@P)>8Xn&LPAwkIhWNK# zfR7Ws1vv|OuHqgwL2M9!)BlXA4nXUQN->grFxkd-tsjd4eG>YtKALT)yM)dcj*4CR{3IYfc)Kwv%B|c$2O@|n=_VX5npc7I zvEpz1PIUVZ{r=roU~4iOA{x_(E~#g+m|l^ClA&Qtf%_yHkNNre$;ru4QM5VN_wV-` zYmCuOy{Waw^8l6uLc~(uv!T6}Z!bO(ci+${KlFzZ`HqX_1E@b>>oRBy$;-e0A*=S^@+wKLpbUYXpmkAHRAh4J&b{;B z>+8|Ejr;h~9+Zt<%$do$5eG5Jg^uS2(eH4OZ#S!cwenX7Ni@{e$EgXBM&l_;DODwc zKJ0_l=Z8C>nn!9w?S+V?K+^o`^g%~1TM$QpZ2x}Hf&r8uQ({mmr!0Tc z?yTE;H+4`vQA_J4I!Yi)Af(NRp@vR8%|Po2L?l-V(en7olP-IC1qI-Qu>B)|%^U+C zuDQqZGw}2A4MoZU*^D(rQS%ue=)0<|ou8s#Bv^cTABlz2VDrO!y`Sz|zgJgN`_j)N zEZo)B7WAj9w$^WcS1?+EIM`NJRs_7MVD7)nUE2~OG3R9 z?ns`Y@Kyi!;^pI`{ujpKLC?QtTV&}b$0Yld)t^mGyDTejf3CTk&|ukdv&VXNMhA;RXXeHrlBP9P6dUA9y-bE z>3+ARl|F>qutD!*XlQ6{ue7rAi@-q2^kYYkB;4sSU-fEv*hCOOx8O~Z&5t^F+xxYW z`2+eId8w8`Yh$BYobvb4SKw1pWAWci$~{cQ_>GD!sNKwApQg5ocWOnLIkGA|3b_ZY3!= zjjq74aOWz|`SVHJXHAvNP&}|goSlD7bAp1qz|9a$(%auUT3 zJtPuFd@XYEbm-L#z17(vSt&V5$>+UfSCzif8kIt>*{H zt}nUm*{02LaHmOCLl!Y=@I6JKqS25%4Cv{FZ9F#-fE2Xi9Wa(qvMN_A^xd?ybe(8n z?w-nqMCSahJ9XsvpucE31Qt(-?*G?0UJj`P#^(TSVf)b z)z+Qm@uWi(Ma01x?rq z&_DS5cm2?;sHi9jBi1G$?6G3B#MVlAN5?Y2wvmw$4gxF`jyQkldI>=&d-aO^+8E@t z)3Pseb8@Btv!Oeo8Ly?P`nmr*1RyvUJfMtBY=#B}K{vz;skz2d65?HE<_w$zQZaXX zKY=za!@D${e4I<~#w7Q(-0F@FK@gNrpE?I{&|}1*hvwzvP-E9|Dfpmxo!TIzS+j+aa^)2!*qHrns@ z!D-&OLI70vO6E-1z!@pI%a`}KnVXm_BWJVsm*Zk5M9bkINWE)4u5t4imd$+2- zev|?6Gnu$2dk_7%893=F_iF1`cFxa52j8b|wTkM|&Lic_W6z#nw|DsjGTv-DfQv$- zjnsT{YDy)H*Nc1(x(Qn0d?OxPtE`*GNGr)glqrdc%w$6lOwa_Kj9c|=`?G&!ewF`7 z$`3D@@)f~#{bfIoXpe36I{5@$E{Z??FUQ?~y>zT_^6$)pdkfkI{_AgiY=oR-H#iUh z1mxt*qh@bzY$RkpHTM{7@5I+ClQg%r>6N*c42Fa5-M6=A_SA!149Ou^m5BmqiCpSV z(oh_z%_s`3aoq_g;Seffs7Vwck|c~c_6H6e2+~Hs+-Pq2JG?@HtL$WfP-xbcek+iy zLI^N*`Y5sw-SQKV?db9Q8!KqCj|>k(`ty~cpr*zS_i|`wSi;B#wL+2G2u%!C)g}mq zOlgL&84QC9Pni0UqkJ94N6^qjhO(|#6~f9VBqRhQjrbB^SLEwt2%L@CEz?0z3?-w!KVrBgBrdAScg`B zzj*!}t~MD}RaIkSma}Z^?4|ar8qzhv=ckAgH6GqZ@{1p;ZHNqAM+g zR*J99_oN-+pO&2x17C=<9j_@Zpo~%z+8oXi5!G{YT1CktVZ_@O@-=sWzW^Szw6x$B zc)W1p!3h{VH*hgpEcT`VXb`scF~UL+pWi-3TJl|vBr7*J?N1)`xT8wCUk(IXh|J9> zQygQdcD-`y$Z#JW2iH2oe0%s!mM2!7A7X22cI?=Z`0oW$W=x7>q(E~2-n}>cX6nH% z1UG}3dKKFBZ67MKL1_}VwTzO&EoF$08pYqGWq%*!HZ|{dW$ROq>^J{ql@GIJ)+>X!fm45VXxjBJ((gW#O39ebV~GTpb230SkyBd92)NP zFsA(ddr#_VXz1~h-O%9@I(85i?5-s_Ir*!gpoOW-GVu6Pl+4YwMgD5t>^t9KA8=m& z;|8{gXaWf9>*@+4r#N|X6{qIv6!~1PY4adDjyPxWDuR}s_YnRB2UEW}Y;Q9IWw0L2 z0G(R*ewsymB0M6%5Y>`s8&BQAzJ+7>3Z|~`idxeHIwvbLu-UHi+qn$Q%Urpp)6c7-AtkpF{G*QBXcD<3h z5QWs6Hd^}&&d>TuL1w8%AKbIg*V5KbesUl_E-t(+J@HxHg`;6NN!g!r%*o%%Z~Jw4 zqOcT_%R)@lE#MIl0lexaJ?`JXZx=K=-W)&TFJ{cg%Nuw5Il7EfAF4i88jiz$WNNK~ zNSSXQg5tuPBgZ)>}eNf6#Zc*$Lj zRVk*reRqVfOyOBUK|%Ayis=~c?!>TwfM$F)a&PiA?HqrS{jJi0P56s2K9iOmU4&MF z{S@@Ft5^bYtTy7JyQha^>q439D(~jlm)%UBmFWlv%bF_l2ikX07~?1S;Miq$$+!xF-fc(q`H{sI2*xT~hJAV9aPSCZnYX ze~*HqVjXNcBl?x_Qx_H$#YlK;L0XRNxt8nlY{_K zEhWirU;x_lmO8=ow36{cv;4p9^PV5gN+iCNcvaVAqC$H!ErKH_-&Z+=_WC5pyU)GN zCYi!&XYELkxu3k|2qs_yu(-4|#X`PVW2m|~Qj*r4)}0@|z$dxqLaaVnMMVWP0y}T@ z&6JIm;^|FcBlD1C?Y=L}PX}Zl$Q$)^nD#3bEuN{c9}oSy;jMj~FB1(G`Wq#-MUlOo9aBPB>8{(@%n{nP znmllTW&h+gNqc?VA00M`6Uat4wp};ZrZNHM!otG#?b`=!5zPjI_T=bD&wGa?aQgi| za4aP+G>cHKzdYG%_6*MNIdF)kloH5-5GL2~0V92h@jI@7;!fyGKHKBD&4D-JPBApoaD7Pmhi+q1qrKC4_}nk?LBLlumyXpY4>A zmKN5{6xwr$uI|9aIFmF~dAwfFJdMtpj>*K?hEo#YyruLRR6TS%aG;}0hyVQf13~^y zHM!AR9W@2&pVYWg(Dbw=6{)w6PwT`ToEYdRKnQ91`OENk2$|Kq4h%Hg!_#10h?5r_ ztObP?q7T|N=^GS@h@oFWJRD=}4^j@3(TVDaEWU%3i9R6$r(AJ0J}??F*YjSBL)nP# zB>|rgxUc&kd>N38#0vu~2Pfx&g9oD}JjBns&JFMT-EyaL6Irp<&^C-xoG|UMk0cP^ z&Q2A!NH~Fq)<)~8l_iDl{gj+oQ?kn5E4dj+t}fVdtZtkoY}XR<%mz5(_g;eMnV%uy zwDJgZV304DnT}qXW+>ZfKEA*(YtD3teRa;e1U~ojTBu83rhWsA)p~KnzyAOU$t$NR zE5!FgVdVFj#En%+l|Aa4^B2z%8=AuCe?g173dSk3ki+jN0Zd+%oVb*DeQEk6<1ows&@C}}V$@;cUbDEcAf!>*^U)&o z^=rf@I{#u}U!Eu~WG5AJ3!FmzARa+`9CpL1p=MV@Tv>o_SidBSZ~gc082AX#l|}jJ z>)V{}${{ojc1m@NbtWlMC-MCS8Ju>j5hbS%e5z>t!nm*>R;lN9rMynUQNWqL%Ey#L zm>~4*^~$cA^71Dq$1Bcoak(!}wpaKaM`_d7*N4vzT3@jB zz9*|6Q)ck_PYcxq-Kw-|+Bj9p)WY;H9eN#}QE=Bsw`N)?-s$N4Aesj7oTHIfOzqXs z(11vue*Ni_ki)+DD0UBVp5tqFJxGhag%wIsBDSN76}8+~H2!))sN&sk%?qK3&^k@k z=AJ0}yja!xKF~K$z2k%r1)X-7Y+F}nO-}H%eX)?9(qtNIo;+`r6Q~^Qo-h`-NNf`bxyE=j@w-R+lxvboH_p7tBC*tF#rL&9TZYBrYB;%+ENC6NBX%ZaWD+ zRlidz%n<2FtzP-H$XN6HKpz{%$c)0uLjl@HI&^;vwYAEpln5|6=I&~CMkg?dTiw)u8!iyjkkT|XUWuzn*hn-|e78LNDv{EPV3zP^c zDJd}V@wj~dr!OAAv*q2}N-6d1*%tTylbd(oMC9Y+6W*`JL%M&PTP=3*Oe#bT6nKO= zPH+TZ9!@Sw{{vAvmtroymC_F%R7EN|&Ym54zAJV+7S0}M!H__PKa%~TfA@B#&+?$C zbLNd5Yij!Slk8MXo;=^P#@{|?zrx+QxjGi(}!M z9Us~0*5pQnqJ->V7EPCh{?OH~Y2YMwB__)%_cBGOr;R@pv_ z=-Aic)5ovfww-p~UY)#~v>_8OrgY7tSw7`K(xc|ZjD+T_aK%pswUn8aZwzDMTsPYJ z6+B-==5g0ws7lx+kTeKcK?QIJ*RRfx$-bb0gkJ&28}jP;0Ghm*uk?HP4=*^E#Kk?% z=sA7Je*hzgZ&uE7bH7wR{M=tFhfyVt;mJ=B*)R=v*+a;_F45_zw~=Z;_FtLM*cB#Z7=lwK11lebo{QlNCz;+C+&nWRIno*X=8 z^t!!$?ptaW79Q+{Tne)nIw*cdn_v~K>$-I(UEnE4W77>?^k>QRe5)C6xMnZI9yxg+ z=V|ie>$Os`ullQRs<_;~Th6mTyEZ5!u{YWk43R~6DJ!D z2+jMKx5Xa(m0U}f_?Pf3j9B&hW-RrU53*G#l6oOWBB)Pm$!UtdAT zEw5v;Q(yk+5VYP%3YOi$1>{}OKhY3rr`44vw z2|6#Bc1z^oXtVq5AW-!dFN`d(cs{KdWL5|{(_fsM8^jfvnvtQb^0lxfsH}-<%BW?u ztD5m zVdvBgQ#>Og5}uTenYnl$pS@=jj^~5_KFeHw^GLrYnJ?WM1HBEOii%owZUN=a881T+ zL-UbRs<^oLjTC$`g?it>PNPMgPFZiGye1raBeV0@uU~c|+%DEM7hhQLn^qeIvQ{b$CZ;skh7g zDB15>4db&D@KiPVr9=D=4GF=(?KugrHj@~)%dL+HRwvt+N@tGH3Eg{`BMrD+$W@K2 zN(jBT3F9t?B%`DISw;6Bkvz9|-nheLu|`j9VJ*$TBuQku=A|gXC(JSQN2a05-qHF<;lMC8&fjP{F32~0{`@mJ#{K=1q#U07 z;bH%Gq3DWytEw6Uy77DkN+(#awolaGxL$9YH)LfrY|Sx$P$&r{vVRnVd@vg4(pv-C+S{+s zNX&Zu&?#yRk8z0DxY-ik^vibZeuQgdx!`i@#|zFc&$p!YlTUf)Vj5^-BgpQ-BD@UV=@E?zXn_oCHK;me{Fz5p!V zOviZH(sDZ6s1~!t@+2oQMxJwvmzKL`X!gi%&*AM&H%uB#_*O5*-mcnS&n$+SnWY#C zXgEBym@V?Y+@3!l*7b%oBT)zqHuu@VONE{ps%J!<7v9Ch(El5EsC!ljQ&4PqFJy2> z*pWtie4jpD0q4b3Pi!n>iD1%+n8sv_($?$iAU`cR>p3422KK2hMP!rziaD~)C;nF6`--^VjXOS(^(%}q@W z`vK0jNr=YgwLeTZ9b z&-3Q&d)lq?sq;8W1J)mjo1fHZ;8;IcH#wfU5;i?6#2+ zhQ`B!gPF-mOg}=8JGZNbc;^oNJ72rHbnm;f!r@WKyAGm(`5)D>necd=GBgoztptZS zP#YT5e$Sr4k*21nhqmY-RBJizn9s1v#9>%dSGNFq4pdO633{_npAzI8QBham3PM`~ z>L0B0B~}AyNZ@yJBqrf>SB?=EJA2j&j2AA??2jK&wG*Gr0FB`ul7~;ZV>MWnBj3IZ zyY6fW6=J|`xi7|J>m)60A6&xct-8^aM3e1V#ULChM#jedMUE;83Vtatpe{po1o9IU z5pjkW0c}`Nehk1YlqrD4OC-jM6DdWercNPgBB$x&c98kO?lHxT;a_DHl^I+kw_$05 zqZ610F4M}$sA5Bg&$M9-Bp;*auBg^f%c($A@uUR2(7)HwIngJBp-tFPc|D}feZOCT zQq5Ar(}4LA*;h~Oig{=z#t++gCA+2@E;^_ph9soDkFki2G3E&|kV`YWgNHa2|v1##z09o^Yk-T}%C} zwjxDcM;PN#iRPRkSS=!SU&|97>3~bd^g$~IAYk6cv@;s&552X3Xj@u|VR2A{UkIJY zSA&8hLqp|yE#y+(2Tt1H9r(hKpdfk#LB7! z&Z`MWnU~CcE9kVgba#uu`lA0PAmE(anw`V?e}XZdy|L#Yjj5H@Ce|y7_iR^zEvw5R zFk>VnyX#13OId`$Sj`-~^705iWNa50cbDwOTrD?-?YTGU_V34;)2m*6fPn=H3JM_s zv;pA?L*tsggfdoj9M2%Ivcl1>*-{tEFesV)`SUYP1;!kaYi?yd`1bTLjAskp^gZa0 zP24?+snK3Y#CQONHjK5gnciMrSLp3vSi)~%MFTt7iBvDcvQ~U<81aiUg4PrU_w8Ii z)y4cktAeLCP#)aonXhlk-PAX|w}INOs-9(I^Sz1(b-1rDojn^A`s>xNpFcmqr3QF0 znKu~-zeK)O4~zAi%ivz|@$t+Q`;>O`xGY&thz*a7xM6sA&c-d`&6^GM1KT%;Enw4V z?P+Pr-b4TN{V&cr&O=dyU+iFuaqz#ZTx9?~uGnL{A7W{a7Eqt*YZ5c~l7b8yzEoAo zt~H?%LHb9_exk+8$*~1b>Hy^Dn4$ATrvMI5SUt@*?A!K6%iN@*c^HmoUw}*^y@M}B zNivuMa)6yf%c=Tv)V6O!}NsuY%umHKubk*oV4Udh*K&U;rS=&F4 zc`I0=;FLx#L(@K@A;^O0=#k^c9RW~4u5i=<(R6im4xHfm4DZlMB}~G^0EQ*2(1+1p zpztM}THt4YKR+ZQIFK;aX=`VdP$kI2=pU313OBPvkXF{Bpu=8fHSCmi@_v&8XA0p{|w(S7hZlr)1|8P@5U~@(%kb?f|G+o0Z;WgaY9qj%gle@ z?w#)JP3f1x*RqeUqg7T@8NB{SUYU<&3qT7G8J*!{5 z@7SkEY-8BRr8Zu!wRwNu`R^ajTsjr>l*3o&%wg?kyTi1!k88`Z`#Dj?2uQY49r&M% zQr$su*ng90Q2x|mimX?gap6f9gD?D?{pdusw)ms;|9MoL_@%UilBY75D6$?GQk`|y zERY}zG>GXp_xzuo|5>JTDn!mxM(@hEV0@08XF?6}(gSlDr6YFsYRb%s@WL#2%h6bxS74HS2U@=Q0HM5rHx#z0)uTZH-8ptKWk%Zx$Uv{?ceR!U(WRHkZWsmGN-DsBYMp5YEHCG@3Ks5s1^K&Y(uvwDukSZ zf`m3D?np2TZ|>pgUGH>02wILmuvbm4cB8F*t}UC{e=+UMi=!81IiK%jkCRg+=RZ>- zH}1*ABy1J>v0uW$29L@}VM^XA^;o&GWMC3=G+{V&G0lWlY-E|4SO7u2ypMs{qL$ltU47b1CVM$?1`8K`#OvRnJ ziGz>+TeKGni#y+%aql{Bv*W}2)#Q=`Pl-PZeaXB)csCJ0K1+l6f4-niMRTtNCs7jB z#>;=7{gBG@gE`HP#(HlF)(h~99L|99|PdS}lP@p`?HI^ZM8#JpRI@M#Yh z9urHFTx9t7gh4s0$Di2Vzt~~9vGc~_;lDaWie@DL8FqgqOmyOzV#clfgr-{hb-^pHvt8s~M+b*^)rl$39i6;njr4^W(j(bZdT0JZj4 z9z~XlP0Y3(4)5In;ZF#yktlPm>Lc!kTb$1~Iq{pFiWq6t)DbH0d#XEMkoYnb^hmyz zCl^Ks)MZxM&-fq+B~ole!79>y2$RkLl?#Xj%MmeUy3n>QK5Ks(WsE&0ihop1Y3mvl zgH+q_`JDPOXB?sUIy=tPK>l3LB;=r9%)H@$zjB+nBWEI|DJ4IjT3*Xr*RO{bIKHmd zaqI2dmY09~V;g6Ls>>lUABn=fx*k79U$Ra_b@}hN-)E!Z;~?EyWj=efdhtDc06fmh zTcK)SM%yhLZ=o*29=;#kWz;Pujv>54A;&lZ%D*@}IV7E4zxdo9{!!?~pTTz`A9#{b z^7A1|c#l)B==(Nx8BYMfbXN%dO_FMM`OGt0=KL@!Z?!}XN?3rPS;aCwOq^^}~c1y2$hnusze!VqxqYXSH+K-gHv9wRN+*Q$hfLR>A;Fk3Q^MWGx3hv@6Q+Hkvh{WG*@+P7dUXB{CBeyqoDrIRR?Wt@Tyla6MQH2*QoLI z-aCKv|FX0gFtZ%-&-@TQ{?pa+hYd|uS>5CLgnb7|^uqhHuq-!)ed?ba9v%j2Nw0~7 z#6$&_F;^1&%R3yKA>rlR>)h#g9L#3pb7TXUdqaorzQFk1B|xIi6MN=|AJw{t~6ScYmsT zEuDM&BBS^Gg87a#6UCh_Aj|zyM`}tEg^KWKy_UQC zyL1nhe!ZQQ_o7Rb$k+f)|Bk9Vr;1*M*{?n{MA!}&6PP&l=Gu}zcRRTK_X?nJ1nzFe z{40|~t~Hw(1q_~#H}S^*9lNl0;4Pm%-pu>KVDGfKIm@tB%5U8w<}W?wqskDzzC4O}rnNT`6% z=rz;Cd!>9NwLxYYQg&2NPjHuyW@b&||G~J3jg3Xpx639ppvQgzZ*XIw_c{uoM2h$w zu>cjE@Y_4BoOBYb_krN#8kF1*0Ku~lB%v+Cv^RbC;Gt#ZhEDu$yfe0&GkeeGg*R#M z_nL}1ZqPXN%9ylMZQs5fSGnU zwY7<1V&9%rhkZNF1?<1wgl(YXC(9%SW}-ge4rEOc@fy2*e~8gEa;Vu11L2O%r$249 z@fL}WlB?2q3X7S8eRy^Hj?6taspskG)_@DFp14`I#|0N-1o;O8jlP}loO8f(@EGu8 z1X1oVIKddqGclqB!~XP2V1PAPXzyJah`}7+T#`FGX=}1=hh@Bdw4)_Qk{Ok^cCc&# z8SPoBoAMkHz@%(v4+Hzgj}Ph>{e(RLD`^ylOn=nKFgKG!toP>f1YM8^Z>&QtfbipB zRp6vRN___A#{L~yGW#CQ4|5K{^A~}4gZ^AWur=)~CZ2cOk9A~q!th}$IyFlS`=)j! zOutxnKJKbe(EI1#_MaBBEFHB?wsbK+>_U9x$lbN0+NNj`b2r3+o3Y(gv z+qE4Ljuy}N!c>6O0s6AWR5Vi*iuX~jaJ%L!jx-cM6@aP$6!zhR2ZpFogM1`}r2@aG z5s#qno$t%QlN<4r%2aXISF=0hV)%hlQ?Ja38&T4M`7=@KNtp$|xZ-x_BYR1yZr!7!^j-EPST0@HLs%s)R@(s8F_=ERyKcbY?|ezM=X4Eu z_2Q4m1UdD`5BiU=HLOE6#QjC@d^O+fd-K6E&DAxoL=J}33lv!mO#4J$<(NBNk9U=# z^E_pgx07*!;X3t>Hua|lv)ptg$?kaaUWJF7U?Zd!g82rZYm#xrAN0ZW`HBLt zyFX#XbB+;`)ZRbnYqxGqzD*ujw#G>lxwTC>j7x+2OH+|RQ-`r*v6cR=rsj8CUTYUV z6rHMndf_ZhTxR*?!?53MEQd4=e>;~%H|JId)#;Ma(%7(3z@T2rTU{BT@dAIDs@fT{ zPw?DmHP4)BMn38B!e3d=X=D>|BL4;zjHdeLQ1DUukJYPlc>!vru;0s*6(Iqr`L?~& zp|e-@ELM|G%~z?Z%5%oX$%~F4lB3Qd;Ac_W8M}#pgS!2wucplvs+~3Trdns6SFFSu z%*oG*?6u1MHp(ec7(KYpCA)ViOKNL;`uNT{*Aqe+ofDczA_uGnLl3sP(P%=+PmoxB&KTiPcTAF5R@J-|8Q)f2Zf^-MRpMDMdkL6&Iwkg1Dk>kKbaklU{iAm9k(`DZpovWl>V8Q?)8pW zvHFi--QKMCQDU-=VH`K6Yg|8YH8&vV0+CQ|IPBa>NCH8{*U)|BDM-RgQ14*5vA91i z_An}T%FkHpYCEIy4+eENgv$QR;Rt(dU!DPi+We7M@ZW$^t#;Yv5uVCWcayo5RX0su zRjg~5O&aRi36T%FPN0}p)jUoo2lhTPJdEm(Hc_y$nanU->_;wreyD4__{rc(+|>r= z;8?=rkfoxlZEc#NN|s~#Ub~g{D7P7Bgo?|dj=CZN)%WIw5j=ZsS$6W2(x!ghGJL{* zi=c=}bkM>j!@?`4Rw52H%*l?Jmj_wS%`$6`I5-ZdE-%skDnOTESAJFIadV zUBupofF`wYrU<5r1UoN_V)GeE$u?TLkE)lY#4WySB((15XAYDPYb_U%NjdT_zO;7Z z)+%p0UE|zFp{Mh5&@%n`vxZUji0EwLCN8aq1r4cr>24oZWi8dX8l(leBM~m0}o$P^H_VuvU`Y@M*cF_()TE$C!L$?i5jkT#+ z+*C}&JPZ<2gwIpS@JxU9Y+%xKewh`vFisO=^!|M2a-+aa7x|G}>DTin#lHDzo~!b= zpJuV@$qFCW6f0u)+v)RfG{VL!8Be+w&pi36S$*f5f4&pFl2P}@yG#*c7Y{^;?Xyd) zWPD!OxzR08A}#dtf4Km{Z=BY=a*Ssi<~eFTJ``!jd9mO4QAO79#em$|-YwYVWu|7% z0pTAyq9IA99$YC~)(6MCsO?=Pkn$P4_Z81}`*#>pg}i$9Vna`E0?-_C7I+vI({oD~i#{^nzO&L~$X&q)OG zDq?hQLee8*5>tv^WI?4T3?KP&?eLo)S8Y5p7j`M0QOHKEm2X2~|5bX0 zRQ%w+Gf9yvjctzzce2-JsWEv!;deNqCvdc3UQXq}`u#(fZsrKYl}s#Op_!1RpDyk& ztovPV+;8O?f28bJjQT_+Bi-NoYl19~7Di((kSRCl&iRLl?vqkE*>52naV`F7XP@y; z9kGxkvFV^~p-k%l2g!$qd4;S|#<8m`ryyz%-+1L*ex(&hC3^v7 zj$7tMW9L>o{l1{%BcpqU?B@M57ISS6T&B9T-;g3NV_EGOcaxO)-gD0BXUnr=zV;A9i{yvpRN2V zwSmX?6$xs%&~k11lws?UNGIwR+)s)T@Ys20hmjShCKrK;$-e2*yqdDM95PmUKV618W51ZD68TC(J1|bIA|PlCZ*()}bPAo_ztOU*)s}$Fx09*89=&yf{{r zRl|GZx@$>i%j4Npy2lGVF5^Ct*~8K|aXFbx9xEG1|CSr6bX~@L0hRufBHPnaT(!1$ zQ*qI8uD@wg{<)q4LtZ}auUEMgI(jqJ$GpCVCFIo{73^4{(`C|}NMY>Djo9lb^HAdo zQ|>vVjvQQ<|8T@%ZDs$_Y3B0IY{_`y>&;_Kw=Umms-c&@;gJ|D{NusHZ5@f6yX3NoQI^dt z*tF)jHh;UWn!SVUe9Z6J%E=+A`IAi?<#%+3SKfTjj5FZ>#c6!(G3&AKf#*9C7pax9R@9KWV61cJF(?NubV-#r=I7 zmA0x2f95Hj9m6y`Q`iZEs=~Im>Rh+?!Yco0*}&n5UH7Vg)J~FJ6p83s(c*SDQyPB} zG*lbMHf-AC)C(gM6-NCYe-dKv|9YZ(`t-$;4W}12_bYg34DKT2}jc{*%5jY*%r{2pc~ z(ADkjs5>Ic<~orldrLV@f0>!)2^$8B8}v-RX}R6lvq6EY^sBqGrZvuFi+xhB4{m++T-JKi zoosRQSKoT9*t(6aDUAtZLaUkCOLdm1)T%_wK*v3Y^y7nI1QqodM3ZSSm4$my+_A|oam$|WpJpSY#8Zy4GSg7*yXcX4+A>_ZqbKl9zA(cmF+ZV7zDDWH-T79- zlIO$ki;RmYMNh8v7V5r`D1A1cqdDPmL;6?4^O!7)e!6ffnn;SOdl}K;B6&7>m)?Z^ zl51sp?s(!IbI(k)fB)gy>MARR&&CvU#0FNOOU!3{<2wJvo$gDXVjsWl=d7|8#uBoY z)6EyYEcFIGruy`7{JWgWy||dR#UD4*`dh5T&s;lmp=a7YcA|SG$;~Ok^F*_FP49xz zho*%?Wl!SiObj@AI1VcOnXjcy%QjD^hSShROnf-0)>ved;O}(0*JtCzUr4;aT2*8| zQr0lgQG8|pW%XtWySw9)TE91UbZ^WtVGF5$F00}s7eG47ADqx+rzK`rIIhWh=5G## zDRHsEZKgB{+7AUJq)M--8eQ+`Nh}*?{7kM$aVl^5^`A^ymBNM;e;V-(DzqEkPDd-% z&&w%>_iV)h#{f&Bvbmp;vFgR;2^!`3KZ1KcL<{e$9^UThKg|1bWMjcLkDVvoDLhCW zx0fRy3PkIzMP;|eUvqiPy29>WCwuZx>31>b>hsAn=P$my@AoH->pjkLS;yZ74LSWU z7V<9JapzVr%*Cf&aFvfA$XS{+B_F$b(3c@1zwxJD1J&D`xUwdzk@Mp#zkkn#Ty>JD zo?sSYTQ)p9POI{BJ6Xow(RsOssH!TBnyGmwzl|43D)zbpUcY^MciUcAh;BIDFQ5_S zbb2cBy@z9aJ|k)Y^T|X1yqgi+e!t*=OTy7@DL$Dnop(O8!~LZ^qaa7IJS%rP@>t-H z`VqeoawMR_KUaJ8(u!^G+H`kKzv}1p-ZRa)&aI?ccG=M#srk3fU3Uw&h8nWzd&!X~ zZ_&B!e4lKMA&e=v*JevjGKjQa)Ko*JL#ZmE4xoQ>Ztb*nK1H+hpsK2$_obne)zXY%v!;2FlJ^wG`zHxVYd=eE}X$ zVpdMNlrK*@X!`8Y_MuXX-RPO~O&YA?^FA%(R+9(9F1gRho(QPY3-1@0`odB4x08${sGh?- zm8b3U3!mlukYr8I_EPiERf_x}_nAy(^X=~8S5*HzL?;d3@qD2ow%)wX&yY+hTefacW9)@w5%>Gk~jwUs>|to!SNy{brn#}(5LW}D1zPsu?H9uzXp z8m9abW7pj-^Ig1$NLz89VbP>}V;*cy9uXHT%~va4s3S8gNW&V*Dq-74AvonE$D!!$ z9~HYS&}+psuy+675eon890{vUG&=qGvl{x^Z#u5?cE)7tQa_qHx)*DoUGT}Pn*QzP z94B29P$jukX!qCy4_Y6azr!TrfZPVoEv2+LN99=y!xP0tnY*bXm~gT7{YkH%NiN?V z+CTFkT1#YEwed?<+ZE=LY{NhBqv<-03YWan)XOra0*2hgN%ghAw0$?qzN6sU*puDv zWBGn+la}gydJNT_E?(YEa^6miL);&93YVrQJ4^Cb23|kex+iMt4eR6nvD6oPW{je9 z7N3wDSTp(Mm^&3`ow4CKi4AfBFb3>gn^z&%fzW`{!;I{cKS&GoJ;YqJ|kXlbA^UJBW zQef73b|3WZZ1+rM|Fy^RPPTa_HA5QXK50DZw;cy&iqt2D1U0{9sGPO_D0D>e2`TiA z+%dVbGuyR%B~@x)?D0;~Ev{;zh^cJga3ico-TvfhsjJvXJbXLdHp&)KYWr@vyZhsv z1n!-j9h(K)>_&^9Gae2Zb>KfxcV6f&>n|hdDM1U2rnYijnI>YINLuBa`o4wr?dW~N*U3+uVe^i5(Y6lrc zBd8!qdZO|UF(MMgSANhc+&s4s<6bo37qcUcv0?W{E}oM3lk*??%T^m(JvX$yyKZ&= z!_={y;SBqy&TEz@!gxt3VM;o_Z>aZ4Y0_;a&0#aGZ`}jo-*iMT3EkVXNlr!Q=G)R| zU;FbeEgnz$R_Me3yZGay_};SqtH)(*!_ro4M4sqWygp|cE}(iiV)_vWiHEgjqHUue zgMuO-sVFuLSn^S`( zJ2OAXDdJ^hoob6b>O}SEP8RwIvmV+`5>%yKRO_|-N!K4PVg4#7{j)LCZt*?z;jK8u zM>+DJC7FMm+-`-q4R`fc(Pl_IQ3wZrsYw}6=@=5#ECVBW$ca7I z5L-CjGOPRSxGSlFp8jcPuZv!lEp7@h6FJIyhWYYICE-?{nFco+w>HG;T z?6bi(p7YmA1qNngPQ;sj4ki<<;lF3{l+I~?jPl3)s{B`6v~n}Q(qr~DNrveEa8e_; zvbi{-!Dj<1z);rXGDWFDD`IEdDFb_|!`wZl0%h z?lc)Pv_B+7nkQ~teD{NlM9Wc2ucM*2!S+wPD|sSDGJLz)yS-Tl&v%q*+ia4*)3v+j z!1g8ceWo4*zv>Ehgg)42AG~Bfzu;^xr!+n%+?G4;tbfmHGl`a}gCVhY>)F{rjf;g! z>-!}1qFS?OBzu>!wV8swHV`0pc~Ke+Tvpw!H>av^crMCsruacW*Ws^;KicE8KG zXZKwzrw_01FSH{+BB!lr9h%Kahbbi8r<2>X?$X8-XgoBB7w?ennY@l%@PsRA`G%() z2AauBeDikXh}fLTdyyvdeQsLsbJDjl?AX4JB&d*jXmv=~^rZJ@4sWekZoZ{ZKl<7D zGt)W>boF+i2FZKZD?j)bAKKkq1K5!X}=f} z!yC+%FY%I-LSGP;cRlXbYLq)M_GEp&{b!eSOA!A|ru$eTJoDX{sow zW89NZ@kVL`cOC#93Fh@>pk30Ol&N32gPc>gtU1dAtyIfH%J;uDTis_(bqz%~M*84$ zI^7b|WoJT8W!OrV_v;E@AG zL_s9VjB@S=SB=_xY|jP@pWmZuRv3|z>7{?PW(-IYTw6eHcle1Im zD?34&Iva{W<7%llc_5NHG1tq(oi7d<^ZGvB(doy)Y3yvT{cZB4Mu>)L@&kJXYEq~U z_xui}SAK`Yl@a2QR17U`20q^Ip7ZJVz0fZCci-5o#L4-WKl5yyLNvlfjm`wQDIxEVR*$65}@Lvkizjd_0JF;{-W_9<*BIS>;m6ceWW!6 z?gi@GgaXuWS8IyqFY6K!3^M0!#Ykkvv=pfOnC){J-R%=y&$Mbv27U(Dy};J*kEq^q ztmJ+dGP=2cfrDOYGtEwpF*=q4nM3V++BsIGee0hzSwn?kAl&tChUME+3lA zE*^=GB6gJb&VlZEmW8Q2E7AhT>}9v}Ob_dWS&l|26h=sNog6qOS0F=6;(T8zIvUa<_4rTqK=0cb*&N$}}uUA*E zUpH#^Owjsmb-P#k@^DDS(u-R|Lt+Iweh8yUq1*!fPqs8V^lwPD)GEFM-bs2!a>aX( z>M9pqi>8^C?uEs-y@f6(E6yZ$EvOVUCk?Cz{TY7LffPqF#}%DL#GcK;-hm~gtkmr6 z={R^Sh-v-BQug>h?Iu_Bo!au?Sa0wiyD_h);a{>I4kHy7s+NBqizj>&@_hSm@9pu@ z*mUaktkSIiRhQ#wHCEykr)`QC@hChTC{A1;XttxA0;Ze&7Ijf!fmH0&DHiB z-|*M`Yh*-o?%JL2PcC>j3*(Di#1;=V@zvI*wjIG~*mx+q>3(M4A=3>XW+wO-$JKuS zOzq0kC|vp;yHYkj*>mz4o<~J#{a2(-CA;e=_*I(GHLM_!sp6%Yo7e0N0& zz>*!1Bc@p|bL*{oXVVeqd!}li##vRuS=zqf4O5s|rSPAeklpjoWow)>$H>DH`woRG z-FxM76K`X)mDnx%%FaF-4bEJyv%-nAe0B;HxA0E|{seF@$gA(u@_KWPB#SQwRCb(; zR%r=LmgDIBAhWjk0rf&zR(htU1E?h|2SXcq%vkr)4CFYUq}rVJ%meGf3%PCdhzPYH z7~G&+K_gP)ei<35UjD5Z1?JV8N&Z~4O4<|mQIyw!(6kIWZ6!7h9UYgp(?_co`aA|0 ziMEwL9$&f7ERq^F#qH|~t_3@|T5l!i-$%5K{B4w3MOyHlr8>IJ>cq5jYVGllm%-EW zaQ~$;sw18Z3VH5ZnEZty<(>CpDKG$4F5qK4L%9X2TEIYxz1A#o0jYl!JhS{(qLH3{ z*}pn}l-se)(5&(P+~N&Tm{3f2z31v39@Uaw7lWW1;3o(kXyn}ey2(s~6a@IRm~Guc)AcEkzgJt8tP)qd4-$i1KN(ZIm9`}O{v z{T88)q02z$4-ks7;)cO9hU zQb5;K(8jFOPH;mJe(h&+2$R_@SrbTzG%jmzAhFVzQnoevJgxN#B@gt|KCQ2-qDMk1OI5pN94XiQQ3LZ4z*t>&$W9eA7G8TFC@W<1b;w!Y3UzKbPUKEpf7-Y zLXeue&3tLERQ_sEWHb^5Vdh!0B%x;xEt2#VzUqF0I%j;n*BKljLVsxc(Vpps-B%op zl|x)fD%!R5kr#d{`>oN!jxK2yZVYQwJQTg(z9~$wOj7HPEbsjwEPEAWKIW&Opn6mp zFAqVC5H;VLYR+8kP8#hp2s1e|#jzMFZNdFK52LMUGnc11pJhB=H2?Hd*(&tz4*vnM>DM zYpw!=a0gKwW{VkRIetT&j^MVf-n%U08vvCx4Y07SG5x{Oe^CM~RQh!zSN+=R)Ed#$ z7P)#u6hGblS=?z1K{KNC>*g1WN5uAvzcF){%?bTqpai$t@)o6qcsqA2O(fXCS89HI zbc&z`fPHn>8ncL}zVZ&w_k{xXRI`TcRS%ZWDZh~*H6JyCA95sIMEBnja&^ykY|<2V zC+5qyp+e3*3O-PK#k_O;2VIoBiwXP7q~s3!9z?O32Pmf7&tyQp0xKDX|Id=gp?*eG z!QJ@dz*UdrJ_q<$D0};|=L2XTsQ$rpIe})C_(%w%dnn$czGH^Ar(iS{3-!5=pkvMidKCkAEbxcE&=TOJ%JH8M?R;zyqssu4u=wCn=cV*o6 zEcaH1V$>wke*`50RFT~`Zx4dMgTlDauPJH6Y+`~rwvlp9>8UZ*JF7AoDojypvu$Ju z7v)yE4bPO#1E?v9)0vC*$gQ>!o}}`nuq{5?+IlgmVt;7s4&5K-8just3+t>ia%|fB zLHf5EC#^UR1%mCX8nG`JraCv~vwN<LkY_N?<^ylps+>Fzj@m_YccrsZ(JQzQjqS zP#^4h2_I?uH{XT!I!bVtJJ_C&4m4-4-k3wF(Z#7m#6g zoDm-Y-|GM$UqH%y8m-}v9VT{K)tAa!#LU)n8n^yqb*Kj5kf^7AjFYH@AmQMJ?9r{DmB(~Sd5 z(h>_&lA^}hR4dSga)FJOAS%&^@JU&zfu$`Xu*tn;KhYS0#TUy0tVC|^W}-rCk3A*V zc+h;5`!*I)KIlaSyuex1b$ucT7H1STH0WI!d+cu*HGEn!W)D8H17Rjadgk>%9+Lw1 z5_AFEx^VBGrJ4*ISI89!)?E@SBUgsndz1UDP5=DOTeQS@p1zHHgKC^l z{9S_iRxpnrHKsY;2Bsh@H}+Zy_fi|t*$t*&n8t=KoQGgcVlZ#OG;-UQ8Rmk?eYTg) ziIkvC@xP9;A;ZQ!_k%*UQr&r!|IcyLsE9ku{^rD@ry9V|a1 zUEGbCrr{?Z_CMXxfEMjyZ=w)w4b(CUuV(09-34`@&&gJr?rJmocMQzAvr#urd95vf zTGhXl7U#l3T<L|JXDr&o%`!Q3oh)?TvQ82TKQ6tn&xL&6yn0*1Jw-t8>;_Bzs# zjmPTXx$e+$9ytm`4#Lj=tWtZr#Y`=TV9AV))}LT2$>1c%q(umEmkbDjA21|H5by6hTbY>)dIcB-B)Ut&CmRZqK=`;Bheq&+7Y| zhly-=1Cyj@Tjc59-pv^Wo&3g+XscDMU&x79gKR!ff@0(uDB*VXT3~}vn2xwmXLr!2 zvP7tyjRu|RR}4DFrHmSHqd$t z1*6r{!a{MI$hJCa5Bm}i@Ue^Ie}f_kK~)DFT7?4eX6_PPHB?{kmLOVEcqm>4hp^Dl zZ0;+DoKHw-3MLq9vn~(1*eUt>p#k8Py{&a&g-8IgfFN%LzG&0y*I?N-VhS2zFkeTL zWIao{vN^9BIUI95YQoT99!$HDu!-zMgrcus#}$fK8s}6s3-@2Q)U-l;s6@1;tj+A& z@p|rcVLbluMuCGvu*LZu6BGac8XzZ=x%3M+U1es;!7XWl7jH3mG2 z|9sEiXJi9s+2Zrc8?)VylOwO6Y_4<}zL{e_m$g)B>C^HvM4oUzNh-VuYC`MZ&0KyJ zw1t9SuahJ;-0m`*!(;lXlXGX4DZavKl!yi{;ZX~Z(neK%6wDuFQ|%ILmAseZOwI+z zkwn6Kgh#))V&h|Wn_P#L$``0fa1-^#1M6=^!kEa?KdbcE&04oY9yQ1X^ayJG7%oyR z;v(4@Iz!%y6X_}8-}Af-AzM6_f38yMF$3w3ojXDuICTDG@G_c%+DU38i|qTj@&}$&xdUA2xPanXXnZ zyx}~_<23i;`NWkU#jT>mcf;8*qdZ$owR1M<*QBSt>vT4+#GRVLpOvl2PUwnDo_>A& zxBR{e{VSjF?SJz*sG@a+>Yg#(Nd=w^H5V;5COvX?ajnIn(vNOSfz&wHz6PFpwm>l~@B& z>A4gZhK#qBch^K^hmD&Q?s)4?T&CdG!DLd4yKlbJV0r$=`uCZq=;V=ES+Bpz*@S7( z*H7nuFt)RJOCs|Nc#oScLkwzuqSIW9G~~cZ?x%{$xT*gZuhLX#vZUL=Dop zMOAtNj`L{I9k8j_yOc&8>!j_noSVG&*_Lu^ajTjIMyOH)rNv+K90smty{Ts6p{(g< zjrDtk9>#u3IQYM)Hr^%tWPmIa#U>OZRG=ONG6Vg?zmLHng0&8Pl~KqQRHkhSy}6G6 z)@(T-XF=XX?N3IwJ}c*AX;Oz{tKpD>moJHujh}-!cOjRarWRcYcb=#lLUm2x(6$Y& za?Xl;=TC5DTkrYLv)mr6lymLATvCOuUh|FAcj^iS+C=5AqjH5P)IkKhvbIva#+XLA zF(n_6=HW8iy&8@LAdba8SO09oSN^=pi)l3?&Em;ur-kZm#AnpKo~Sy5%7dB$&GA1b zkTU48qzt|2yH|~aCepG01f2k#l7%^oIepWaR14MI`S7e`Sk2=KEI3g}DymocnHl7u zp6i8bHJl?Co?nXQQB`nyvp}SnOh=B$Vt9xrXWGh>TCh7X> zura;bwusvlv>+&gVS&cgD{Dtm($=N)noms3n3Y4~A7>J(E3ZzZ5%5=kSk)R}prx1z*|+WoCyNqh0q@b5)S z=+h~n$Rf4wmc@4OY4${N*91K#hT>LEvqB%6%Sc$Mx^NRQ2T4}zm$b`8gw&atsDN-p z{Wg5Dx#g8agIls+iRy^C_H$tJ|8S{@M{F(Lyo0mPH~)4m-|(t@kC)0%<)*C)lQjQ7 zG@1_>4Ih@BB?ptA;~{>aI`H{$0)k#<|BncVfiir4yp7pRsA{$~_-G$fqw2r|1|OSP^Ehe=iR|Jl@S}g+<$Z#t?XKfin`t=`*%J+UYm$Ra)IMdp z*L{5{OZ-m!_%9mY=ip{TZ0Rb(BOGOD(sK=sHVJY%PS$!4W0EkZ?^E5JO`n`iOwyIp zQ|Rja*MDoxe3zbLL+hFK%|92C=xLJhpR5}$+`=-rX!HYNuO~6aGL~?ekM=sX^{=fi zd{(1OaHc$?Bm2{$$7@DZdx!j(tzlU}AvY1{CMJ|L$n}Ze7odr8UP(qC3-Bg{$_A#AB*Bx@nGa?8 z`Ft5JZ~C_yWjEfP+iEIObftf_ppiXjL4Y*c8W5IP6r*pK!V$A%abN7^$YcoH+V@I+;zH%+^SB3}fX@4rV^QMucvwT1H*0owDceB_tA z+r;u;yC-`#z^cg_T4L74w46jN#I|uPhoU%0?(RRsLsH%Ikp|@F^w)3SN_~HD4yqf2 z#~4+3|7G12kfg#(dbjUfOFbO>8_P-Qn4TQPFRZaGJ~c}V%o~gDttVJ?O746lG9Sd3 zBN>Nf{}8Sysv!;FXRXvhZI|`&qO9cL|Cjo}cT>_`w-7)T5Irw@htDYWKn3b6rg!Aw zVK~rC8oQN7)N5zoPTtpFb=Cb~qxMU5x^N5LFDzU5zw@SIdR40V*0t64bLw;-ZPMcA zQ8h-$$^ghv5C!fA@qVb05P$+ef;~yQ?Mo8@()^0yzAJ;@fM}z}*B2 z1<+rwC*}<_L6Q-PD`@HIiJQD6aUb5c=jc)0$nWU&<#Dfbj13+!;$(=N092%Z%wJ;oJ# zNx`XuW^0GJY=N9)QaC#!FiW)z-MOYzK|Chu7k!B=s%DhAC85jpM^TEFXc3ag zACvlhc-W(=4~T4|tAFV0dv#g6S(7==pHiqdPc4o9pS;ZBFDJIWU-z*{gNzgq({5(U zN>BfTYsfP~*Fs$Z0hPtiK#TM9k#dSP*fDfUPxChhGwE2g@c*|Jy!8j?1s(0} zCxLt_E9jzDPUM5MnGnMhz#C~qXHUFP$Fe7&Dq@PO#2BAs_Y)Tqt7vgz{X%of;YyS@ z)5!dFz!fN8cZ|g>k*hRID-T~Y6JaK<;myNPa*d*n*&l5g(B^(z9az{CM4JG{`i6dO z+kIrb&todsT4}3n51;Yh-N}C{B<-I)H|ukni`~_>pD>0bp2xoMP2ayHd-e2!QR>th z_n>5i(Pbs+p-HJ@2cNB5G8JwL-_UoPXs{$dFFx0tNj}8C_d26;RL&Jh^-RUs<+@==A1`zP3Ku{Zb&KKk5hR8FxX4K1Y(%rg=l#vgZ_f~s z2tF5e4=?@OpjmEt6KFw*EpOl?`R^Y`sMoO{{GnA#nkIGKog;aR6KMwGgB#i%IM0a=3w)^n!i<~+2*J#jXa1zipi-;rkBlxqd%_u5=Hxq?cQ~$l;17B)i1whTIZ~|#q#is$U1TGl|W9OhF56l%~r5{UYUo0*x=$%go}9dj%-d zYVePW~pF)Ew$I!4zKuumu@D~MtTrnNEGWvtIVDdh#$AVPJq8Iz@I6tCqR zTc1jjw^PK=y~$_*OH?&I*ne*D7~T3cy|s3HIGBtI^h2kgJ=p++9~!wKUvB)nU+c*v z4kEKdd~$d+Pbxu*rcUM<;7BM04vPKv%Cy6>*5^N&g&aEqTLnDA?@`F=bR7)}kH^|G z+93ToD88ZDAA+1Zn;V~{O zwH>vpBbbSE56niKfNK*Ol&6o3Pb#2D??S1ADZJeEpM)k2e$v{?X2S_JmX0rGTqtl4He-*?Y6xyNQ0BpI@*7iSN!PMS{u#E+v0Pg;WH!*aJaRMUii0%dML4a%WE(bH_if++2esn9QHAJ^>ZPz(JHl zQ2}<315GX?Qh9x+-K*f77GH6zGJf=Suj=+$+E!@v10)0h zG!Cy>O*IcCWv_KH2~ zd2{5{=~Jf#g+(6KZ)PlX*l^;+krOV=kKLkexdZj;p5ItM5?; zNPHflfjbtKe=r9z`j4%u3K9U#wzs#xsd|nX$HAP}<$fR$J|jxS9W!V|;Q~M)hRYXC z3KxTTcz9luKYg(W7YbI|qk7iVG;wi^hnJV=_KmC@0s2O$AJ6C<`@Z2N6cLE*9Yi__ zrxxOr=xvhn(OQ%x_)HoV4dh~O{K0eswY*r_jMDd1^>}+$z9UTA&}jg+_j8fWIW$v| z9w%(s%Ok3v9C`Vz`fwGUtY?l$J?`;su@;5ld$jljDO?z7e75)`e)|G#kJne+fKUF& z+rh$ez}Er7zD`brJ@^nSLA3v1W|n}3Tii-bO^wzYS-N>=AfDFTZ2ZhJSemg2h;Ty? zR`gl+&*Lb+50P1ALSqDG=CVs)4ln+C1#scyUu|OTqzk(0XU|ZxOGiC;uygnBWe5Vs zi(f@>0A~a{w)ts_P4^9bm8msoIF37}>uq6<$K9Rb95V~{N zmfs_}Lhci;OuGKepVM;%#+-&|z?h^MbYMZBmp3g_F!f|5L}`GzMub4}5xeE_Sq`cq z4F!dIgx)vNpfE>g8M#vlv_-=p6M@`n(UhD!hx{sw$|K`%Gx7zP%%XX&a_5DkaV zcAqY`{wPO*9;yX57H6Q^^N~qlx0vlL4mEvad7w`MQ-p0x@J}B(r?h=b9VA?!wYrgv z>|yTHQfTF<9Y=q#Xb3|iA~E(_aYmGk(?Q>LbCq#56klKq-UQu#Zr5p#qGkll*&56U z@^dsQGGPDn^a{B5>=^=NPfbbbhFl6Vye&8y0=Gy*s&MNZ;Y4ZdXwSaPd-CMz(-Y9I zM;i3u!TMPEx{y0iG!DInwm!RF5Ls93UmRVJTHD$@Z`>dRMSzS1rq)QcqnsLN3{(l! zDZ)ZS^RX`}ckC0r(kG3UPdq#dX>I49tsk;FsnZmRH6|1^G%|#er;AI|vv3~BcqmhZ zMMvArwH|2r`0*EV`GHVn3<^4>uD&okE84#Xy3D<{|C8p^;q#Rs3v2u>F9nD2Z5AJcFzK_&JrTe9;QW#AQ(y;?K!PML}DaI zBg75)4~P^(n+X1zJ2XU2x=hc_iOq|8Wk7)ifWiv4Dw=~XA&N#qEb~RrRw7A;v@+VO z=d_Iwr!+h!1lv$~x{6Z<9)@=Lx{ur;*R($wUe2So1jtxoTYYCZ4RKT?z|c?O8Z6Rv zocVp|q_s2q+>dYH5YZV_8G9k6cvcEIixU(B6B84|!&a+jfd-vLOE5ejV6jXS7Ez{c z=$3^3EEH5!B1a^pq=;^+$l1dy3!#VSs=1Pje>Dzk`zS z_ha8537l_*SjcEbJGXw03zj}e7D~{uZF&aVBuBB^fN2+T>;11%?={rdn_F6Tefc72 zSgO(NLCAG2EXX)~^{zbi1Z{V)iJ&DZFDK_u!$Bz1?AOlx2=8GDCl=Zp-eVCPg~-c8 z-7q>iG&hp|{Z0g0ppbT*s#cm>Z0a2lRqr%XKZbiqSDKp+jLT+$Z#7Cf~dn zZMgFxE&!=isOHL11S|c9eT}|P%d*Y?+c$GAUwo@T7;P$!M?p?M+9Sufs%z^l2W&AM zJy5p!gyTp8z#JiN!oUE#f<7weC_W;-MzXQ2+>Ut2gq;{&mTg(J+W-z}bu`8O5pcb9_A8DVVr@W{}d87uKHWwKN5cDj6-*ISo!Qyg1RGz);K+smza(UOBqYkv90#hV5a2w?=&X!x zd#vcs!oe{$ISDW8H<1c0-o74vW@!r0f|juK=MR)@{d|3y$UhOH5qLNmaq-Wkr4}wO z&(X9BIJCQa`AGdK;@MuZoxSuX{qf`O6x9e{+W+Y7K&9A^76%gqjN$ox!@~2Ub+1|l zy2^LpfNe{{hJUb7W@Pv>?F%^TGjeen@%HOTEgKRy7dAapL>|tB9iUH4-x#Wc2M>ZaqF3o!@ISA5Ni!Ob6?g@dT##eN zs;Vz67epsX@EXub6AMr$o0@ooOYs+PO~cUF)YQO|KwBp@LNN$^maN;;!*sIH&eDi_!1$-@wIpKAaDi;8@&};ei`*>$2>2W%tw;@AUj&ygk}VhZHap*oy%VO@pv z^ASI?L;(ymwiZS?;QsylK|yG{aRrPe6O*qn93w+R$xhDeL-g2IfpdL<>cw9SdPDpb z>4D~}4?7aUw!(op(vs*SmPLGtB&KngwxO{R#&q5I3B#figa`z? z=!y)hs*9f4Aj3eY<)AN8GIj8UV&mc-W)k`_q)Xx9x6tS=5#*gLJeRdKK@~jZ@)@=T zUZedXCQ!NxtUq#(=@R4=(h;=+*{Imq@u?{x)m8wh9B$vj3d`TeNfF(R?OPH~ptGn_ z^8YS81FavJm~ft^nwo(cat_h9%kQFudJv3LG!}1vXDb}e zgRP=K@ezIjaX$L{Ejgs+tA??$yg@_8VB{us$UxH}Ez_*SL zU5W|sJ_G5@h0%^vPj-$D3#G*BlyCyG4cEQ7&(c_s1j7y_HXAK1Ehi@@=;r^w_P#tC%l2*e zX+nlVNTd)ENfI)ZBx8okEJKEjQKm9Qp;ROy5~4Dbc`Q+xGbCfCQYeHXQ>J~~&%1x$ z_pNWOy}rHoAA9Y!*S3D^_r7m=p67n<`?}8SJdg7@juXi>?4WnxSOkuNJ1S@lf-;HJ zoy_*ndLwnFbU!^LA2juP$q}xLBTLUyQhaf}cwqS&D#WiQ>{7i)kMVHUmX=JgxgN#& zuniMwVSv12hi&0o;#cJ8B6e~WRH0T3qz8dhtBkx; zBAk&AGOlAkqx@mJ_ByFy@)PjXm!?O;RVVo&wL6N}_Ar|`8NT!ru%56cgNd+@T)YZm z30~NfbKd{aDpC(%iU|LCs^lG(z%Ax;nv9;wiRI2koIVTwqY6f%-T0?akI5Aw<7KJZ z>YoXfHujbJf3eT*5IkxUN#I}GG~M9(K>&pN_SKsmz$8a2Ms7erx zyZ;uF@5aTm&H)F-#odueJG1RXEeo!Zy1yyDdx7Bu>gDAtK%1LfQ7I8)fjcrX50D{O9W}fc5&emy z;qKkLj~vP2UnTtOw{Kb60t+PQ-V4oqSNUMMrhkc*?g{`@KU53&D%aT$oB zth6^#{KkypjDND33j13I}M!6^XE|k4axMicPYI& zfRxS`TZvoZ5T_Wz$z7y>SYk-|U;4j=x515Q2&M7Bu` zM99!_zD54199dNgd9Es4M>3cPz^wA5Xn{5W7DJNMnMvkew95_3@neEYC8}E_6&4m2 z!{z+A++Emb*rdRk_Wg%_76PCR11&Mc9tA|?3-Xe5IM+l?4)mmq^GQUKjz}M9eIZ`b zg_r`dUD%`%LlfJwfHQ*PmD`d2Z=v`aHYYYU5{luup)hiUNOiumDGRfau>aoM{z6?e ziEdhczKcN|BDrn#N8;V(n3-rW8Xyd5yL^y3M*AW2PJ_?`e^bbWFpA|OAB5!e0lEDv z$8cwpys)q^IYB=2&mL;nSG4s!h5%$|J7Md|%dgKR@A6E|Tn2dn1aKIWhI1Wb;J6h&o~F#}9ow31Q)ExS|=BiWAq6b5WJzEn+sd1VQ!ci%0W% z9uE2$72L#MYcU|jrsl!~ASV?vy@I4oS*=Kgnh7%sgaUrRrHyj8x7jrd&n#V|PKPtZ zYvhLci$qpnG#EhSBj7(^+M;$k`3Y+Y;q9c39HHVOh^7C$;Yl0<=s(+7TLYX*(Iz$` zDFOFY9{ag=m)HKidoQ5&Q0*Z8oMe|gRJ08PdyuJ2f$5Foe*q2DPrZV3a(jrsPrZ** z4`dC9CQwlVltQb5;K11LYejoH+aSND;h(^F@$4ZYw5B8_8GL*YGD>`ELc=~uH5cS# zFhqR#$D#GDANce&%4-<(qbw~c-O-UaNSpno`!+*9WJ7aNQ+V($j2NEL$K+Xwe8;5CdD#cI`*CERaP$pj55P8Q$Kw zv0icv@%aZB9W3%_%}BExJ;6#({|j9P9Veei_=rByo+Lv}q8EbSn9<8)CjrgWN@3jNgE0zgSFGodnp+fxe1CQvtT?Y9S3(%U|@fMN8($Z4@ zV?Jo}9mc_d7_El+huG@At4K>QxhL{v9q?(Kg-8K?F)PaB;D!0>oi<3%J7%s{H$PV^<7eR~Y zPSedYJgKC#mG$5kYywf=Fl6k}(X7}Lh;}qw$Y2p(6N7_;!PHsBkXn%!nwYlz59Jpk4U5IMht2*qYInNspUCMGU6_3BV!O#+8% zTo{IE0h5gM69pAco~#$WpcKq{dip1lkP_F?kDqV;e0zh_4Qjen4^4}0xp}gAfY77)vEA8xz4IZ)MeV+N^=gESy#sn(1;1_}n=KQeqvnc7>jdE(!=gPs zJT7+U9M|xdr_$5wA}G=bEI7W9anu5KMVBDvYk-RLV0CZlNB9sImZTpfXJbEPW%$R_C(Rl|e1`qc zbgdWC0RVQlu7L8OO#Dc5$Py zi`|{?w74q2p1K|)V;e^z#_SUbzz^wd#uTH4UD!6g&Uv83WK$_y3HbaugI8tdmo*M?|=}%^@bj!GLodZHY*Fb1+DdH5X|FqVmU_ zESxA4pDPGxdc*ql*sDm&FeDpccKpkiUsc;Q^-~y$Z_=s6sqLruj4*=6V!?33nN!D!<8u`t zywG`FRFxec8$&X2?sU&CMu^LR0~g#rKDJ- zXTih=NJKp5>K@Ga+EY>WXI(Ym9$5F9p&yEUj=^ex{fH+IAA1~9W_?`575J&6cDIa^ z26|2`C%iY&q0MwrBEF{I4u^k81_D+%%@-CHFwJZ0*3j^mx#UbDv&HitFhT3tK`Vj- zOVa+&)z1GSDDnSa{_ln2|G#zr(^%I3p=C3ty4{QpvG5q+P8`H%&z?nH1W4p6s8{xd z!?y;(9y`dzbsh!s$jedJG9pDn&5gqd$T;dgdxWHucTop_M8_2AW&{vzG+)uo#m^lR zGO)KlC5%U9lr8-bfXKT@%vRs76Vw5u zYQVLYmgdo3t*zxl831%ao=Qon76IW3zE5V?Ds)mb7#HZ`BD#(07{R!U_f#d${ttLD zk&z+-BF4xEVIT@|t_|y^c8vomy*&5RfJ*_P#oyl_s3(wdkHNQ_xDYD@a#i7T)!P#2-`3afh`XK;RL^V35l zD!q4aGIDw1(8)au=oRbofzuGm>FIKB)Yi}{1mC+?l%G#SMa6p9<^zGS)|Zhj|Lug0 zwgiB(fXW?=9KHIpHS6TOmV8&}2(ChQ*ZW#@Ns-wb7;HyNP|m~z2s;Su{2uOv-znjE z4v=l`FyTKArXa=$g7TnWam`1~kswMXi02K)qD%==6$qj8yQnBXWrHLdu*zddyR`ztO4R#jKa!u}lX1uQ2` z*;#EA?2y@Eq0JNQ3g}Q#zVxGn5bGzFir-f(UX}+a<0B(yam<6fq+;@C7(lc5lfRAk z_14YK%sk++MXHSVM+=-@9xZf&Yl;psDqNq^?Y2bSc#}>|*6JWD^vOb80WV)Jp%*Qv zXIV<<0WcyFc^e*Bp>3O@qc@hV>D9qNlw1>V1rQc)dD|pPEZKG`yUhd%9$oJmVT`7~Bj1N5Je`LFPgT)cw-{K<5cSt5c_f>CLfN zrjMK#3yXSpo1Ae-#1*kIF%b%UgKKf-q2@&FN@Z@J_Ih>emJ)J&jg*(p!wsNOV2;58 zev9MSwPoywYuBztmY9JdLN6cw9M%8oT(1-6hd6s-jS}Pd@WH5-2#u!nmF8)C1fUTp zjG^hiPye>Mns|Z)NG8Un&fAdx0f{6re7S8D5?`V~1iy6)>%jyxg_+AWa@Q#mPoVI| zojK;5;^HX1Fb_yyF%;!RtIgN1U-2Z)lxCEcl{HX;O>#K-xB(tFu+@D5$PAU$)bfYy zq~eHr3~e%JHiB)khnpJ}m_a}LF%Xx&ql-KH>lfOZJ*cX%wI3h0{fNT>y<^G!`!fxl zh%F#@S%5kq85F|(E%#9^m<_-9GCa&1fH}$g+-_BV`C_*C1)+?8{tS>i>@t%w*EEyt zsovr#;KoQ}b$tZyvS6rm6=-W9mzbm6n7+r9n@iAlr$8S;=Qa58CE`ow$cnR5A&g5B zC5b;J`}|))MU8VT_r65(XojPMA>>A{dG9U}hOJknkZKd8Kb&5`Y%qA~G71%JH@z3n zRcGeru3`3x{D~8=*(dZasJ#IaXjA=0SQa)eYj3C~e;nImx&R=i1QJAW!Ejogk*+(Q z`*CYU{f1y{(rLTcY6V5b2FmI=$^D}U@3L-V5iehQ+1UI*ntSQHCM}MfJj-tg(rV)9 z*XIyF2fw}egSIAdP=F=rHTX8LvQmz#3YRvOvy1pxv4>3*Z?SLQXH=sMPa67!2UjQk zo;VAgyDHG-K#d$gkJ41oT{ZkUI5IR`-abC>doE~U)aKr)paq}>18!Z$kr~gUVTypV zvZ{dh*fC#(CtfeR!XAb_io}xza=zcap}IN=5m7z}JQRU60vMK~v&_G)MfLmh+NvH^ zE-DCMEYU^4oMnGkZIg;??&z2$NVI*`pz+Rt!%0J+?*uFjw=^0WtSpa(U+1~1P%K?^ zXlZWV1w;}hFC@?B9r|8*tgCAQJvTppDo$_29t=<& zsPOf5bbLW?4#hCOn9%qz&i}_~XrbTmYS>H#OAv&n2npJs#0?)PcS2RDe8}l%&YG>f38CT1xRku`6WS#1zH0=GkI_T-HjnwG?fBsn=b@Cqy~hw!n0h5#E9u*We?q6rj^wa1t?VO5?@U!~_Q$n-t(1_Y>$Mfs_z~ z@jazmH^wLyrcdLhsfGW+(}m#4*wGe+GlpgSamjT~{}&ek*B15D8@!hTNFu>M0Rvv)Lis zG%s)||GCb@43M*v90cNF#I5r6{jY_jTQ6eO>mppjqcYw-GiG}&_FVm4S@UptneLgB zoZ6e)=?uljdhk?qgFBC0vAr_=A?@lS&;=R@Z1J!$`4)@$HU5J6wGx?^@2)0GPIm7<>aRw z7h9h=aeuoo4&MBafp`^3*NWE5)1QY@#-E2a{JF&Pwnf?t+uIt21+1@XQJug4T)uqB zOwY=yYvV@wUJ>i&ok?UuOM3Jhp4J_d^Fuk-Dj)Ojn;NG$FI_E_Dv|2Z-N{4l<7-t_ zj9gNccRI+*bAIQCmvQsy)AzvU$Y8+#J!5b;Y&vF2Et2Oyb;Gp5K=gt#`;+v{T$)#o9F0Ry|GV$TZ^8kkZ-eDhN^MQ$+EcL>A$YaKDw-*-7XpHUi{7^ zvcF}$%BMwP$F*-u$HGr32|xBKJ>Z?QvL|jO%iwkgA+0Bodiie2mh8 z>#soU8-tpi8q$(ewqg$(2em(R{CRak?<3eP%A#)uPSVSwz z2i)dUG>PNF(;>NzLvrEwUuQP=InR2=iKs#c50NCr#s&2xj}9NyOqYq^j=vE z!-_ovH}8?f@%Govb3Ll2rk^He?=%f+TiUX;bDx5b0LicHRnA0c-p2%b?w@vll`2kF zTy`2i(;`qz;*sRT34IkK|Ekx#q*vYCede)oW4|v15 zV`!5hZTRt^-rj@DqIX3PoUpFn)aFd1Mi=0l{r;&C%i^imJY$KvWUIe~WWl+i_*a}M zGPm-dhE8-`F35lW*olMh3ZGX|mw(e9VmZs5->W&kA~>=mbjrKqZg1O>liO+B+5Wg* zwwW5AG}BuQRJ{Jr9r7EqDjSSH&gkj!q`ddMrYZAXXEwcWhbQy2I^D-M7)ce*xP_i- z7I7)eHD(W^NMy_;1||4Oo9~^{>6jd=7T1w@Fu(sYr-0j!n4G7FI%zNJcP%ysucPaW zo6Nb8piAB$m9f6lCb{Qji9K%0Y$Ouh;?*-x5#zLT6aviEZ*Ruak$IB$Ox!SuWx%aBoeawFuWB`D&6cL`(jHrlT=x3e^yk&vGL0?eF&@EV zU%uOYq8RQ_GRaJ8e`S5j=ZeOz4{hP|q==i=*iL>Sy&R90`yK`b?2og3R{Z$e^ew4- z<2|W=Ck0nlh6X+_{j3k2*kP0|J+-6wTgDA9QjRhCv)&iQs@G##QtehQjvYtL{>*3Tb9hNvl*?_i5+%7 z3)qCb@KiPvUphgiEtqe`E8lJONuA!{`!a)^Tm=qm>Ft!#9+#%3HeU7WZ*F+Cjg+cG za6S^)R_r&nm@zIlu(o9|)_6Rg@EKobiM#OH#d@u5*MTiM#_LJ#TZp&S+A&=jxBA(_ z(^t6GnbN{@WXJB_w!VAb$-SBOV%2(fk68Pz&Q9fyWJ?xF6?1R&W4lKzoYf><9$A`M zyD`Z`uW!QdzP%s2v~qT~*Iy&2gRiNgDgzbPfCX z|E`8U4^NrAII%JjFxhd%o|L-S9leX>XQ-L>e7;30R+XomdU4SEV~mAfXiZ;Zv#_&E z!FWge%&3Wat^38g1`(1raSd`!R*dF*%MvlvPWz*1zjFE9URjbHFZuURINdk-JGh+wESFbPy*y)a zdd;;!zGt7{=ni%jPm*7Z|4Aznsp#AAA;dd*N7KbiDXOODwz!4U7oUim4UgYBri|Yb zAOc>cV(h(^pSgeTKiX~27II{gbH46w%wSvVv!u)H=D!IL|g!0UI}!X6bOj_cuS^>%mS#)2$j<0q zf9-tb@V(Lc#Ab~QG5qtH$8?ajH z^{Y4$hcmL~`+T~Um}wOU-w&YYPR;0FmmTlmUH4CkGbdGvo>dQMr?K+ z$!r^O`4y36OEkOwi6TLzWTiq?n)0k&adVa zUG(moOhD!5K(|D{-p_DZ^g$cv4xYp)i-C!KaXLpztYhobT7!DSG`npJlWClFo8nYw zS`!7=ilxu!{mH&8Z|ybV^{%(v^NQST|8}&~f^hXkm9E=o%|#_cwodD8_PEp%JsB)2 zY2W^u2DyQ0>>ZkyG4a@tu>Z-9D9L}4z!ua)*JM{FJQHHjxkNfiP|lWCv8OUGSewx{o={J z7A*Ve>~R^+%JJL-A$@k0lj{rdmIzI~(TAuL+yxIQ=g*(hpEh!Bt#}X_`tsXNrI#|@ zZ;B14Oq}19`wF+6si*5y6DS&tSKMXUCP__DS)1ZFaAp zFr6DcRd)!9ZRH3eX1n>4a6fC_-o{guYh}$*s}djj(-!_LoUwLhi?VHnxuABn@2-%4 zF8n|n_ih{3K2%-Qg9w|2-F&q#Vy5m#CoN5$`}%{^_n|F5k{?SfVJ~vmt*t6GtuiX% ztB%{JbB~ALtLfW6f2P7%g`Mrk+1qTZk8097qK~Fqm)W6>E0?9nxlwC&{~Z^K`m6i< z2P`%528SOCSB1N0B`gqNp9mPN!5oCAyaMnTPK52o}p7^B6D9)-)CFH2K{0JHIyF zXTH=Iw#DvmH8`~6t- z0+E29T>D&p%`J9vnJ8Pjcdh5LQ?b7M>x0zFAgC2*pD{ofj7Bxk;=%bvKWV%l~X5h7}4&S2@n{_Sy zQ*m5luIG-)Cs(nEJ2j=$SvSvQ2{3$Doy!*bI77XAiCYFfA?6dv^ZS;1UWq*q;U@aV z?bO6utmy5OJu`4^!)HzET?4PL*IPIj3O3sY+z(!grn&nqw(rFsX~Y{w>D5zzr?r?tnQGq4t8`~CX_NB_==Oar1Zt2Itfbz1PzC(nVV*2(imO zf!6@U&@H3Z4u4|?=aDwMLLdmLUF)sDL8azGJ3r#U#)c20uAb!s5KA>TYm6Eu_yME> zjh2#4jCFaw+yKp8q^Ec~2MKyh&;5`Z|nxHjH+fRmIzLWTC1_lONT3X(`IX)_%z-nr0suB)O=*K|09YFn|RR9lP zb^Cg&5`asKi={7L3K~;I3_`+$Vd#WrhD$4&V29chON7Mlx9=J8&;KFW{=aHa62hPq zS2~hiDzs^YBoaU{y7j~Egj%1Df)EpCYO!YSft4LdZjh3Su3hX0bdHz7O~(hlMc{u& zq@|6rlVT<8S#FQzd(2$mspsNj0gihEEKqc`@+nAYkQZzX59Mq)rekf7cZBjc*n)c%#Pp5;kz!Rs*f*5P#vG$gQWkVH2Iq&mD94FJXP=lFfY6nX6oSk}PWS4LX8_w6dn zYMtE0^MjOMun^^gfVWK?60!ZrV;>Qe4p>R+4ndXwlxMYpg7)C&2>_Jny@7EuG*4oG z0O1ulosmoH7SMfwXAqiHS*bLt>d!<2Zfdvj4KEbpisrT zfIpMGypD>R+7nz!$kiBk?{>;kJ#9?b*aDfyTJM^gPgo{zbJ7E$7aC zj5=`rYj?y$QB_riPAl)Z%Y_Tcyt2@D!BP1zxO1SbeD-c3`nSYTcu@MFyT5q4G}R8& zI#^=hm3R%XT#XdL;>T~yFgsfw{3oJe>Ffm1^~(G6awFfr^94XGnDcy>_H8tX(6UkU zgwu-tk*iD1(o<-zOoHkrzB2NV5a*)ZLdc7ZpzSC$6bfZ9gwRY;RrL<9EY>+RXFMvy zb21?K5!w)7s<^U;y`QFc??~O!@!Q^Sc()&P;^;4L=E}>@7g|;cU_(CH?g+u(tBQ(> z#dT%Be*HoWd|6uRarNpENl93XSV2i+wW7hP0-ntSSe{i}8hqY_usJ!1SC4jc9m119YGR03y6RTTOZ9o0v)(g z5S06w1$85qrlfdyEFry}&V?|Yj;j_;Y8Y>>2 zo{)%s1~~{!e!&bEL&F}T$qGRrh8L?*=PWBxU^d1Yn^xl1N}L2B3&3&M1W%Mu*Z%l0 zi07R-Bz^q`llL`-N)G67U%;D!{wunGR# zcRa)6YKWSE08b+&gLo~6%vG&b$Cy!3;ML)~Nf2eCGauFC3tb*q;`l-jd2B&49O+_8 z>kFmTjvQMMtDN2{haKRZMu6HN$m6KNK46e{z|o>Qz>x{p`*vMCu+XD_QhTQ~yfv1m4WRN4`p ziM0(9+o<@kR(xL)dlNkqoSs-F3IoiQ&|-*)#@J{pl+C`mb^&XecB6ADip8 zfQ}d6-J2qFkC<2?&eo9)gShOWt#TmMLi?G4C*^{+3u0NM=pfM#nKcC=4(bfVzainK z@7Gn=>f|C*@0o58__Iz~RW%0ALTG>n3!!;~27(iOW;rS(^_j2Jr&^g?Sbz|HOX9P4 zKKh|GYb|=6nm5odQJ@+G4W)+*&h@@)tIl3%;oGiZ^UgwAf;*3HfrtqBA)n-fpl;>c zyB7`*qB;yzStB^t5)%`ln;UC=cI)>BEnQCdngsTpM?Wcfg5b9Hy|$>`(l&=+a@Er_ z9*=01gkF*n6$2we=4 zIdP5Z5~NU3tG>gPLLddS-vD@cQ82wjtW6K}R zQ_XX^2TSX@oxfSv5*GLpw zcK-PG4OEt^Sb^bP*?&T5mwmnFIaoR(SJy3bq&+oT_sq}FHFwhd1ikgXr^lJZ*tE|{ zpFSKaGWT#dW3}p6yG%1DmHmRc8ykDH?&RG_c)EVQ>NW-X=XAsKwH|Xv=O5kRe_Pi$ zKeIj7t7N9RZ^QiS*iKgUdDdUKbaLrX{%kw#?(S|eu;;KSPXI|M7@itKm0Q!U+yJRF zJw07@Wjm+DCo=?B^UY1vA$;KR02NdjjJcxVU9yWmf|; ztal`$?H&}DSWyM7>!=Q|vKyDCIzgPzCsj#rHuNVx0zcVeziXA>Z z&CbTJEwwC)e>rPlWHdAHA?-XAlo>Bf(%SA$h z-Ki44yO_4rrmWU4^dbpq3dp#xy%!I$2Q2u!oNw^kLAR`j(sHWGVrwWO)b;b z*esu2IV>iYk&(e03TZceSYqON+3!)Y^o(%FK+1z}c)LSkYvQXM3eLh?2f4X#aD)U0 zN60ixFikHnx)|_9y~;!{vM1kq>tmBMT3QLo$u%|G?u3cGW;!aJsHJ?!lM2)keadFy zObLbCLoNmV&YkC47OO|-@pRmwKS4nGX@tX?j*f0}ss(oq=14En(_^Be7e<{nAEhuF z*3sPxI`{?#5HVC`8%B0RG1KL8t$v@S638ItizG_DRWgtN>H6ym7p`jrd*t?`$Q_*pL^vD2qDPSjf&5q4V4y-%O^0MR% zJ85Mqv{Ffo#EoO+QFgYlz2UDw`>|RQSj|v?fWLqs7P3p07~TNm7ckzCvA(zVr2KH| zpe2*sd1e+CMg}8EIYzEz+dJs=gU>+#_u7lhZ{Gx^T zv3`BI6mo}pNO}t+P3#8N_g`g#sWv||!!G5@&oDYR=Ir(1_VJ^?cvCCZ(VvEM+aXcW zaa)o?0TMg3xm`YwK~}N2xPzTN-wDnQ@kf2ikjp^5dgl%`bX}-!&9^rQE1j5JKP%yf zSYJ|BHmydGX$%b;glww#Jl>NQ?UpV4EH}`5(So#64G#-AX~ZB{+uBN6)X?tUz1xv( zeF0O68Hsuvm!?qFbeR5~6lICs832eO1uk!M1%f860wNN=(I=>+JTE1J;MTU~8;yTuDivld<_O=*h9UbP! z$2y}aDm&>%jPfjRXEuZv)85anAup) zGpPINOx`_41}}3`wLe9|P>I?(Uv{|-TG}=wzn7%L^o;VPzz!Hz5LT%7Jqs|O!jz6_ z>&raE;xpDu3G4V}(4tvWg8TAmTN|64M;10DRhrOsALNv&)-kad%|3pt#FLzm;77db zid9n4y2GSEJ>LxpYwEjBY|t{JE2Y7E9F(Du+rY)OQA^)J<#%J_DMx*(&nPu+D{E?Q zy|VsfH5-Y+%FlI#L|3)j8!St=?hi1wbB~ ziCaKO$Y<{7qoGzPmfqUkrw(~p^3(9{`9L-{wyQg}wILt7;B}&_jYQ?U5pP4Ie31kv zDTnW*!=z0&Ye_boIIgJe!IpEd`h{%xHU|dRgocFha%0;|Do`}N{qW&_|0pjzN$2zJ_xUZOkTn61chHlIP*@q|C$Jw~2{u z*M@}a_vzR3XCiX|zvM;`h%;P8sjg;b3CcWY^z>k$@ig|S|HwhNF>P*YI=Yb1(C<;V zZr+4R13lrZG_-BUVVX`7JTJB}F;xk-VA_%Q!a)Z0co_qAb@cgtpS zMC7+YDH@MJtFGRJa~PB{1@2bFJ;cH#OmcV->)pF&B_;YsMqVhArtdMt+<*A66Q|JaAISBw)y})rKyeE44GRZ{x&jQb z?icc{PU0reOf)7mH9Uu~A zWKtsm>gnmpGz8bQbdqz!27l-%M`)R2ZfNoIJO!DqAze#f-^Rk?-GQ?7bb&6`_Kpr= zlULobiSlQE&CKk1irG?i=~_lc(x|&9g^#Tr$bm-^@doR6ZTONex0OqdrW2gZL@je5>>Dk#5T6?EbzEd$j?WW~JT(ITnxgN*mouCt`fb?r041M45Fp z0&N~fTYLK@vVOijFPApa{Yin4qLLQ$pk$ya_y|WV-OJr0OJ1Z;5 zQ4P{N@B1UoWMW})pX@UL6i2-3iwMc`xI9@?PD*%=s7`=VBsmrAX7ayjok1WV|62qT zVhQ<&H!uK*E`I(G{8~i%D}q0^z*JpbjRIBy9s&5#(`0YU?>P#|BRy?flkyMzSp!Z)x9!z-+zo3^m{2L3W`wWfNa7M4*y z9C0q(RTp5nh|TT&&L$XANPByGj)*YurrU@36oM)^Gy zLTwHBar&P8Z>(a#SjA9(Dp)!=EQ4KGFBlFK5StLNk)({w@&ipqm@GjAfRmzyl@+5T z1Be@H_zHCZc%sS!r}<0pNnph>wt_ARt|N$@`=)}}csV)Ez$Sz??EV!_63O|dBs#hu z@({SSb#;+Lfzw!I7wGFM9@*D-Zmt@o{SbS--?|OZfhs77i;GW(Y$VC8`%;76j8HG| zhTGtWs@}`*i8yX-%&{b|qtm>mE-oTM7>t2w2-!N%XJrzJiR6hTkYF`4J4?59YXxY? z={gxOuR=C=8&c0>xK$0!$lDc{)v$ho9 z@(}d^6BCU14D|I=k(iB*jlpRpDT#NMQWM!RvSbji!;~%I!t(Q{3~EP&pkL!b3Qv)v zFtnmlK5%jH~Tq8{e z*ZG)L1Jku%kkM+YsMI$#i5)&%P*g;?=&fy7N7CXa%qWED*$*o#AU{H4jH8E-d+XM% z^)WYZ-c&g3yXyU-s;%uo(5v!tUO`-JOc0zp76QS{S8)CF<1`Y`++G``jk{&8UV;Fl zp0*a5q%WiH)vr~X=f=F(UpGVY#~r4;KN|NBIid2vOQg#t=gu`|d;I=-l6wsK@a4-Q zT}~rkzn)pM=4ZSO#8*hNSyxHvJDAny3X%A$)ex3gp3Sc=e^cbf7#eWfA)9^H-2&?5 z60%(LV@Tu=0^g|L4!`6(ckh1dvMk-n5P0*Zb089?Jx>YrP10EbMqEF6P($|B+B-TP zaBuJHi{(gv@dAhR!(gmsANQw-e|2T%!>4h{f3Bgi(FmX_eAg%JW*Al}3C9DXtcXJF*u z`2__#VJ!#v@Z34VjuTQ16oHTou3~ia^erzw{3$@jy+dOuplp+I|H;ZgG&0befd|&+&6|M)HP_ewo}0t> zzpyzcEo~H99UK#$%L|ve@!4l}bRs*F>Z8KL2`YbhcsO{&$bxlsboxs!?*Wns00nax zV4Bm})nzS)wf^(x&u+$KB=}&ugKP{zqbzO&_8(#Y&dx44r=seHg@Gghr+&*LQCz`M z>>j|ySZ2sgDqv8km#KeT0q6_X@iHt1iCY-V3aL+JQYO$*smotC5*kY2kJvKU^c0&m z;jj|M+@OJh_@p@Ws!tNtA*nLu%RGH&M+bsv9E(K(E=8%HSIOtM;!hTHU^T*WwvJpGK^{iAi&$wY7DAZUQzOj47GDHgkW~dl*P_ zhLawQ+&EtwlrWi^&M;^@HwZkbVGP!xA*PEsOv=j26b_?D@ggUFmpr$#yZeEC`vx06 zmwVOTj0D^|)8b%m&ONsS*8qBdd=UIXo3kIq$2XVx5(Y+ZB({(~d^IB&s#+UycThgB zzs`yE0_O_#-;4ms|0=qN}JcWXSLZNET_RHDRrzIhr0ccRdh$9W{ zIqHo!Vq(}1gq9JaDs(*f;gZ(V6O*x@o(g9dgf1Ei0N9zNOO<(Wv0z>UkII8Z5o!WL z9DC%5{@Jq+1W`zCrKaY7igsL0cAKd4P~9dPmS1YX*=jH7;rZo8stF1Te$oiX!huD> zkRCi4t?yD8qwohdxZ7J2@e8*S*ylsR*3QlgQTyQbx%$Khu>u1_ejgCDFgMQwu1@qT z5ZEzVj+9VMPDQBS!XyE(wu0-gFUQl`2H5H`z}Vrsx?|Ndq-q(BTRJ*B??i^OiK#ko zF#-;QH66r%;K04eWngQ>Bj+ytNymW0G$aU)3_RPKfrRE>cjA+hiV1=kt4Z@oG>)I# z!Q^v#-}#K-QD!-aCe7{Cr%!JTU&Xl%14sp)hjfPsUt-+;4gNb0+uR>AVM1cYJ0Osj z_hWQ4SC}x#9~-kgqDt(i}LILY}jR#+Ie8kVTtkq#GI-i17sDw94HX z9HJZ9j%vEDu5RmGx{nr;2VR<`Kcml*llL;-?p}npuylK5W*=@i5*h5^=Ui{}4Gph3 zr{a)=)3zJb4FKG(t*!bvIZdHiIy?3GNtPa_;iaN{fhGw#DA6E;Y6V`9Pz#naM4N6A zcT*34^k@eI(nv%g*+6l-p@bvxymBPoura|}Y*|yf! z%cx%Pd!4PVwvF}cNUu*338-8mKwIG3t1v=C+}Xyb;ZXN6!h82l{cdHPNp>DqR=fuG6eyS*g=pj1^UxVX$fHzR(MHS?>S8wzjyH0a;6qlfm=@ zcqSD(BYwidPG0^k->t-?q-u(&2E(!kkuJZz^H30~vB0!5N5`mpu~f(XIR*N;EsSq# zD9=_v{e*zrCmKEb!GJ*tyP$HOB`VrV7hxuj3)A-8=HOQft$y;DOBh^NPUqA~mBZqRqTHhjE)h0>b6hU607O#g<@uiC zCWTG>Nk~sGL-UQBnEMG)RLke-L6q&Nhxa^15{WiQe%Kr3uf=qZ_FnjyYjI^|QY`*J z!lHJ7u0Y#J)Ns|7R#t@o&(LpHnZBQr@*T=Ldpo;x#>Uo7F+^Jla}|IZBiSbMaip0} zWvSgY6tLN4lXA5|GK_qX9-Vd_ouuSs#1`?@EtC*e-F^1V0=AoQs(`%(kssUJ@7c5G zQ%M7QKERLKhu{($B(4jo=Mo{E7HvWV%7iAE(m)Y;bmu|Bebg!300~H-H zU~9_Av4Q7wPcmS20ZACN(|`^OP&#~0aJ->y4?pbo)>g<*&!3e8B2smzrX>|AAry?b zCtk}7xvyWZLQXjG^XKaCP+!6W22m2>3aJu;An^AsG&B~X$D)LcZf*`BCHR5-M>0&n z>66QD0Dq}WDSXYoPIv6J@4I_)Ef5tb)^6fl$UFazqNw{e?rcRK0S61g`R3;`s?DF) zm~&gbC3i9z-Zd_~nHTKrpf)>OJz0$%2_<4g@G&tlH^^_zBavT@G{+g~>ei6+WrMJG z!cZez#D#H}#4j$UiHsqadz|jXkA+8erDd5`AU?Uf#eUS~|MwhiQ#*|7xRs;6!-|xNfi;IDdLrUABA^^)A19Wgr zIF@wLHl^cclewC6^QNMMgM+ei9WJP_px__02|abCwBLGqdZwk$!&sdF*pN}7tV4^W zk1a74>xF0UUe%Bxe{3Se>L`eR&zvDVSjiqqpU^(5c~yn~hxd}Lqhow{_!-Oshtmt% z{zRQOKE4%Zs7+1khkjeY90aaK(a_s5-bSQ`!jNdp>Xs%ak6_&>v_p0`>0+_F1klsa zErLUYY85D)w6yd!4-EBqTxNUz{F^629_TyaD8{{?Mm+#PA71lVhe)8Z)`T{Y3be?e z$rsUYd;!zk5{Wku z$S?Uvm3lK5`Ct6P<^K)9A;K8(!@m!>C;8|9`Cm(0qZIiR?e4Hw>>criRZeOsypT7$ G@!tRGeometryOps.jl

julia
module GeometryOps
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const y=JSON.parse('{"title":"GeometryOps.jl","description":"","frontmatter":{},"headers":[],"relativePath":"source/GeometryOps.md","filePath":"source/GeometryOps.md","lastUpdated":null}'),l={name:"source/GeometryOps.md"},h=n(`

GeometryOps.jl

julia
module GeometryOps
 
 using GeoInterface
 using GeometryBasics
diff --git a/dev/assets/source_GeometryOps.md.CEBUZDYK.lean.js b/dev/assets/source_GeometryOps.md.lnbjBCgq.lean.js
similarity index 70%
rename from dev/assets/source_GeometryOps.md.CEBUZDYK.lean.js
rename to dev/assets/source_GeometryOps.md.lnbjBCgq.lean.js
index 25fb44b16..3607dbb39 100644
--- a/dev/assets/source_GeometryOps.md.CEBUZDYK.lean.js
+++ b/dev/assets/source_GeometryOps.md.lnbjBCgq.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const y=JSON.parse('{"title":"GeometryOps.jl","description":"","frontmatter":{},"headers":[],"relativePath":"source/GeometryOps.md","filePath":"source/GeometryOps.md","lastUpdated":null}'),l={name:"source/GeometryOps.md"},h=n("",8),t=[h];function k(p,e,E,r,d,g){return a(),i("div",null,t)}const F=s(l,[["render",k]]);export{y as __pageData,F as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const y=JSON.parse('{"title":"GeometryOps.jl","description":"","frontmatter":{},"headers":[],"relativePath":"source/GeometryOps.md","filePath":"source/GeometryOps.md","lastUpdated":null}'),l={name:"source/GeometryOps.md"},h=n("",8),t=[h];function k(p,e,E,r,d,g){return a(),i("div",null,t)}const F=s(l,[["render",k]]);export{y as __pageData,F as default};
diff --git a/dev/assets/source_methods_angles.md.Co3OX7YF.js b/dev/assets/source_methods_angles.md.D6z_FLba.js
similarity index 99%
rename from dev/assets/source_methods_angles.md.Co3OX7YF.js
rename to dev/assets/source_methods_angles.md.D6z_FLba.js
index 012e4c3b4..474b384e8 100644
--- a/dev/assets/source_methods_angles.md.Co3OX7YF.js
+++ b/dev/assets/source_methods_angles.md.D6z_FLba.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h="/GeometryOps.jl/dev/assets/zhfsxlq.Dig-DWOQ.png",o=JSON.parse('{"title":"Angles","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/angles.md","filePath":"source/methods/angles.md","lastUpdated":null}'),l={name:"source/methods/angles.md"},k=n(`

Angles

julia
export angles

What is angles?

Angles are the angles formed by a given geometries line segments, if it has line segments.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const h="/GeometryOps.jl/dev/assets/cifeaqx.Dig-DWOQ.png",o=JSON.parse('{"title":"Angles","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/angles.md","filePath":"source/methods/angles.md","lastUpdated":null}'),l={name:"source/methods/angles.md"},k=n(`

Angles

julia
export angles

What is angles?

Angles are the angles formed by a given geometries line segments, if it has line segments.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie, CairoMakie
 
@@ -18,7 +18,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h
     - 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 polygin is a vector of vectors of angles formed by each ring.
+    - 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.
 
@@ -59,7 +59,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h
 end
 
 #= The angles of a polygon is a vector of polygon angles. Note that if there are holes
-within the polyogn, the angles will be listed after the exterior ring angles in order of the
+within the polygon, the angles will be listed after the exterior ring angles in order of the
 holes. All angles, including the hole angles, are interior angles of the polygon.=#
 function _angles(::Type{T}, ::GI.PolygonTrait, geom) where T
     angles = _angles(T, GI.LinearRingTrait(), GI.getexterior(geom); interior = true)
diff --git a/dev/assets/source_methods_angles.md.Co3OX7YF.lean.js b/dev/assets/source_methods_angles.md.D6z_FLba.lean.js
similarity index 73%
rename from dev/assets/source_methods_angles.md.Co3OX7YF.lean.js
rename to dev/assets/source_methods_angles.md.D6z_FLba.lean.js
index 4f571d4f6..318fe3c0e 100644
--- a/dev/assets/source_methods_angles.md.Co3OX7YF.lean.js
+++ b/dev/assets/source_methods_angles.md.D6z_FLba.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h="/GeometryOps.jl/dev/assets/zhfsxlq.Dig-DWOQ.png",o=JSON.parse('{"title":"Angles","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/angles.md","filePath":"source/methods/angles.md","lastUpdated":null}'),l={name:"source/methods/angles.md"},k=n("",27),t=[k];function p(e,r,E,g,d,y){return a(),i("div",null,t)}const c=s(l,[["render",p]]);export{o as __pageData,c as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const h="/GeometryOps.jl/dev/assets/cifeaqx.Dig-DWOQ.png",o=JSON.parse('{"title":"Angles","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/angles.md","filePath":"source/methods/angles.md","lastUpdated":null}'),l={name:"source/methods/angles.md"},k=n("",27),t=[k];function p(e,r,E,g,d,y){return a(),i("div",null,t)}const c=s(l,[["render",p]]);export{o as __pageData,c as default};
diff --git a/dev/assets/source_methods_area.md.CyNnYHMW.js b/dev/assets/source_methods_area.md.BVvuCOln.js
similarity index 92%
rename from dev/assets/source_methods_area.md.CyNnYHMW.js
rename to dev/assets/source_methods_area.md.BVvuCOln.js
index 97c3e151c..8f6320aa4 100644
--- a/dev/assets/source_methods_area.md.CyNnYHMW.js
+++ b/dev/assets/source_methods_area.md.BVvuCOln.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h="/GeometryOps.jl/dev/assets/zhfsxlq.Dig-DWOQ.png",t="/GeometryOps.jl/dev/assets/lqjajgs.CULn5saZ.png",c=JSON.parse('{"title":"Area and signed area","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/area.md","filePath":"source/methods/area.md","lastUpdated":null}'),e={name:"source/methods/area.md"},l=n(`

Area and signed area

julia
export area, signed_area

What is area? What is signed area?

Area is the amount of space occupied by a two-dimensional figure. It is always a positive value. Signed area is simply the integral over the exterior path of a polygon, minus the sum of integrals over its interior holes. It is signed such that a clockwise path has a positive area, and a counterclockwise path has a negative area. The area is the absolute value of the signed area.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const h="/GeometryOps.jl/dev/assets/cifeaqx.Dig-DWOQ.png",t="/GeometryOps.jl/dev/assets/cdpcpju.CULn5saZ.png",c=JSON.parse('{"title":"Area and signed area","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/area.md","filePath":"source/methods/area.md","lastUpdated":null}'),e={name:"source/methods/area.md"},l=n(`

Area and signed area

julia
export area, signed_area

What is area? What is signed area?

Area is the amount of space occupied by a two-dimensional figure. It is always a positive value. Signed area is simply the integral over the exterior path of a polygon, minus the sum of integrals over its interior holes. It is signed such that a clockwise path has a positive area, and a counterclockwise path has a negative area. The area is the absolute value of the signed area.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
@@ -7,7 +7,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h
 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 postive 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
@@ -35,7 +35,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h
     signed_area(geom, [T = Float64])::T
 
 Returns the signed area of a single geometry, based on winding order.
-This is computed slighly differently for different geometries:
+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.
diff --git a/dev/assets/source_methods_area.md.CyNnYHMW.lean.js b/dev/assets/source_methods_area.md.BVvuCOln.lean.js
similarity index 64%
rename from dev/assets/source_methods_area.md.CyNnYHMW.lean.js
rename to dev/assets/source_methods_area.md.BVvuCOln.lean.js
index 9a2dbc274..aa689e1f9 100644
--- a/dev/assets/source_methods_area.md.CyNnYHMW.lean.js
+++ b/dev/assets/source_methods_area.md.BVvuCOln.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h="/GeometryOps.jl/dev/assets/zhfsxlq.Dig-DWOQ.png",t="/GeometryOps.jl/dev/assets/lqjajgs.CULn5saZ.png",c=JSON.parse('{"title":"Area and signed area","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/area.md","filePath":"source/methods/area.md","lastUpdated":null}'),e={name:"source/methods/area.md"},l=n("",40),p=[l];function k(r,d,g,E,o,y){return a(),i("div",null,p)}const C=s(e,[["render",k]]);export{c as __pageData,C as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const h="/GeometryOps.jl/dev/assets/cifeaqx.Dig-DWOQ.png",t="/GeometryOps.jl/dev/assets/cdpcpju.CULn5saZ.png",c=JSON.parse('{"title":"Area and signed area","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/area.md","filePath":"source/methods/area.md","lastUpdated":null}'),e={name:"source/methods/area.md"},l=n("",40),p=[l];function k(r,d,g,E,o,y){return a(),i("div",null,p)}const C=s(e,[["render",k]]);export{c as __pageData,C as default};
diff --git a/dev/assets/source_methods_barycentric.md.9FZWAtEK.js b/dev/assets/source_methods_barycentric.md.Crjs7J0g.js
similarity index 99%
rename from dev/assets/source_methods_barycentric.md.9FZWAtEK.js
rename to dev/assets/source_methods_barycentric.md.Crjs7J0g.js
index 051ca10bd..9781f6cc5 100644
--- a/dev/assets/source_methods_barycentric.md.9FZWAtEK.js
+++ b/dev/assets/source_methods_barycentric.md.Crjs7J0g.js
@@ -1,4 +1,4 @@
-import{_ as t,c as a,j as s,a as i,a7 as h,o as n}from"./chunks/framework.B24clL9_.js";const k="/GeometryOps.jl/dev/assets/zjkexok.CZy9YIUA.png",R=JSON.parse('{"title":"Barycentric coordinates","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/barycentric.md","filePath":"source/methods/barycentric.md","lastUpdated":null}'),l={name:"source/methods/barycentric.md"},p=h(`

Barycentric coordinates

julia
export barycentric_coordinates, barycentric_coordinates!, barycentric_interpolate
+import{_ as t,c as a,j as s,a as i,a7 as h,o as n}from"./chunks/framework.CpnCegiD.js";const k="/GeometryOps.jl/dev/assets/bdqumbk.CZy9YIUA.png",R=JSON.parse('{"title":"Barycentric coordinates","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/barycentric.md","filePath":"source/methods/barycentric.md","lastUpdated":null}'),l={name:"source/methods/barycentric.md"},p=h(`

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),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=h('',1),d=[r],g=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),y={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},F={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"},o=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),c=[o],C=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),B={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},A={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"},D=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),u=[D],T=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),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},b={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"},Q=h('',1),_=[Q],v=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),w=h(`

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/dev/assets/source_methods_barycentric.md.9FZWAtEK.lean.js b/dev/assets/source_methods_barycentric.md.Crjs7J0g.lean.js
similarity index 98%
rename from dev/assets/source_methods_barycentric.md.9FZWAtEK.lean.js
rename to dev/assets/source_methods_barycentric.md.Crjs7J0g.lean.js
index f99c1316e..f24c2fa79 100644
--- a/dev/assets/source_methods_barycentric.md.9FZWAtEK.lean.js
+++ b/dev/assets/source_methods_barycentric.md.Crjs7J0g.lean.js
@@ -1 +1 @@
-import{_ as t,c as a,j as s,a as i,a7 as h,o as n}from"./chunks/framework.B24clL9_.js";const k="/GeometryOps.jl/dev/assets/zjkexok.CZy9YIUA.png",R=JSON.parse('{"title":"Barycentric coordinates","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/barycentric.md","filePath":"source/methods/barycentric.md","lastUpdated":null}'),l={name:"source/methods/barycentric.md"},p=h("",4),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=h("",1),d=[r],g=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),y={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},F={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"},o=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),c=[o],C=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),B={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},A={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"},D=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),u=[D],T=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),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},b={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"},Q=h("",1),_=[Q],v=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),w=h("",35);function f(x,V,P,M,q,N){return n(),a("div",null,[p,s("p",null,[i("In the case of a triangle, barycentric coordinates are a set of three numbers "),s("mjx-container",e,[(n(),a("svg",E,d)),g]),i(", 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("For a polygon with "),s("mjx-container",y,[(n(),a("svg",F,c)),C]),i(" vertices, generalized barycentric coordinates are a set of "),s("mjx-container",B,[(n(),a("svg",A,u)),T]),i(" numbers "),s("mjx-container",m,[(n(),a("svg",b,_)),v]),i(", 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.")]),w])}const G=t(l,[["render",f]]);export{R as __pageData,G as default};
+import{_ as t,c as a,j as s,a as i,a7 as h,o as n}from"./chunks/framework.CpnCegiD.js";const k="/GeometryOps.jl/dev/assets/bdqumbk.CZy9YIUA.png",R=JSON.parse('{"title":"Barycentric coordinates","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/barycentric.md","filePath":"source/methods/barycentric.md","lastUpdated":null}'),l={name:"source/methods/barycentric.md"},p=h("",4),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=h("",1),d=[r],g=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),y={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},F={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"},o=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),c=[o],C=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),B={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},A={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"},D=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),u=[D],T=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),m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},b={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"},Q=h("",1),_=[Q],v=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),w=h("",35);function f(x,V,P,M,q,N){return n(),a("div",null,[p,s("p",null,[i("In the case of a triangle, barycentric coordinates are a set of three numbers "),s("mjx-container",e,[(n(),a("svg",E,d)),g]),i(", 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("For a polygon with "),s("mjx-container",y,[(n(),a("svg",F,c)),C]),i(" vertices, generalized barycentric coordinates are a set of "),s("mjx-container",B,[(n(),a("svg",A,u)),T]),i(" numbers "),s("mjx-container",m,[(n(),a("svg",b,_)),v]),i(", 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.")]),w])}const G=t(l,[["render",f]]);export{R as __pageData,G as default};
diff --git a/dev/assets/source_methods_buffer.md.DkINH657.js b/dev/assets/source_methods_buffer.md.DazqrJzE.js
similarity index 98%
rename from dev/assets/source_methods_buffer.md.DkINH657.js
rename to dev/assets/source_methods_buffer.md.DazqrJzE.js
index cf2911567..19f7f1ec5 100644
--- a/dev/assets/source_methods_buffer.md.DkINH657.js
+++ b/dev/assets/source_methods_buffer.md.DazqrJzE.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.B24clL9_.js";const y=JSON.parse('{"title":"Buffer","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/buffer.md","filePath":"source/methods/buffer.md","lastUpdated":null}'),n={name:"source/methods/buffer.md"},e=t(`

Buffer

Buffering a geometry means computing the region distance away from it, and returning that region as the new geometry.

As of now, we only support GEOS as the backend, meaning that LibGEOS must be loaded.

julia
function buffer(geometry, distance; kwargs...)
+import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.CpnCegiD.js";const y=JSON.parse('{"title":"Buffer","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/buffer.md","filePath":"source/methods/buffer.md","lastUpdated":null}'),n={name:"source/methods/buffer.md"},e=t(`

Buffer

Buffering a geometry means computing the region distance away from it, and returning that region as the new geometry.

As of now, we only support GEOS as the backend, meaning that LibGEOS must be loaded.

julia
function buffer(geometry, distance; kwargs...)
     buffered = buffer(GEOS(; kwargs...), geometry, distance)
     return tuples(buffered)
 end

Below is an error handler similar to the others we have for e.g. segmentize, which checks if there is a method error for the geos backend.

Add an error hint for buffer if LibGEOS is not loaded!

julia
function _buffer_error_hinter(io, exc, argtypes, kwargs)
diff --git a/dev/assets/source_methods_buffer.md.DkINH657.lean.js b/dev/assets/source_methods_buffer.md.DazqrJzE.lean.js
similarity index 70%
rename from dev/assets/source_methods_buffer.md.DkINH657.lean.js
rename to dev/assets/source_methods_buffer.md.DazqrJzE.lean.js
index 675cbffd5..2683fa6b6 100644
--- a/dev/assets/source_methods_buffer.md.DkINH657.lean.js
+++ b/dev/assets/source_methods_buffer.md.DazqrJzE.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.B24clL9_.js";const y=JSON.parse('{"title":"Buffer","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/buffer.md","filePath":"source/methods/buffer.md","lastUpdated":null}'),n={name:"source/methods/buffer.md"},e=t("",9),h=[e];function k(p,l,r,d,E,o){return a(),i("div",null,h)}const c=s(n,[["render",k]]);export{y as __pageData,c as default};
+import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.CpnCegiD.js";const y=JSON.parse('{"title":"Buffer","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/buffer.md","filePath":"source/methods/buffer.md","lastUpdated":null}'),n={name:"source/methods/buffer.md"},e=t("",9),h=[e];function k(p,l,r,d,E,o){return a(),i("div",null,h)}const c=s(n,[["render",k]]);export{y as __pageData,c as default};
diff --git a/dev/assets/source_methods_centroid.md.BnJYQgzS.js b/dev/assets/source_methods_centroid.md.IR8dpgJi.js
similarity index 99%
rename from dev/assets/source_methods_centroid.md.BnJYQgzS.js
rename to dev/assets/source_methods_centroid.md.IR8dpgJi.js
index d2bc78683..05f2ee628 100644
--- a/dev/assets/source_methods_centroid.md.BnJYQgzS.js
+++ b/dev/assets/source_methods_centroid.md.IR8dpgJi.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h="/GeometryOps.jl/dev/assets/liicypg.BD0hVfse.png",t="/GeometryOps.jl/dev/assets/fgtllgl.DHcwB147.png",F=JSON.parse('{"title":"Centroid","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/centroid.md","filePath":"source/methods/centroid.md","lastUpdated":null}'),l={name:"source/methods/centroid.md"},k=n(`

Centroid

julia
export centroid, centroid_and_length, centroid_and_area

What is the centroid?

The centroid is the geometric center of a line string or area(s). Note that the centroid does not need to be inside of a concave area.

Further note that by convention a line, or linear ring, is calculated by weighting the line segments by their length, while polygons and multipolygon centroids are calculated by weighting edge's by their 'area components'.

To provide an example, consider this concave polygon in the shape of a 'C':

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const h="/GeometryOps.jl/dev/assets/lnugvso.BD0hVfse.png",t="/GeometryOps.jl/dev/assets/lsfurro.DHcwB147.png",F=JSON.parse('{"title":"Centroid","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/centroid.md","filePath":"source/methods/centroid.md","lastUpdated":null}'),l={name:"source/methods/centroid.md"},k=n(`

Centroid

julia
export centroid, centroid_and_length, centroid_and_area

What is the centroid?

The centroid is the geometric center of a line string or area(s). Note that the centroid does not need to be inside of a concave area.

Further note that by convention a line, or linear ring, is calculated by weighting the line segments by their length, while polygons and multipolygon centroids are calculated by weighting edge's by their 'area components'.

To provide an example, consider this concave polygon in the shape of a 'C':

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
@@ -6,7 +6,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h
 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 availible 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
diff --git a/dev/assets/source_methods_centroid.md.BnJYQgzS.lean.js b/dev/assets/source_methods_centroid.md.IR8dpgJi.lean.js
similarity index 64%
rename from dev/assets/source_methods_centroid.md.BnJYQgzS.lean.js
rename to dev/assets/source_methods_centroid.md.IR8dpgJi.lean.js
index 22b484744..ca5706933 100644
--- a/dev/assets/source_methods_centroid.md.BnJYQgzS.lean.js
+++ b/dev/assets/source_methods_centroid.md.IR8dpgJi.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h="/GeometryOps.jl/dev/assets/liicypg.BD0hVfse.png",t="/GeometryOps.jl/dev/assets/fgtllgl.DHcwB147.png",F=JSON.parse('{"title":"Centroid","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/centroid.md","filePath":"source/methods/centroid.md","lastUpdated":null}'),l={name:"source/methods/centroid.md"},k=n("",57),p=[k];function e(r,E,d,g,y,o){return a(),i("div",null,p)}const C=s(l,[["render",e]]);export{F as __pageData,C as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const h="/GeometryOps.jl/dev/assets/lnugvso.BD0hVfse.png",t="/GeometryOps.jl/dev/assets/lsfurro.DHcwB147.png",F=JSON.parse('{"title":"Centroid","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/centroid.md","filePath":"source/methods/centroid.md","lastUpdated":null}'),l={name:"source/methods/centroid.md"},k=n("",57),p=[k];function e(r,E,d,g,y,o){return a(),i("div",null,p)}const C=s(l,[["render",e]]);export{F as __pageData,C as default};
diff --git a/dev/assets/source_methods_clipping_clipping_processor.md.Bcxp8BIM.js b/dev/assets/source_methods_clipping_clipping_processor.md.BWhMiGnY.js
similarity index 96%
rename from dev/assets/source_methods_clipping_clipping_processor.md.Bcxp8BIM.js
rename to dev/assets/source_methods_clipping_clipping_processor.md.BWhMiGnY.js
index a4d7b6792..c37c3976f 100644
--- a/dev/assets/source_methods_clipping_clipping_processor.md.Bcxp8BIM.js
+++ b/dev/assets/source_methods_clipping_clipping_processor.md.BWhMiGnY.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o=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}'),h={name:"source/methods/clipping/clipping_processor.md"},t=n(`

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 s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const o=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}'),h={name:"source/methods/clipping/clipping_processor.md"},t=n(`

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
 const crossing, bouncing = true, false
 
 #= A point can either be the start or end of an overlapping chain of points between two
@@ -32,7 +32,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
     _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)
 
     return a_list, b_list, a_idx_list
-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 indicies 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 indicies 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(::Type{T}, poly_a, poly_b; exact) where T
     n_a_edges = _nedge(poly_a)
     a_list = PolyNode{T}[]  # list of points in poly_a
     sizehint!(a_list, n_a_edges)
@@ -105,7 +105,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
         a_pt1 = a_pt2
     end
     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 neightbor 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(::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)
     n_intr_pts = length(a_idx_list)
     b_list = PolyNode{T}[]
     sizehint!(b_list, n_b_edges + n_b_intrs)
@@ -392,7 +392,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
     end
     return return_polys
 end

Get type of polygons that will be made TODO: Increase type options

julia
_get_poly_type(::Type{T}) where T =
-    GI.Polygon{false, false, Vector{GI.LinearRing{false, false, Vector{Tuple{T, T}}, Nothing, Nothing}}, Nothing, Nothing}
_find_non_cross_orientation(a_list, b_list, a_poly, b_poly; exact)

For polygns with no crossing intersection points, either one polygon is inside of another, or they are seperate polygons with no intersection (other than an edge or point).

Return two booleans that represent if a is inside b (potentially with shared edges / points) and visa versa if b is inside of a.

julia
function _find_non_cross_orientation(a_list, b_list, a_poly, b_poly; exact)
+    GI.Polygon{false, false, Vector{GI.LinearRing{false, false, Vector{Tuple{T, T}}, Nothing, Nothing}}, Nothing, Nothing}
_find_non_cross_orientation(a_list, b_list, a_poly, b_poly; exact)

For polygons with no crossing intersection points, either one polygon is inside of another, or they are separate polygons with no intersection (other than an edge or point).

Return two booleans that represent if a is inside b (potentially with shared edges / points) and visa versa if b is inside of a.

julia
function _find_non_cross_orientation(a_list, b_list, a_poly, b_poly; exact)
     non_intr_a_idx = findfirst(x -> !x.inter, a_list)
     non_intr_b_idx = findfirst(x -> !x.inter, b_list)
     #= Determine if non-intersection point is in or outside of polygon - if there isn't A
@@ -419,7 +419,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
                         append!(remove_poly_idx, falses(n_new_pieces))
                         n_new_per_poly += n_new_pieces
                     end
-                    if !on_ext && !out_ext  # hole is completly within exterior
+                    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())
@@ -430,7 +430,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
                             append!(remove_poly_idx, falses(n_new_polys))
                             n_new_per_poly += n_new_polys
                         end
-                    end

polygon is completly within hole

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

polygon is completely within hole

julia
                elseif coveredby(curr_poly_ext, GI.Polygon(StaticArrays.SVector(curr_hole)))
                     remove_poly_idx[j] = true
                 end
             end
@@ -438,7 +438,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
         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 orignal 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!(::Type{T}, new_hole, curr_poly, return_polys, remove_hole_idx) where T
     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))
@@ -482,7 +482,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
                     p2 = p
                     continue
                 else
-                    p3 = p

check if p2 is approximatly 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

julia
                    if Predicates.orient(p1, p2, p3; exact = _False()) == 0
                         remove_idx[i - 1] = true
                     end
                 end
diff --git a/dev/assets/source_methods_clipping_clipping_processor.md.Bcxp8BIM.lean.js b/dev/assets/source_methods_clipping_clipping_processor.md.BWhMiGnY.lean.js
similarity index 75%
rename from dev/assets/source_methods_clipping_clipping_processor.md.Bcxp8BIM.lean.js
rename to dev/assets/source_methods_clipping_clipping_processor.md.BWhMiGnY.lean.js
index 9b67a3ac4..96c3cb4c3 100644
--- a/dev/assets/source_methods_clipping_clipping_processor.md.Bcxp8BIM.lean.js
+++ b/dev/assets/source_methods_clipping_clipping_processor.md.BWhMiGnY.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o=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}'),h={name:"source/methods/clipping/clipping_processor.md"},t=n("",169),p=[t];function l(k,e,E,r,d,g){return a(),i("div",null,p)}const c=s(h,[["render",l]]);export{o as __pageData,c as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const o=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}'),h={name:"source/methods/clipping/clipping_processor.md"},t=n("",169),p=[t];function l(k,e,E,r,d,g){return a(),i("div",null,p)}const c=s(h,[["render",l]]);export{o as __pageData,c as default};
diff --git a/dev/assets/source_methods_clipping_coverage.md.0c_XYlaF.js b/dev/assets/source_methods_clipping_coverage.md.KxEH9c7F.js
similarity index 99%
rename from dev/assets/source_methods_clipping_coverage.md.0c_XYlaF.js
rename to dev/assets/source_methods_clipping_coverage.md.KxEH9c7F.js
index 132f512e2..9c64bf88e 100644
--- a/dev/assets/source_methods_clipping_coverage.md.0c_XYlaF.js
+++ b/dev/assets/source_methods_clipping_coverage.md.KxEH9c7F.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h="/GeometryOps.jl/dev/assets/qdzykgu.Cb0_DiYE.png",c=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/coverage.md","filePath":"source/methods/clipping/coverage.md","lastUpdated":null}'),l={name:"source/methods/clipping/coverage.md"},k=n(`
julia
export coverage

What is coverage?

Coverage is the amount of geometry area within a bounding box defined by the minimum and maximum x and y-coordiantes of that bounding box, or an Extent containing that information.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const h="/GeometryOps.jl/dev/assets/odnjzpw.Cb0_DiYE.png",c=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/coverage.md","filePath":"source/methods/clipping/coverage.md","lastUpdated":null}'),l={name:"source/methods/clipping/coverage.md"},k=n(`
julia
export coverage

What is coverage?

Coverage is the amount of geometry area within a bounding box defined by the minimum and maximum x and y-coordinates of that bounding box, or an Extent containing that information.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_clipping_coverage.md.0c_XYlaF.lean.js b/dev/assets/source_methods_clipping_coverage.md.KxEH9c7F.lean.js
similarity index 74%
rename from dev/assets/source_methods_clipping_coverage.md.0c_XYlaF.lean.js
rename to dev/assets/source_methods_clipping_coverage.md.KxEH9c7F.lean.js
index 11d9c9c1b..91cd627f1 100644
--- a/dev/assets/source_methods_clipping_coverage.md.0c_XYlaF.lean.js
+++ b/dev/assets/source_methods_clipping_coverage.md.KxEH9c7F.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h="/GeometryOps.jl/dev/assets/qdzykgu.Cb0_DiYE.png",c=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/coverage.md","filePath":"source/methods/clipping/coverage.md","lastUpdated":null}'),l={name:"source/methods/clipping/coverage.md"},k=n("",58),p=[k];function t(e,E,r,d,g,y){return a(),i("div",null,p)}const o=s(l,[["render",t]]);export{c as __pageData,o as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const h="/GeometryOps.jl/dev/assets/odnjzpw.Cb0_DiYE.png",c=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/coverage.md","filePath":"source/methods/clipping/coverage.md","lastUpdated":null}'),l={name:"source/methods/clipping/coverage.md"},k=n("",58),p=[k];function t(e,E,r,d,g,y){return a(),i("div",null,p)}const o=s(l,[["render",t]]);export{c as __pageData,o as default};
diff --git a/dev/assets/source_methods_clipping_cut.md.B9hPmCjC.js b/dev/assets/source_methods_clipping_cut.md.DwfIybVD.js
similarity index 99%
rename from dev/assets/source_methods_clipping_cut.md.B9hPmCjC.js
rename to dev/assets/source_methods_clipping_cut.md.DwfIybVD.js
index 7ac7e8b94..3d14dcfce 100644
--- a/dev/assets/source_methods_clipping_cut.md.B9hPmCjC.js
+++ b/dev/assets/source_methods_clipping_cut.md.DwfIybVD.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h="/GeometryOps.jl/dev/assets/emzwabp.-VpeHhXX.png",c=JSON.parse('{"title":"Polygon cutting","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/cut.md","filePath":"source/methods/clipping/cut.md","lastUpdated":null}'),t={name:"source/methods/clipping/cut.md"},l=n(`

Polygon cutting

julia
export cut

What is cut?

The cut function cuts a polygon through a line segment. This is inspired by functions such as Matlab's cutpolygon function.

To provide an example, consider the following polygon and line:

julia
import GeoInterface as GI, GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const h="/GeometryOps.jl/dev/assets/fkidkll.-VpeHhXX.png",c=JSON.parse('{"title":"Polygon cutting","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/cut.md","filePath":"source/methods/clipping/cut.md","lastUpdated":null}'),t={name:"source/methods/clipping/cut.md"},l=n(`

Polygon cutting

julia
export cut

What is cut?

The cut function cuts a polygon through a line segment. This is inspired by functions such as Matlab's cutpolygon function.

To provide an example, consider the following polygon and line:

julia
import GeoInterface as GI, GeometryOps as GO
 using CairoMakie
 using Makie
 
@@ -59,7 +59,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h
 of cut geometry in Vector{Vector{Tuple}} format.
 
 Note: degenerate cases where intersection points are vertices do not work right now. =#
-function _cut(::Type{T}, geom, line, geom_list, intr_list, n_intr_pts; exact) where T

Sort and catagorize the intersection points

julia
    sort!(intr_list, by = x -> geom_list[x].fracs[2])
+function _cut(::Type{T}, geom, line, geom_list, intr_list, n_intr_pts; exact) where T

Sort and categorize the intersection points

julia
    sort!(intr_list, by = x -> geom_list[x].fracs[2])
     _flag_ent_exit!(GI.LineTrait(), line, geom_list; exact)

Add first point to output list

julia
    return_coords = [[geom_list[1].point]]
     cross_backs = [(T(Inf),T(Inf))]
     poly_idx = 1
diff --git a/dev/assets/source_methods_clipping_cut.md.B9hPmCjC.lean.js b/dev/assets/source_methods_clipping_cut.md.DwfIybVD.lean.js
similarity index 74%
rename from dev/assets/source_methods_clipping_cut.md.B9hPmCjC.lean.js
rename to dev/assets/source_methods_clipping_cut.md.DwfIybVD.lean.js
index 89f15dba7..877c5c3fe 100644
--- a/dev/assets/source_methods_clipping_cut.md.B9hPmCjC.lean.js
+++ b/dev/assets/source_methods_clipping_cut.md.DwfIybVD.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h="/GeometryOps.jl/dev/assets/emzwabp.-VpeHhXX.png",c=JSON.parse('{"title":"Polygon cutting","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/cut.md","filePath":"source/methods/clipping/cut.md","lastUpdated":null}'),t={name:"source/methods/clipping/cut.md"},l=n("",34),p=[l];function k(e,r,E,d,g,y){return a(),i("div",null,p)}const F=s(t,[["render",k]]);export{c as __pageData,F as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const h="/GeometryOps.jl/dev/assets/fkidkll.-VpeHhXX.png",c=JSON.parse('{"title":"Polygon cutting","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/cut.md","filePath":"source/methods/clipping/cut.md","lastUpdated":null}'),t={name:"source/methods/clipping/cut.md"},l=n("",34),p=[l];function k(e,r,E,d,g,y){return a(),i("div",null,p)}const F=s(t,[["render",k]]);export{c as __pageData,F as default};
diff --git a/dev/assets/source_methods_clipping_difference.md.OH-ojrcQ.js b/dev/assets/source_methods_clipping_difference.md.CtVeedUt.js
similarity index 98%
rename from dev/assets/source_methods_clipping_difference.md.OH-ojrcQ.js
rename to dev/assets/source_methods_clipping_difference.md.CtVeedUt.js
index 9675e7aa6..eebbe3135 100644
--- a/dev/assets/source_methods_clipping_difference.md.OH-ojrcQ.js
+++ b/dev/assets/source_methods_clipping_difference.md.CtVeedUt.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o=JSON.parse('{"title":"Difference Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/difference.md","filePath":"source/methods/clipping/difference.md","lastUpdated":null}'),l={name:"source/methods/clipping/difference.md"},p=n(`

Difference Polygon Clipping

julia
export difference
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const o=JSON.parse('{"title":"Difference Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/difference.md","filePath":"source/methods/clipping/difference.md","lastUpdated":null}'),l={name:"source/methods/clipping/difference.md"},p=n(`

Difference Polygon Clipping

julia
export difference
 
 
 """
@@ -67,7 +67,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
                 append!(polys, new_polys)
             end
         end
-    end

Remove uneeded 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!(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
@@ -126,7 +126,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
 #= Multipolygon with multipolygon difference - note that all intersection regions between
 sub-polygons of \`multipoly_a\` and sub-polygons of \`multipoly_b\` will be removed from the
 corresponding sub-polygon of \`multipoly_a\`. Unless specified with \`fix_multipoly = nothing\`,
-\`multipolygon_a\` will be validated using the given (defauly is \`UnionIntersectingPolygons()\`)
+\`multipolygon_a\` will be validated using the given (default is \`UnionIntersectingPolygons()\`)
 correction. =#
 function _difference(
     target::TraitTarget{GI.PolygonTrait}, ::Type{T},
@@ -148,7 +148,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
         else
             difference(GI.MultiPolygon(polys), poly_b; target, fix_multipoly)
         end
-        #= One multipoly_a has been completly covered (and thus removed) there is no need to
+        #= One multipoly_a has been completely covered (and thus removed) there is no need to
         continue taking the difference =#
         isempty(polys) && break
     end
diff --git a/dev/assets/source_methods_clipping_difference.md.OH-ojrcQ.lean.js b/dev/assets/source_methods_clipping_difference.md.CtVeedUt.lean.js
similarity index 73%
rename from dev/assets/source_methods_clipping_difference.md.OH-ojrcQ.lean.js
rename to dev/assets/source_methods_clipping_difference.md.CtVeedUt.lean.js
index 05e72a0c5..7dc3aed9b 100644
--- a/dev/assets/source_methods_clipping_difference.md.OH-ojrcQ.lean.js
+++ b/dev/assets/source_methods_clipping_difference.md.CtVeedUt.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o=JSON.parse('{"title":"Difference Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/difference.md","filePath":"source/methods/clipping/difference.md","lastUpdated":null}'),l={name:"source/methods/clipping/difference.md"},p=n("",22),t=[p];function h(e,k,r,d,g,y){return a(),i("div",null,t)}const F=s(l,[["render",h]]);export{o as __pageData,F as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const o=JSON.parse('{"title":"Difference Polygon Clipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/difference.md","filePath":"source/methods/clipping/difference.md","lastUpdated":null}'),l={name:"source/methods/clipping/difference.md"},p=n("",22),t=[p];function h(e,k,r,d,g,y){return a(),i("div",null,t)}const F=s(l,[["render",h]]);export{o as __pageData,F as default};
diff --git a/dev/assets/source_methods_clipping_intersection.md.CxIjImlm.js b/dev/assets/source_methods_clipping_intersection.md.BFsZe1GD.js
similarity index 99%
rename from dev/assets/source_methods_clipping_intersection.md.CxIjImlm.js
rename to dev/assets/source_methods_clipping_intersection.md.BFsZe1GD.js
index b332e75be..dd6a0a419 100644
--- a/dev/assets/source_methods_clipping_intersection.md.CxIjImlm.js
+++ b/dev/assets/source_methods_clipping_intersection.md.BFsZe1GD.js
@@ -1,10 +1,10 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o=JSON.parse('{"title":"Geometry Intersection","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/intersection.md","filePath":"source/methods/clipping/intersection.md","lastUpdated":null}'),t={name:"source/methods/clipping/intersection.md"},h=n(`

Geometry Intersection

julia
export intersection, intersection_points
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const o=JSON.parse('{"title":"Geometry Intersection","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/intersection.md","filePath":"source/methods/clipping/intersection.md","lastUpdated":null}'),t={name:"source/methods/clipping/intersection.md"},h=n(`

Geometry Intersection

julia
export intersection, intersection_points
 
 """
     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\` (colinear with the curve), or \`line_out\` (not interacting with the curve).
+\`line_over\` (collinear with the curve), or \`line_out\` (not interacting with the curve).
 """
 @enum LineOrientation line_cross=1 line_hinge=2 line_over=3 line_out=4
 
@@ -72,7 +72,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
     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 uneeded 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!(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
@@ -109,7 +109,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
 end
 
 #= Multipolygon with polygon intersection is equivalent to taking the intersection of the
-poylgon with the multipolygon and thus simply switches the order of operations and calls the
+polygon with the multipolygon and thus simply switches the order of operations and calls the
 above method. =#
 _intersection(
     target::TraitTarget{GI.PolygonTrait}, ::Type{T},
@@ -172,7 +172,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
     _intersection_points(T, GI.trait(geom_a), geom_a, GI.trait(geom_b), geom_b)
 
 
-#= Calculates the list of intersection points between two geometries, inlcuding line
+#= 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)
@@ -327,7 +327,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
 
 #= If lines defined by (a1, a2) and (b1, b2) meet at one point that is not an endpoint of
 either segment, they form a crossing intersection with a singular intersection point. That
-point is caculated by finding the fractional distance along each segment the point occurs
+point is calculated by finding the fractional distance along each segment the point occurs
 at (α, β). If the point is too close to an endpoint to be distinct, the point shares a value
 with the endpoint, but with a non-zero and non-one fractional value. If the intersection
 point calculated is outside of the envelope of the two segments due to floating point error,
@@ -342,9 +342,9 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
     β = _clamped_frac(Δbax * Δay - Δbay * Δax, a_cross_b, eps(T))
 
     #= Intersection will be where a1 + α * Δa = b1 + β * Δb. However, due to floating point
-    innacurracies, α and β calculations may yeild different intersection points. Average
+    inaccuracies, α and β calculations may yield different intersection points. Average
     both points together to minimize difference from real value, as long as segment isn't
-    vertical or horizontal as this will almost certianly lead to the point being outside the
+    vertical or horizontal as this will almost certainly lead to the point being outside the
     envelope due to floating point error. Also note that floating point limitations could
     make intersection be endpoint if α≈0 or α≈1.=#
     x = if Δax == 0
diff --git a/dev/assets/source_methods_clipping_intersection.md.CxIjImlm.lean.js b/dev/assets/source_methods_clipping_intersection.md.BFsZe1GD.lean.js
similarity index 73%
rename from dev/assets/source_methods_clipping_intersection.md.CxIjImlm.lean.js
rename to dev/assets/source_methods_clipping_intersection.md.BFsZe1GD.lean.js
index a5aa70041..917bc94ce 100644
--- a/dev/assets/source_methods_clipping_intersection.md.CxIjImlm.lean.js
+++ b/dev/assets/source_methods_clipping_intersection.md.BFsZe1GD.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o=JSON.parse('{"title":"Geometry Intersection","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/intersection.md","filePath":"source/methods/clipping/intersection.md","lastUpdated":null}'),t={name:"source/methods/clipping/intersection.md"},h=n("",80),l=[h];function p(k,e,r,E,d,g){return a(),i("div",null,l)}const c=s(t,[["render",p]]);export{o as __pageData,c as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const o=JSON.parse('{"title":"Geometry Intersection","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/intersection.md","filePath":"source/methods/clipping/intersection.md","lastUpdated":null}'),t={name:"source/methods/clipping/intersection.md"},h=n("",80),l=[h];function p(k,e,r,E,d,g){return a(),i("div",null,l)}const c=s(t,[["render",p]]);export{o as __pageData,c as default};
diff --git a/dev/assets/source_methods_clipping_predicates.md.G1r6ZHhc.js b/dev/assets/source_methods_clipping_predicates.md.DndNuKgS.js
similarity index 99%
rename from dev/assets/source_methods_clipping_predicates.md.G1r6ZHhc.js
rename to dev/assets/source_methods_clipping_predicates.md.DndNuKgS.js
index 04f6e6832..1860b8435 100644
--- a/dev/assets/source_methods_clipping_predicates.md.G1r6ZHhc.js
+++ b/dev/assets/source_methods_clipping_predicates.md.DndNuKgS.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o=JSON.parse('{"title":"If we want to inject adaptivity, we would do something like:","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/predicates.md","filePath":"source/methods/clipping/predicates.md","lastUpdated":null}'),t={name:"source/methods/clipping/predicates.md"},h=n(`
julia
module Predicates
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const o=JSON.parse('{"title":"If we want to inject adaptivity, we would do something like:","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/predicates.md","filePath":"source/methods/clipping/predicates.md","lastUpdated":null}'),t={name:"source/methods/clipping/predicates.md"},h=n(`
julia
module Predicates
     using ExactPredicates, ExactPredicates.Codegen
     import ExactPredicates: ext
     import ExactPredicates.Codegen: group!, @genpredicate
diff --git a/dev/assets/source_methods_clipping_predicates.md.G1r6ZHhc.lean.js b/dev/assets/source_methods_clipping_predicates.md.DndNuKgS.lean.js
similarity index 75%
rename from dev/assets/source_methods_clipping_predicates.md.G1r6ZHhc.lean.js
rename to dev/assets/source_methods_clipping_predicates.md.DndNuKgS.lean.js
index 2ff7d4bd7..6d1cda4f8 100644
--- a/dev/assets/source_methods_clipping_predicates.md.G1r6ZHhc.lean.js
+++ b/dev/assets/source_methods_clipping_predicates.md.DndNuKgS.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o=JSON.parse('{"title":"If we want to inject adaptivity, we would do something like:","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/predicates.md","filePath":"source/methods/clipping/predicates.md","lastUpdated":null}'),t={name:"source/methods/clipping/predicates.md"},h=n("",13),e=[h];function p(l,k,r,d,E,c){return a(),i("div",null,e)}const y=s(t,[["render",p]]);export{o as __pageData,y as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const o=JSON.parse('{"title":"If we want to inject adaptivity, we would do something like:","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/clipping/predicates.md","filePath":"source/methods/clipping/predicates.md","lastUpdated":null}'),t={name:"source/methods/clipping/predicates.md"},h=n("",13),e=[h];function p(l,k,r,d,E,c){return a(),i("div",null,e)}const y=s(t,[["render",p]]);export{o as __pageData,y as default};
diff --git a/dev/assets/source_methods_clipping_union.md.2_48PnSR.js b/dev/assets/source_methods_clipping_union.md.wPjIz2t-.js
similarity index 98%
rename from dev/assets/source_methods_clipping_union.md.2_48PnSR.js
rename to dev/assets/source_methods_clipping_union.md.wPjIz2t-.js
index 627542ab2..80456a660 100644
--- a/dev/assets/source_methods_clipping_union.md.2_48PnSR.js
+++ b/dev/assets/source_methods_clipping_union.md.wPjIz2t-.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o=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"},h=n(`

Union Polygon Clipping

julia
export union
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const o=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"},h=n(`

Union Polygon Clipping

julia
export union
 
 """
     union(geom_a, geom_b, [::Type{T}]; target::Type, fix_multipoly = UnionIntersectingPolygons())
@@ -68,7 +68,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
         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 uneeded collinear points on same edge

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

Remove unneeded collinear points on same edge

julia
    _remove_collinear_points!(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
@@ -138,7 +138,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
         in_ih, on_ih, out_ih = _line_polygon_interactions(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 completly within the ith hole - polygons aren't
+                #= interior polygon is completely within the ith hole - polygons aren't
                 touching and do not actually form a union =#
                 polys[1] = tuples(interior_poly)
                 push!(polys, tuples(exterior_poly))
@@ -209,7 +209,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
     return polys
 end
 
-#= Multipolygon with polygon union is equivalent to taking the union of the poylgon with the
+#= 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},
diff --git a/dev/assets/source_methods_clipping_union.md.2_48PnSR.lean.js b/dev/assets/source_methods_clipping_union.md.wPjIz2t-.lean.js
similarity index 72%
rename from dev/assets/source_methods_clipping_union.md.2_48PnSR.lean.js
rename to dev/assets/source_methods_clipping_union.md.wPjIz2t-.lean.js
index b7e2767a6..55b73e527 100644
--- a/dev/assets/source_methods_clipping_union.md.2_48PnSR.lean.js
+++ b/dev/assets/source_methods_clipping_union.md.wPjIz2t-.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o=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"},h=n("",28),p=[h];function t(k,e,r,E,g,y){return a(),i("div",null,p)}const F=s(l,[["render",t]]);export{o as __pageData,F as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const o=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"},h=n("",28),p=[h];function t(k,e,r,E,g,y){return a(),i("div",null,p)}const F=s(l,[["render",t]]);export{o as __pageData,F as default};
diff --git a/dev/assets/source_methods_distance.md.CyM1f5P-.js b/dev/assets/source_methods_distance.md.B1hZWVIF.js
similarity index 99%
rename from dev/assets/source_methods_distance.md.CyM1f5P-.js
rename to dev/assets/source_methods_distance.md.B1hZWVIF.js
index a783a7de2..a01f76109 100644
--- a/dev/assets/source_methods_distance.md.CyM1f5P-.js
+++ b/dev/assets/source_methods_distance.md.B1hZWVIF.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h="/GeometryOps.jl/dev/assets/lipsvjw.DiwGEg2f.png",t="/GeometryOps.jl/dev/assets/krsfyzm.DuBHk1fh.png",c=JSON.parse('{"title":"Distance and signed distance","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/distance.md","filePath":"source/methods/distance.md","lastUpdated":null}'),k={name:"source/methods/distance.md"},p=n(`

Distance and signed distance

julia
export distance, signed_distance

What is distance? What is signed distance?

Distance is the distance of a point to another geometry. This is always a positive number. If a point is inside of geometry, so on a curve or inside of a polygon, the distance will be zero. Signed distance is mainly used for polygons and multipolygons. If a point is outside of a geometry, signed distance has the same value as distance. However, points within the geometry have a negative distance representing the distance of a point to the closest boundary. Therefore, for all "non-filled" geometries, like curves, the distance will either be postitive or 0.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const h="/GeometryOps.jl/dev/assets/yfkpvhd.DiwGEg2f.png",t="/GeometryOps.jl/dev/assets/dyqtlpa.DuBHk1fh.png",c=JSON.parse('{"title":"Distance and signed distance","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/distance.md","filePath":"source/methods/distance.md","lastUpdated":null}'),k={name:"source/methods/distance.md"},p=n(`

Distance and signed distance

julia
export distance, signed_distance

What is distance? What is signed distance?

Distance is the distance of a point to another geometry. This is always a positive number. If a point is inside of geometry, so on a curve or inside of a polygon, the distance will be zero. Signed distance is mainly used for polygons and multipolygons. If a point is outside of a geometry, signed distance has the same value as distance. However, points within the geometry have a negative distance representing the distance of a point to the closest boundary. Therefore, for all "non-filled" geometries, like curves, the distance will either be positive or 0.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_distance.md.CyM1f5P-.lean.js b/dev/assets/source_methods_distance.md.B1hZWVIF.lean.js
similarity index 65%
rename from dev/assets/source_methods_distance.md.CyM1f5P-.lean.js
rename to dev/assets/source_methods_distance.md.B1hZWVIF.lean.js
index 81f650a1c..ab0ddeaf4 100644
--- a/dev/assets/source_methods_distance.md.CyM1f5P-.lean.js
+++ b/dev/assets/source_methods_distance.md.B1hZWVIF.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h="/GeometryOps.jl/dev/assets/lipsvjw.DiwGEg2f.png",t="/GeometryOps.jl/dev/assets/krsfyzm.DuBHk1fh.png",c=JSON.parse('{"title":"Distance and signed distance","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/distance.md","filePath":"source/methods/distance.md","lastUpdated":null}'),k={name:"source/methods/distance.md"},p=n("",54),l=[p];function e(d,E,r,g,y,F){return a(),i("div",null,l)}const C=s(k,[["render",e]]);export{c as __pageData,C as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const h="/GeometryOps.jl/dev/assets/yfkpvhd.DiwGEg2f.png",t="/GeometryOps.jl/dev/assets/dyqtlpa.DuBHk1fh.png",c=JSON.parse('{"title":"Distance and signed distance","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/distance.md","filePath":"source/methods/distance.md","lastUpdated":null}'),k={name:"source/methods/distance.md"},p=n("",54),l=[p];function e(d,E,r,g,y,F){return a(),i("div",null,l)}const C=s(k,[["render",e]]);export{c as __pageData,C as default};
diff --git a/dev/assets/source_methods_equals.md.De9KY65L.js b/dev/assets/source_methods_equals.md.Ch6uNWJu.js
similarity index 98%
rename from dev/assets/source_methods_equals.md.De9KY65L.js
rename to dev/assets/source_methods_equals.md.Ch6uNWJu.js
index 44b8b9947..17723bd7a 100644
--- a/dev/assets/source_methods_equals.md.De9KY65L.js
+++ b/dev/assets/source_methods_equals.md.Ch6uNWJu.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const l="/GeometryOps.jl/dev/assets/atfvmse.CgiryX2p.png",y=JSON.parse('{"title":"Equals","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/equals.md","filePath":"source/methods/equals.md","lastUpdated":null}'),t={name:"source/methods/equals.md"},h=n(`

Equals

julia
export equals

What is equals?

The equals function checks if two geometries are equal. They are equal if they share the same set of points and edges to define the same shape.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const l="/GeometryOps.jl/dev/assets/qmdfdhw.CgiryX2p.png",y=JSON.parse('{"title":"Equals","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/equals.md","filePath":"source/methods/equals.md","lastUpdated":null}'),t={name:"source/methods/equals.md"},h=n(`

Equals

julia
export equals

What is equals?

The equals function checks if two geometries are equal. They are equal if they share the same set of points and edges to define the same shape.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
@@ -9,7 +9,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const l
 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 commen 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 explicity 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.
@@ -150,7 +150,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const l
     )::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 defintion.
+along the curve. Note that lines/linestrings aren't closed by definition.
 """
 equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
@@ -164,7 +164,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const l
     )::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 defintion, but
+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
 """
 equals(
@@ -179,7 +179,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const l
     )::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 defintion, but
+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
 """
 equals(
@@ -262,4 +262,4 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const l
         has_match || return false
     end
     return true
-end

This page was generated using Literate.jl.

`,47),p=[h];function e(k,r,d,g,E,F){return a(),i("div",null,p)}const c=s(t,[["render",e]]);export{y as __pageData,c as default}; +end

This page was generated using Literate.jl.

`,47),p=[h];function k(e,r,d,g,E,F){return a(),i("div",null,p)}const c=s(t,[["render",k]]);export{y as __pageData,c as default}; diff --git a/dev/assets/source_methods_equals.md.Ch6uNWJu.lean.js b/dev/assets/source_methods_equals.md.Ch6uNWJu.lean.js new file mode 100644 index 000000000..fd3f81348 --- /dev/null +++ b/dev/assets/source_methods_equals.md.Ch6uNWJu.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const l="/GeometryOps.jl/dev/assets/qmdfdhw.CgiryX2p.png",y=JSON.parse('{"title":"Equals","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/equals.md","filePath":"source/methods/equals.md","lastUpdated":null}'),t={name:"source/methods/equals.md"},h=n("",47),p=[h];function k(e,r,d,g,E,F){return a(),i("div",null,p)}const c=s(t,[["render",k]]);export{y as __pageData,c as default}; diff --git a/dev/assets/source_methods_equals.md.De9KY65L.lean.js b/dev/assets/source_methods_equals.md.De9KY65L.lean.js deleted file mode 100644 index 9bdc013c7..000000000 --- a/dev/assets/source_methods_equals.md.De9KY65L.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const l="/GeometryOps.jl/dev/assets/atfvmse.CgiryX2p.png",y=JSON.parse('{"title":"Equals","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/equals.md","filePath":"source/methods/equals.md","lastUpdated":null}'),t={name:"source/methods/equals.md"},h=n("",47),p=[h];function e(k,r,d,g,E,F){return a(),i("div",null,p)}const c=s(t,[["render",e]]);export{y as __pageData,c as default}; diff --git a/dev/assets/source_methods_geom_relations_contains.md.BBjEMOLE.js b/dev/assets/source_methods_geom_relations_contains.md.BS3Tc390.js similarity index 91% rename from dev/assets/source_methods_geom_relations_contains.md.BBjEMOLE.js rename to dev/assets/source_methods_geom_relations_contains.md.BS3Tc390.js index 1e51ba6b0..645d894d6 100644 --- a/dev/assets/source_methods_geom_relations_contains.md.BBjEMOLE.js +++ b/dev/assets/source_methods_geom_relations_contains.md.BS3Tc390.js @@ -1,4 +1,4 @@ -import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const t="/GeometryOps.jl/dev/assets/olvcwxh._0R9BbFk.png",y=JSON.parse('{"title":"Contains","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/contains.md","filePath":"source/methods/geom_relations/contains.md","lastUpdated":null}'),e={name:"source/methods/geom_relations/contains.md"},h=n(`

Contains

julia
export contains

What is contains?

The contains function checks if a given geometry completly contains another geometry, or in other words, that the second geometry is completly 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 s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const t="/GeometryOps.jl/dev/assets/dgfelxe._0R9BbFk.png",y=JSON.parse('{"title":"Contains","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/contains.md","filePath":"source/methods/geom_relations/contains.md","lastUpdated":null}'),e={name:"source/methods/geom_relations/contains.md"},h=n(`

Contains

julia
export contains

What is contains?

The contains function checks if a given geometry completely contains another geometry, or in other words, that the second geometry is completely within the first. This requires that the two interiors intersect and that the interior and boundary of the second geometry is not in the exterior of the first geometry.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_contains.md.BBjEMOLE.lean.js b/dev/assets/source_methods_geom_relations_contains.md.BS3Tc390.lean.js
similarity index 76%
rename from dev/assets/source_methods_geom_relations_contains.md.BBjEMOLE.lean.js
rename to dev/assets/source_methods_geom_relations_contains.md.BS3Tc390.lean.js
index 660b1212f..ec5cb60af 100644
--- a/dev/assets/source_methods_geom_relations_contains.md.BBjEMOLE.lean.js
+++ b/dev/assets/source_methods_geom_relations_contains.md.BS3Tc390.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const t="/GeometryOps.jl/dev/assets/olvcwxh._0R9BbFk.png",y=JSON.parse('{"title":"Contains","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/contains.md","filePath":"source/methods/geom_relations/contains.md","lastUpdated":null}'),e={name:"source/methods/geom_relations/contains.md"},h=n("",18),l=[h];function p(k,r,o,d,g,E){return a(),i("div",null,l)}const F=s(e,[["render",p]]);export{y as __pageData,F as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const t="/GeometryOps.jl/dev/assets/dgfelxe._0R9BbFk.png",y=JSON.parse('{"title":"Contains","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/contains.md","filePath":"source/methods/geom_relations/contains.md","lastUpdated":null}'),e={name:"source/methods/geom_relations/contains.md"},h=n("",18),l=[h];function p(k,r,o,d,g,E){return a(),i("div",null,l)}const F=s(e,[["render",p]]);export{y as __pageData,F as default};
diff --git a/dev/assets/source_methods_geom_relations_coveredby.md.DsEyTkLB.js b/dev/assets/source_methods_geom_relations_coveredby.md.CBrVFPVo.js
similarity index 99%
rename from dev/assets/source_methods_geom_relations_coveredby.md.DsEyTkLB.js
rename to dev/assets/source_methods_geom_relations_coveredby.md.CBrVFPVo.js
index 64075350d..ca913ce0a 100644
--- a/dev/assets/source_methods_geom_relations_coveredby.md.DsEyTkLB.js
+++ b/dev/assets/source_methods_geom_relations_coveredby.md.CBrVFPVo.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const e="/GeometryOps.jl/dev/assets/jxbxcun.DC3TvBOO.png",c=JSON.parse('{"title":"CoveredBy","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/coveredby.md","filePath":"source/methods/geom_relations/coveredby.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/coveredby.md"},h=n(`

CoveredBy

julia
export coveredby

What is coveredby?

The coveredby function checks if one geometry is covered by another geometry. This is an extension of within that does not require the interiors of the two geometries to intersect, but still does require that the interior and boundary of the first geometry isn't outside of the second geometry.

To provide an example, consider this point and line:

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const e="/GeometryOps.jl/dev/assets/doyulqn.DC3TvBOO.png",c=JSON.parse('{"title":"CoveredBy","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/coveredby.md","filePath":"source/methods/geom_relations/coveredby.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/coveredby.md"},h=n(`

CoveredBy

julia
export coveredby

What is coveredby?

The coveredby function checks if one geometry is covered by another geometry. This is an extension of within that does not require the interiors of the two geometries to intersect, but still does require that the interior and boundary of the first geometry isn't outside of the second geometry.

To provide an example, consider this point and line:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
@@ -91,7 +91,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const e
 )
 
 #= Linestring is coveredby a polygon if all interior and boundary points of the
-line are in the polygon interior or on its edges, inlcuding hole edges. =#
+line are in the polygon interior or on its edges, including hole edges. =#
 _coveredby(
     ::Union{GI.LineTrait, GI.LineStringTrait}, g1,
     ::GI.PolygonTrait, g2,
@@ -130,7 +130,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const e
 )
 
 #= Linearring is coveredby a polygon if all vertices and edges of the ring are
-in the polygon interior or on the polygon edges, inlcuding hole edges. =#
+in the polygon interior or on the polygon edges, including hole edges. =#
 _coveredby(
     ::GI.LinearRingTrait, g1,
     ::GI.PolygonTrait, g2,
diff --git a/dev/assets/source_methods_geom_relations_coveredby.md.DsEyTkLB.lean.js b/dev/assets/source_methods_geom_relations_coveredby.md.CBrVFPVo.lean.js
similarity index 76%
rename from dev/assets/source_methods_geom_relations_coveredby.md.DsEyTkLB.lean.js
rename to dev/assets/source_methods_geom_relations_coveredby.md.CBrVFPVo.lean.js
index f7c1810d4..2ffa6b970 100644
--- a/dev/assets/source_methods_geom_relations_coveredby.md.DsEyTkLB.lean.js
+++ b/dev/assets/source_methods_geom_relations_coveredby.md.CBrVFPVo.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const e="/GeometryOps.jl/dev/assets/jxbxcun.DC3TvBOO.png",c=JSON.parse('{"title":"CoveredBy","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/coveredby.md","filePath":"source/methods/geom_relations/coveredby.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/coveredby.md"},h=n("",45),t=[h];function p(k,r,E,d,g,o){return a(),i("div",null,t)}const F=s(l,[["render",p]]);export{c as __pageData,F as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const e="/GeometryOps.jl/dev/assets/doyulqn.DC3TvBOO.png",c=JSON.parse('{"title":"CoveredBy","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/coveredby.md","filePath":"source/methods/geom_relations/coveredby.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/coveredby.md"},h=n("",45),t=[h];function p(k,r,E,d,g,o){return a(),i("div",null,t)}const F=s(l,[["render",p]]);export{c as __pageData,F as default};
diff --git a/dev/assets/source_methods_geom_relations_covers.md.DBGlhZWH.js b/dev/assets/source_methods_geom_relations_covers.md.CJImsgZm.js
similarity index 90%
rename from dev/assets/source_methods_geom_relations_covers.md.DBGlhZWH.js
rename to dev/assets/source_methods_geom_relations_covers.md.CJImsgZm.js
index fdfbfd0f4..a00f7e5af 100644
--- a/dev/assets/source_methods_geom_relations_covers.md.DBGlhZWH.js
+++ b/dev/assets/source_methods_geom_relations_covers.md.CJImsgZm.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.B24clL9_.js";const n="/GeometryOps.jl/dev/assets/jxbxcun.DC3TvBOO.png",y=JSON.parse('{"title":"Covers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/covers.md","filePath":"source/methods/geom_relations/covers.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/covers.md"},p=e(`

Covers

julia
export covers

What is covers?

The covers function checks if a given geometry completly 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 s,c as i,o as a,a7 as e}from"./chunks/framework.CpnCegiD.js";const n="/GeometryOps.jl/dev/assets/doyulqn.DC3TvBOO.png",y=JSON.parse('{"title":"Covers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/covers.md","filePath":"source/methods/geom_relations/covers.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/covers.md"},p=e(`

Covers

julia
export covers

What is covers?

The covers function checks if a given geometry completely covers another geometry. For this to be true, the "contained" geometry's interior and boundaries must be covered by the "covering" geometry's interior and boundaries. The interiors do not need to overlap.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_covers.md.DBGlhZWH.lean.js b/dev/assets/source_methods_geom_relations_covers.md.CJImsgZm.lean.js
similarity index 75%
rename from dev/assets/source_methods_geom_relations_covers.md.DBGlhZWH.lean.js
rename to dev/assets/source_methods_geom_relations_covers.md.CJImsgZm.lean.js
index 22f1433db..39516a576 100644
--- a/dev/assets/source_methods_geom_relations_covers.md.DBGlhZWH.lean.js
+++ b/dev/assets/source_methods_geom_relations_covers.md.CJImsgZm.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.B24clL9_.js";const n="/GeometryOps.jl/dev/assets/jxbxcun.DC3TvBOO.png",y=JSON.parse('{"title":"Covers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/covers.md","filePath":"source/methods/geom_relations/covers.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/covers.md"},p=e("",17),l=[p];function h(k,r,o,d,c,g){return a(),i("div",null,l)}const u=s(t,[["render",h]]);export{y as __pageData,u as default};
+import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.CpnCegiD.js";const n="/GeometryOps.jl/dev/assets/doyulqn.DC3TvBOO.png",y=JSON.parse('{"title":"Covers","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/covers.md","filePath":"source/methods/geom_relations/covers.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/covers.md"},p=e("",17),l=[p];function h(k,r,o,d,c,g){return a(),i("div",null,l)}const u=s(t,[["render",h]]);export{y as __pageData,u as default};
diff --git a/dev/assets/source_methods_geom_relations_crosses.md.CWVmsKpo.js b/dev/assets/source_methods_geom_relations_crosses.md.DFkK36VY.js
similarity index 99%
rename from dev/assets/source_methods_geom_relations_crosses.md.CWVmsKpo.js
rename to dev/assets/source_methods_geom_relations_crosses.md.DFkK36VY.js
index bf4c3b5a7..ea1ff9e8e 100644
--- a/dev/assets/source_methods_geom_relations_crosses.md.CWVmsKpo.js
+++ b/dev/assets/source_methods_geom_relations_crosses.md.DFkK36VY.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const y=JSON.parse('{"title":"Crossing checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/crosses.md","filePath":"source/methods/geom_relations/crosses.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/crosses.md"},p=n(`

Crossing checks

julia
"""
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const y=JSON.parse('{"title":"Crossing checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/crosses.md","filePath":"source/methods/geom_relations/crosses.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/crosses.md"},p=n(`

Crossing checks

julia
"""
      crosses(geom1, geom2)::Bool
 
 Return \`true\` if the intersection results in a geometry whose dimension is one less than
diff --git a/dev/assets/source_methods_geom_relations_crosses.md.CWVmsKpo.lean.js b/dev/assets/source_methods_geom_relations_crosses.md.DFkK36VY.lean.js
similarity index 73%
rename from dev/assets/source_methods_geom_relations_crosses.md.CWVmsKpo.lean.js
rename to dev/assets/source_methods_geom_relations_crosses.md.DFkK36VY.lean.js
index 0f4bb543d..c71ffed36 100644
--- a/dev/assets/source_methods_geom_relations_crosses.md.CWVmsKpo.lean.js
+++ b/dev/assets/source_methods_geom_relations_crosses.md.DFkK36VY.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const y=JSON.parse('{"title":"Crossing checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/crosses.md","filePath":"source/methods/geom_relations/crosses.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/crosses.md"},p=n("",10),h=[p];function t(k,e,r,E,g,d){return a(),i("div",null,h)}const o=s(l,[["render",t]]);export{y as __pageData,o as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const y=JSON.parse('{"title":"Crossing checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/crosses.md","filePath":"source/methods/geom_relations/crosses.md","lastUpdated":null}'),l={name:"source/methods/geom_relations/crosses.md"},p=n("",10),h=[p];function t(k,e,r,E,g,d){return a(),i("div",null,h)}const o=s(l,[["render",t]]);export{y as __pageData,o as default};
diff --git a/dev/assets/source_methods_geom_relations_disjoint.md.B8jOB-e2.js b/dev/assets/source_methods_geom_relations_disjoint.md.Ey3ncSdC.js
similarity index 99%
rename from dev/assets/source_methods_geom_relations_disjoint.md.B8jOB-e2.js
rename to dev/assets/source_methods_geom_relations_disjoint.md.Ey3ncSdC.js
index 2701cc9b2..6814dca53 100644
--- a/dev/assets/source_methods_geom_relations_disjoint.md.B8jOB-e2.js
+++ b/dev/assets/source_methods_geom_relations_disjoint.md.Ey3ncSdC.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const t="/GeometryOps.jl/dev/assets/esclgnl.C3SxJ3x-.png",c=JSON.parse('{"title":"Disjoint","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/disjoint.md","filePath":"source/methods/geom_relations/disjoint.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/disjoint.md"},l=n(`

Disjoint

julia
export disjoint

What is disjoint?

The disjoint function checks if one geometry is outside of another geometry, without sharing any boundaries or interiors.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const t="/GeometryOps.jl/dev/assets/ingzict.C3SxJ3x-.png",c=JSON.parse('{"title":"Disjoint","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/disjoint.md","filePath":"source/methods/geom_relations/disjoint.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/disjoint.md"},l=n(`

Disjoint

julia
export disjoint

What is disjoint?

The disjoint function checks if one geometry is outside of another geometry, without sharing any boundaries or interiors.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
@@ -110,7 +110,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const t
 )
 
 #= Geometry is disjoint from a linestring if the line's interior and boundary
-points don't intersect with the geometrie's interior and boundary points. =#
+points don't intersect with the geometry's interior and boundary points. =#
 _disjoint(
     trait1::Union{GI.LinearRingTrait, GI.PolygonTrait}, g1,
     trait2::Union{GI.LineTrait, GI.LineStringTrait}, g2,
diff --git a/dev/assets/source_methods_geom_relations_disjoint.md.B8jOB-e2.lean.js b/dev/assets/source_methods_geom_relations_disjoint.md.Ey3ncSdC.lean.js
similarity index 76%
rename from dev/assets/source_methods_geom_relations_disjoint.md.B8jOB-e2.lean.js
rename to dev/assets/source_methods_geom_relations_disjoint.md.Ey3ncSdC.lean.js
index 5e51bd78f..a3a0ff778 100644
--- a/dev/assets/source_methods_geom_relations_disjoint.md.B8jOB-e2.lean.js
+++ b/dev/assets/source_methods_geom_relations_disjoint.md.Ey3ncSdC.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const t="/GeometryOps.jl/dev/assets/esclgnl.C3SxJ3x-.png",c=JSON.parse('{"title":"Disjoint","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/disjoint.md","filePath":"source/methods/geom_relations/disjoint.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/disjoint.md"},l=n("",39),p=[l];function k(e,r,E,g,d,o){return a(),i("div",null,p)}const F=s(h,[["render",k]]);export{c as __pageData,F as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const t="/GeometryOps.jl/dev/assets/ingzict.C3SxJ3x-.png",c=JSON.parse('{"title":"Disjoint","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/disjoint.md","filePath":"source/methods/geom_relations/disjoint.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/disjoint.md"},l=n("",39),p=[l];function k(e,r,E,g,d,o){return a(),i("div",null,p)}const F=s(h,[["render",k]]);export{c as __pageData,F as default};
diff --git a/dev/assets/source_methods_geom_relations_geom_geom_processors.md.BjtPpMj6.js b/dev/assets/source_methods_geom_relations_geom_geom_processors.md.BKbXzScL.js
similarity index 97%
rename from dev/assets/source_methods_geom_relations_geom_geom_processors.md.BjtPpMj6.js
rename to dev/assets/source_methods_geom_relations_geom_geom_processors.md.BKbXzScL.js
index 056a2c157..b7c2ee4fa 100644
--- a/dev/assets/source_methods_geom_relations_geom_geom_processors.md.BjtPpMj6.js
+++ b/dev/assets/source_methods_geom_relations_geom_geom_processors.md.BKbXzScL.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o=JSON.parse('{"title":"Line-curve interaction","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/geom_geom_processors.md","filePath":"source/methods/geom_relations/geom_geom_processors.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/geom_geom_processors.md"},l=n(`

Line-curve interaction

julia
#= Code is based off of DE-9IM Standards (https://en.wikipedia.org/wiki/DE-9IM)
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const o=JSON.parse('{"title":"Line-curve interaction","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/geom_geom_processors.md","filePath":"source/methods/geom_relations/geom_geom_processors.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/geom_geom_processors.md"},l=n(`

Line-curve interaction

julia
#= Code is based off of DE-9IM Standards (https://en.wikipedia.org/wiki/DE-9IM)
 and attempts a standardized solution for most of the functions.
 =#
 
@@ -36,7 +36,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
 )

Check interaction of geom with polygon's exterior boundary

julia
    ext_val = _point_filled_curve_orientation(point, GI.getexterior(polygon); exact)

If a point is outside, it isn't interacting with any holes

julia
    ext_val == point_out && return out_allow

if a point is on an external boundary, it isn't interacting with any holes

julia
    ext_val == point_on && return on_allow

If geom is within the polygon, need to check interactions with holes

julia
    for hole in GI.gethole(polygon)
         hole_val = _point_filled_curve_orientation(point, hole; exact)

If a point in in a hole, it is outside of the polygon

julia
        hole_val == point_in && return out_allow

If a point in on a hole edge, it is on the edge of the polygon

julia
        hole_val == point_on && return on_allow
     end

Point is within external boundary and on in/on any holes

julia
    return in_allow
-end

Determines if a line meets the given checks with respect to a curve.

If over_allow is true, segments of the line and curve can be co-linear. If cross_allow is true, segments of the line and curve can cross. If on_allow is true, endpoints of either the line or curve can intersect a segment of the other geometry. If cross_allow is true, segments of the line and curve can be disjoint.

If in_require is true, the interiors of the line and curve must meet in at least one point. If on_require is true, the bounday of one of the two geometries can meet the interior or boundary of the other geometry in at least one point. If out_require is true, there must be at least one point of the given line that is exterior of the curve.

If the point is in an "allowed" location and meets all requirments, return true. Else, return false.

If closed_line is true, line is treated as a closed line where the first and last point are connected by a segment. Same with closed_curve.

julia
@inline function _line_curve_process(line, curve;
+end

Determines if a line meets the given checks with respect to a curve.

If over_allow is true, segments of the line and curve can be co-linear. If cross_allow is true, segments of the line and curve can cross. If on_allow is true, endpoints of either the line or curve can intersect a segment of the other geometry. If cross_allow is true, segments of the line and curve can be disjoint.

If in_require is true, the interiors of the line and curve must meet in at least one point. If on_require is true, the boundary of one of the two geometries can meet the interior or boundary of the other geometry in at least one point. If out_require is true, there must be at least one point of the given line that is exterior of the curve.

If the point is in an "allowed" location and meets all requirements, return true. Else, return false.

If closed_line is true, line is treated as a closed line where the first and last point are connected by a segment. Same with closed_curve.

julia
@inline function _line_curve_process(line, curve;
     over_allow, cross_allow, kw...
 )
     skip, returnval = _maybe_skip_disjoint_extents(line, curve;
@@ -53,7 +53,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
     in_require, on_require, out_require,
     closed_line = false, closed_curve = false,
     exact,
-)

Set up requirments

julia
    in_req_met = !in_require
+)

Set up requirements

julia
    in_req_met = !in_require
     on_req_met = !on_require
     out_req_met = !out_require

Determine curve endpoints

julia
    nl = GI.npoint(line)
     nc = GI.npoint(curve)
@@ -68,7 +68,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
         l_end = _tuple_point(GI.getpoint(line, i))
         c_start = _tuple_point(GI.getpoint(curve, closed_curve ? nc : 1))

Loop over each curve segment

julia
        for j in (closed_curve ? 1 : 2):nc
             c_end = _tuple_point(GI.getpoint(curve, j))

Check if line and curve segments meet

julia
            seg_val, intr1, _ = _intersection_point(Float64, (l_start, l_end), (c_start, c_end); exact)

If segments are co-linear

julia
            if seg_val == line_over
-                !over_allow && return false

at least one point in, meets requirments

julia
                in_req_met = true
+                !over_allow && return false

at least one point in, meets requirements

julia
                in_req_met = true
                 point_val = _point_segment_orientation(l_start, c_start, c_end)

If entire segment isn't covered, consider remaining section

julia
                if point_val != point_out
                     i, l_start, break_off = _find_new_seg(i, l_start, l_end, c_start, c_end)
                     break_off && break
@@ -113,7 +113,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
 end
 
 #= If entire segment (le to ls) isn't covered by segment (cs to ce), find remaining section
-part of section outside of cs to ce. If completly covered, increase segment index i. =#
+part of section outside of cs to ce. If completely covered, increase segment index i. =#
 function _find_new_seg(i, ls, le, cs, ce)
     break_off = true
     if _point_segment_orientation(le, cs, ce) != point_out
@@ -141,7 +141,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
         ((le, _tuple_point(GI.getpoint(line, i + 1))), (cs, ce))
     end
     return next_seg
-end

Determines if a line meets the given checks with respect to a polygon.

If in_allow is true, segments of the line can be in the polygon interior. If on_allow is true, segments of the line can be on the polygon's boundary. If out_allow is true, segments of the line can be outside of the polygon.

If in_require is true, the interiors of the line and polygon must meet in at least one point. If on_require is true, the line must have at least one point on the polygon'same boundary. If out_require is true, the line must have at least one point outside of the polygon.

If the point is in an "allowed" location and meets all requirments, return true. Else, return false.

If closed_line is true, line is treated as a closed line where the first and last point are connected by a segment.

julia
@inline function _line_polygon_process(line, polygon; kw...)
+end

Determines if a line meets the given checks with respect to a polygon.

If in_allow is true, segments of the line can be in the polygon interior. If on_allow is true, segments of the line can be on the polygon's boundary. If out_allow is true, segments of the line can be outside of the polygon.

If in_require is true, the interiors of the line and polygon must meet in at least one point. If on_require is true, the line must have at least one point on the polygon'same boundary. If out_require is true, the line must have at least one point outside of the polygon.

If the point is in an "allowed" location and meets all requirements, return true. Else, return false.

If closed_line is true, line is treated as a closed line where the first and last point are connected by a segment.

julia
@inline function _line_polygon_process(line, polygon; kw...)
     skip, returnval = _maybe_skip_disjoint_extents(line, polygon; kw...)
     skip && return returnval
     return _inner_line_polygon_process(line, polygon; kw...)
@@ -175,7 +175,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
             !out_allow && return false
             out_req_met = true
         end
-        if on_hole  # hole bounday is polygon boundary
+        if on_hole  # hole boundary is polygon boundary
             !on_allow && return false
             on_req_met = true
         end
@@ -189,7 +189,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
         in_req_met = true
     end
     return in_req_met && on_req_met && out_req_met
-end

Determines if a polygon meets the given checks with respect to a polygon.

If in_allow is true, the polygon's interiors must intersect. If on_allow is true, the one of the polygon's boundaries must either interact with the other polygon's boundary or interior. If out_allow is true, the first polygon must have interior regions outside of the second polygon.

If in_require is true, the polygon interiors must meet in at least one point. If on_require is true, one of the polygon's must have at least one boundary point in or on the other polygon. If out_require is true, the first polygon must have at least one interior point outside of the second polygon.

If the point is in an "allowed" location and meets all requirments, return true. Else, return false.

julia
@inline function _polygon_polygon_process(poly1, poly2; kw...)
+end

Determines if a polygon meets the given checks with respect to a polygon.

If in_allow is true, the polygon's interiors must intersect. If on_allow is true, the one of the polygon's boundaries must either interact with the other polygon's boundary or interior. If out_allow is true, the first polygon must have interior regions outside of the second polygon.

If in_require is true, the polygon interiors must meet in at least one point. If on_require is true, one of the polygon's must have at least one boundary point in or on the other polygon. If out_require is true, the first polygon must have at least one interior point outside of the second polygon.

If the point is in an "allowed" location and meets all requirements, return true. Else, return false.

julia
@inline function _polygon_polygon_process(poly1, poly2; kw...)
     skip, returnval = _maybe_skip_disjoint_extents(poly1, poly2; kw...)
     skip && return returnval
     return _inner_polygon_polygon_process(poly1, poly2; kw...)
@@ -287,7 +287,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
         !between_endpoints && return out
     end
     return in
-end

Determine if point is in, on, or out of a closed curve, which includes the space enclosed by the closed curve.

In means the point is within the closed curve (excluding edges and vertices). On means the point is on an edge or a vertex of the closed curve. Out means the point is outside of the closed curve.

Point should be an object of point trait and curve should be an object with a linestring or linearring trait, that is assumed to be closed, regardless of repeated last point.

Can provide values of in, on, and out keywords, which determines return values for each scenario.

Note that this uses the Algorithm by Hao and Sun (2018): https://doi.org/10.3390/sym10100477 Paper seperates orientation of point and edge into 26 cases. For each case, it is either a case where the point is on the edge (returns on), where a ray from the point (x, y) to infinity along the line y = y cut through the edge (k += 1), or the ray does not pass through the edge (do nothing and continue). If the ray passes through an odd number of edges, it is within the curve, else outside of of the curve if it didn't return 'on'. See paper for more information on cases denoted in comments.

julia
function _point_filled_curve_orientation(
+end

Determine if point is in, on, or out of a closed curve, which includes the space enclosed by the closed curve.

In means the point is within the closed curve (excluding edges and vertices). On means the point is on an edge or a vertex of the closed curve. Out means the point is outside of the closed curve.

Point should be an object of point trait and curve should be an object with a linestring or linearring trait, that is assumed to be closed, regardless of repeated last point.

Can provide values of in, on, and out keywords, which determines return values for each scenario.

Note that this uses the Algorithm by Hao and Sun (2018): https://doi.org/10.3390/sym10100477 Paper separates orientation of point and edge into 26 cases. For each case, it is either a case where the point is on the edge (returns on), where a ray from the point (x, y) to infinity along the line y = y cut through the edge (k += 1), or the ray does not pass through the edge (do nothing and continue). If the ray passes through an odd number of edges, it is within the curve, else outside of of the curve if it didn't return 'on'. See paper for more information on cases denoted in comments.

julia
function _point_filled_curve_orientation(
     point, curve;
     in::T = point_in, on::T = point_on, out::T = point_out, exact,
 ) where {T}
@@ -392,7 +392,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
         l_start = l_end
     end
     return in_curve, on_curve, out_curve
-end

Determines the types of interactions of a line with a polygon.

Returns a tuple of booleans: (in_poly, on_poly, out_poly).

If in_poly is true, some of the lines interior points interact with the polygon interior points. If in_poly is true, endpoints of either the line intersect with the polygon or the line interacts with the polygon boundary, including hole bounaries. If out_curve is true, at least one segments of the line is outside the polygon, including inside of holes.

If closed_line is true, line is treated as a closed line where the first and last point are connected by a segment.

julia
function _line_polygon_interactions(
+end

Determines the types of interactions of a line with a polygon.

Returns a tuple of booleans: (in_poly, on_poly, out_poly).

If in_poly is true, some of the lines interior points interact with the polygon interior points. If in_poly is true, endpoints of either the line intersect with the polygon or the line interacts with the polygon boundary, including hole boundaries. If out_curve is true, at least one segments of the line is outside the polygon, including inside of holes.

If closed_line is true, line is treated as a closed line where the first and last point are connected by a segment.

julia
function _line_polygon_interactions(
     line, polygon;
     exact, closed_line = false,
 )
diff --git a/dev/assets/source_methods_geom_relations_geom_geom_processors.md.BjtPpMj6.lean.js b/dev/assets/source_methods_geom_relations_geom_geom_processors.md.BKbXzScL.lean.js
similarity index 76%
rename from dev/assets/source_methods_geom_relations_geom_geom_processors.md.BjtPpMj6.lean.js
rename to dev/assets/source_methods_geom_relations_geom_geom_processors.md.BKbXzScL.lean.js
index a3ae61afb..77e7e7713 100644
--- a/dev/assets/source_methods_geom_relations_geom_geom_processors.md.BjtPpMj6.lean.js
+++ b/dev/assets/source_methods_geom_relations_geom_geom_processors.md.BKbXzScL.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o=JSON.parse('{"title":"Line-curve interaction","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/geom_geom_processors.md","filePath":"source/methods/geom_relations/geom_geom_processors.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/geom_geom_processors.md"},l=n("",142),t=[l];function p(k,e,r,E,d,g){return a(),i("div",null,t)}const c=s(h,[["render",p]]);export{o as __pageData,c as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const o=JSON.parse('{"title":"Line-curve interaction","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/geom_geom_processors.md","filePath":"source/methods/geom_relations/geom_geom_processors.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/geom_geom_processors.md"},l=n("",142),t=[l];function p(k,e,r,E,d,g){return a(),i("div",null,t)}const c=s(h,[["render",p]]);export{o as __pageData,c as default};
diff --git a/dev/assets/source_methods_geom_relations_intersects.md.DSsOzsR7.js b/dev/assets/source_methods_geom_relations_intersects.md.BipP7oNj.js
similarity index 98%
rename from dev/assets/source_methods_geom_relations_intersects.md.DSsOzsR7.js
rename to dev/assets/source_methods_geom_relations_intersects.md.BipP7oNj.js
index 1f20fad66..bbf226adc 100644
--- a/dev/assets/source_methods_geom_relations_intersects.md.DSsOzsR7.js
+++ b/dev/assets/source_methods_geom_relations_intersects.md.BipP7oNj.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.B24clL9_.js";const n="/GeometryOps.jl/dev/assets/lbpsisg.DeeQUply.png",y=JSON.parse('{"title":"Intersection checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/intersects.md","filePath":"source/methods/geom_relations/intersects.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/intersects.md"},p=e(`

Intersection checks

julia
export intersects

What is intersects?

The intersects function checks if a given geometry intersects with another geometry, or in other words, the either the interiors or boundaries of the two geometries intersect.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.CpnCegiD.js";const n="/GeometryOps.jl/dev/assets/ofqxxvh.DeeQUply.png",y=JSON.parse('{"title":"Intersection checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/intersects.md","filePath":"source/methods/geom_relations/intersects.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/intersects.md"},p=e(`

Intersection checks

julia
export intersects

What is intersects?

The intersects function checks if a given geometry intersects with another geometry, or in other words, the either the interiors or boundaries of the two geometries intersect.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_intersects.md.DSsOzsR7.lean.js b/dev/assets/source_methods_geom_relations_intersects.md.BipP7oNj.lean.js
similarity index 76%
rename from dev/assets/source_methods_geom_relations_intersects.md.DSsOzsR7.lean.js
rename to dev/assets/source_methods_geom_relations_intersects.md.BipP7oNj.lean.js
index 688f55508..10d20b7e5 100644
--- a/dev/assets/source_methods_geom_relations_intersects.md.DSsOzsR7.lean.js
+++ b/dev/assets/source_methods_geom_relations_intersects.md.BipP7oNj.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.B24clL9_.js";const n="/GeometryOps.jl/dev/assets/lbpsisg.DeeQUply.png",y=JSON.parse('{"title":"Intersection checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/intersects.md","filePath":"source/methods/geom_relations/intersects.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/intersects.md"},p=e("",18),l=[p];function h(k,r,o,d,c,g){return a(),i("div",null,l)}const F=s(t,[["render",h]]);export{y as __pageData,F as default};
+import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.CpnCegiD.js";const n="/GeometryOps.jl/dev/assets/ofqxxvh.DeeQUply.png",y=JSON.parse('{"title":"Intersection checks","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/intersects.md","filePath":"source/methods/geom_relations/intersects.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/intersects.md"},p=e("",18),l=[p];function h(k,r,o,d,c,g){return a(),i("div",null,l)}const F=s(t,[["render",h]]);export{y as __pageData,F as default};
diff --git a/dev/assets/source_methods_geom_relations_overlaps.md.BvA1Wxsv.js b/dev/assets/source_methods_geom_relations_overlaps.md.-oFxCtIE.js
similarity index 96%
rename from dev/assets/source_methods_geom_relations_overlaps.md.BvA1Wxsv.js
rename to dev/assets/source_methods_geom_relations_overlaps.md.-oFxCtIE.js
index 312b346fe..ef49c9270 100644
--- a/dev/assets/source_methods_geom_relations_overlaps.md.BvA1Wxsv.js
+++ b/dev/assets/source_methods_geom_relations_overlaps.md.-oFxCtIE.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const l="/GeometryOps.jl/dev/assets/atfvmse.CgiryX2p.png",y=JSON.parse('{"title":"Overlaps","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/overlaps.md","filePath":"source/methods/geom_relations/overlaps.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/overlaps.md"},t=n(`

Overlaps

julia
export overlaps

What is overlaps?

The overlaps function checks if two geometries overlap. Two geometries can only overlap if they have the same dimension, and if they overlap, but one is not contained, within, or equal to the other.

Note that this means it is impossible for a single point to overlap with a single point and a line only overlaps with another line if only a section of each line is colinear.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const l="/GeometryOps.jl/dev/assets/qmdfdhw.CgiryX2p.png",y=JSON.parse('{"title":"Overlaps","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/overlaps.md","filePath":"source/methods/geom_relations/overlaps.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/overlaps.md"},t=n(`

Overlaps

julia
export overlaps

What is overlaps?

The overlaps function checks if two geometries overlap. Two geometries can only overlap if they have the same dimension, and if they overlap, but one is not contained, within, or equal to the other.

Note that this means it is impossible for a single point to overlap with a single point and a line only overlaps with another line if only a section of each line is collinear.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
@@ -9,7 +9,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const l
 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 autmoatically 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 respectivly, 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
@@ -73,7 +73,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const l
 """
     overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool
 
-If the lines overlap, meaning that they are colinear but each have one endpoint
+If the lines overlap, meaning that they are collinear but each have one endpoint
 outside of the other line, return true. Else false.
 """
 overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line) =
@@ -169,7 +169,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const l
     return false
 end
 
-#= If the edges overlap, meaning that they are colinear but each have one endpoint
+#= If the edges overlap, meaning that they are collinear but each have one endpoint
 outside of the other edge, return true. Else false. =#
 function _overlaps(
     (a1, a2)::Edge,
diff --git a/dev/assets/source_methods_geom_relations_overlaps.md.BvA1Wxsv.lean.js b/dev/assets/source_methods_geom_relations_overlaps.md.-oFxCtIE.lean.js
similarity index 76%
rename from dev/assets/source_methods_geom_relations_overlaps.md.BvA1Wxsv.lean.js
rename to dev/assets/source_methods_geom_relations_overlaps.md.-oFxCtIE.lean.js
index 1634b7cc6..fbbc9634c 100644
--- a/dev/assets/source_methods_geom_relations_overlaps.md.BvA1Wxsv.lean.js
+++ b/dev/assets/source_methods_geom_relations_overlaps.md.-oFxCtIE.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const l="/GeometryOps.jl/dev/assets/atfvmse.CgiryX2p.png",y=JSON.parse('{"title":"Overlaps","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/overlaps.md","filePath":"source/methods/geom_relations/overlaps.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/overlaps.md"},t=n("",37),e=[t];function h(k,r,d,g,o,F){return a(),i("div",null,e)}const c=s(p,[["render",h]]);export{y as __pageData,c as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const l="/GeometryOps.jl/dev/assets/qmdfdhw.CgiryX2p.png",y=JSON.parse('{"title":"Overlaps","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/overlaps.md","filePath":"source/methods/geom_relations/overlaps.md","lastUpdated":null}'),p={name:"source/methods/geom_relations/overlaps.md"},t=n("",37),e=[t];function h(k,r,d,g,o,F){return a(),i("div",null,e)}const c=s(p,[["render",h]]);export{y as __pageData,c as default};
diff --git a/dev/assets/source_methods_geom_relations_touches.md.bOdhhT-s.js b/dev/assets/source_methods_geom_relations_touches.md.Be6oTFXc.js
similarity index 97%
rename from dev/assets/source_methods_geom_relations_touches.md.bOdhhT-s.js
rename to dev/assets/source_methods_geom_relations_touches.md.Be6oTFXc.js
index 20f062a6f..f2cac41c4 100644
--- a/dev/assets/source_methods_geom_relations_touches.md.bOdhhT-s.js
+++ b/dev/assets/source_methods_geom_relations_touches.md.Be6oTFXc.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const t="/GeometryOps.jl/dev/assets/adbjhet.BEFUMtlf.png",c=JSON.parse('{"title":"Touches","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/touches.md","filePath":"source/methods/geom_relations/touches.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/touches.md"},l=n(`

Touches

julia
export touches

What is touches?

The touches function checks if one geometry touches another geometry. In other words, the interiors of the two geometries don't interact, but one of the geometries must have a boundary point that interacts with either the other geometies interior or boundary.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const t="/GeometryOps.jl/dev/assets/lhpdfnq.BEFUMtlf.png",c=JSON.parse('{"title":"Touches","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/touches.md","filePath":"source/methods/geom_relations/touches.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/touches.md"},l=n(`

Touches

julia
export touches

What is touches?

The touches function checks if one geometry touches another geometry. In other words, the interiors of the two geometries don't interact, but one of the geometries must have a boundary point that interacts with either the other geometry's interior or boundary.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
@@ -19,7 +19,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const t
 
 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 geometies interior or
+boundary point that interacts with either the other geometry's interior or
 boundary.
 
 # Examples
@@ -62,8 +62,8 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const t
 _touches(
     trait1::Union{GI.AbstractCurveTrait, GI.PolygonTrait}, g1,
     trait2::GI.PointTrait, g2,
-) = _touches(trait2, g2, trait1, g1)

Lines touching geometries

julia
#= Linestring touches another line if at least one bounday point interacts with
-the bounday of interior of the other line, but the interiors don't interact. =#
+) = _touches(trait2, g2, trait1, g1)

Lines touching geometries

julia
#= Linestring touches another line if at least one boundary point interacts with
+the boundary of interior of the other line, but the interiors don't interact. =#
 _touches(
     ::Union{GI.LineTrait, GI.LineStringTrait}, g1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, g2,
@@ -110,14 +110,14 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const t
 ) = _touches(trait2, g2, trait1, g1)
 
 #= Linearring cannot touch another linear ring since they are both exclusively
-made up of interior points and no bounday points =#
+made up of interior points and no boundary points =#
 _touches(
     ::GI.LinearRingTrait, g1,
     ::GI.LinearRingTrait, g2,
 ) = false
 
 #= Linearring touches a polygon if at least one of the points of the ring
-interact with the polygon bounday and non are in the polygon interior. =#
+interact with the polygon boundary and non are in the polygon interior. =#
 _touches(
     ::GI.LinearRingTrait, g1,
     ::GI.PolygonTrait, g2,
@@ -127,8 +127,8 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const t
     TOUCHES_REQUIRES...,
     TOUCHES_EXACT...,
     closed_line = true,
-)

Polygons touch geometries

julia
#= Polygon touches a curve if at least one of the curve bounday points interacts
-with the polygon's bounday and no curve points interact with the interior.=#
+)

Polygons touch geometries

julia
#= Polygon touches a curve if at least one of the curve boundary points interacts
+with the polygon's boundary and no curve points interact with the interior.=#
 _touches(
     trait1::GI.PolygonTrait, g1,
     trait2::GI.AbstractCurveTrait, g2
diff --git a/dev/assets/source_methods_geom_relations_touches.md.bOdhhT-s.lean.js b/dev/assets/source_methods_geom_relations_touches.md.Be6oTFXc.lean.js
similarity index 75%
rename from dev/assets/source_methods_geom_relations_touches.md.bOdhhT-s.lean.js
rename to dev/assets/source_methods_geom_relations_touches.md.Be6oTFXc.lean.js
index 6a9ead2c6..b9b81c993 100644
--- a/dev/assets/source_methods_geom_relations_touches.md.bOdhhT-s.lean.js
+++ b/dev/assets/source_methods_geom_relations_touches.md.Be6oTFXc.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const t="/GeometryOps.jl/dev/assets/adbjhet.BEFUMtlf.png",c=JSON.parse('{"title":"Touches","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/touches.md","filePath":"source/methods/geom_relations/touches.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/touches.md"},l=n("",41),e=[l];function p(k,r,E,g,d,o){return a(),i("div",null,e)}const F=s(h,[["render",p]]);export{c as __pageData,F as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const t="/GeometryOps.jl/dev/assets/lhpdfnq.BEFUMtlf.png",c=JSON.parse('{"title":"Touches","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/touches.md","filePath":"source/methods/geom_relations/touches.md","lastUpdated":null}'),h={name:"source/methods/geom_relations/touches.md"},l=n("",41),e=[l];function p(k,r,E,g,d,o){return a(),i("div",null,e)}const F=s(h,[["render",p]]);export{c as __pageData,F as default};
diff --git a/dev/assets/source_methods_geom_relations_within.md.CzUr-h8N.js b/dev/assets/source_methods_geom_relations_within.md.326UAtQM.js
similarity index 99%
rename from dev/assets/source_methods_geom_relations_within.md.CzUr-h8N.js
rename to dev/assets/source_methods_geom_relations_within.md.326UAtQM.js
index e9d1a43c1..807171c98 100644
--- a/dev/assets/source_methods_geom_relations_within.md.CzUr-h8N.js
+++ b/dev/assets/source_methods_geom_relations_within.md.326UAtQM.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h="/GeometryOps.jl/dev/assets/olvcwxh._0R9BbFk.png",c=JSON.parse('{"title":"Within","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/within.md","filePath":"source/methods/geom_relations/within.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/within.md"},l=n(`

Within

julia
export within

What is within?

The within function checks if one geometry is inside another geometry. This requires that the two interiors intersect and that the interior and boundary of the first geometry is not in the exterior of the second geometry.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const h="/GeometryOps.jl/dev/assets/dgfelxe._0R9BbFk.png",c=JSON.parse('{"title":"Within","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/within.md","filePath":"source/methods/geom_relations/within.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/within.md"},l=n(`

Within

julia
export within

What is within?

The within function checks if one geometry is inside another geometry. This requires that the two interiors intersect and that the interior and boundary of the first geometry is not in the exterior of the second geometry.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
diff --git a/dev/assets/source_methods_geom_relations_within.md.CzUr-h8N.lean.js b/dev/assets/source_methods_geom_relations_within.md.326UAtQM.lean.js
similarity index 75%
rename from dev/assets/source_methods_geom_relations_within.md.CzUr-h8N.lean.js
rename to dev/assets/source_methods_geom_relations_within.md.326UAtQM.lean.js
index 2b274cc85..315424fc3 100644
--- a/dev/assets/source_methods_geom_relations_within.md.CzUr-h8N.lean.js
+++ b/dev/assets/source_methods_geom_relations_within.md.326UAtQM.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h="/GeometryOps.jl/dev/assets/olvcwxh._0R9BbFk.png",c=JSON.parse('{"title":"Within","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/within.md","filePath":"source/methods/geom_relations/within.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/within.md"},l=n("",41),p=[l];function e(k,r,E,g,d,y){return a(),i("div",null,p)}const F=s(t,[["render",e]]);export{c as __pageData,F as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const h="/GeometryOps.jl/dev/assets/dgfelxe._0R9BbFk.png",c=JSON.parse('{"title":"Within","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/geom_relations/within.md","filePath":"source/methods/geom_relations/within.md","lastUpdated":null}'),t={name:"source/methods/geom_relations/within.md"},l=n("",41),p=[l];function e(k,r,E,g,d,y){return a(),i("div",null,p)}const F=s(t,[["render",e]]);export{c as __pageData,F as default};
diff --git a/dev/assets/source_methods_orientation.md.CASnd2QG.js b/dev/assets/source_methods_orientation.md.DA9Vnshv.js
similarity index 99%
rename from dev/assets/source_methods_orientation.md.CASnd2QG.js
rename to dev/assets/source_methods_orientation.md.DA9Vnshv.js
index 895f33b7d..84f66ddfb 100644
--- a/dev/assets/source_methods_orientation.md.CASnd2QG.js
+++ b/dev/assets/source_methods_orientation.md.DA9Vnshv.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const y=JSON.parse('{"title":"Orientation","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/orientation.md","filePath":"source/methods/orientation.md","lastUpdated":null}'),l={name:"source/methods/orientation.md"},p=n(`

Orientation

julia
export isclockwise, isconcave

isclockwise

The orientation of a geometry is whether it runs clockwise or counter-clockwise.

This is defined for linestrings, linear rings, or vectors of points.

isconcave

A polygon is concave if it has at least one interior angle greater than 180 degrees, meaning that the interior of the polygon is not a convex set.

These are all adapted from Turf.jl.

The may not necessarily be what want in the end but work for now!

julia
"""
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const y=JSON.parse('{"title":"Orientation","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/orientation.md","filePath":"source/methods/orientation.md","lastUpdated":null}'),l={name:"source/methods/orientation.md"},p=n(`

Orientation

julia
export isclockwise, isconcave

isclockwise

The orientation of a geometry is whether it runs clockwise or counter-clockwise.

This is defined for linestrings, linear rings, or vectors of points.

isconcave

A polygon is concave if it has at least one interior angle greater than 180 degrees, meaning that the interior of the polygon is not a convex set.

These are all adapted from Turf.jl.

The may not necessarily be what want in the end but work for now!

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
diff --git a/dev/assets/source_methods_orientation.md.CASnd2QG.lean.js b/dev/assets/source_methods_orientation.md.DA9Vnshv.lean.js
similarity index 71%
rename from dev/assets/source_methods_orientation.md.CASnd2QG.lean.js
rename to dev/assets/source_methods_orientation.md.DA9Vnshv.lean.js
index 56f7f97f7..46206a862 100644
--- a/dev/assets/source_methods_orientation.md.CASnd2QG.lean.js
+++ b/dev/assets/source_methods_orientation.md.DA9Vnshv.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const y=JSON.parse('{"title":"Orientation","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/orientation.md","filePath":"source/methods/orientation.md","lastUpdated":null}'),l={name:"source/methods/orientation.md"},p=n("",28),h=[p];function t(e,k,r,d,g,E){return a(),i("div",null,h)}const c=s(l,[["render",t]]);export{y as __pageData,c as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const y=JSON.parse('{"title":"Orientation","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/orientation.md","filePath":"source/methods/orientation.md","lastUpdated":null}'),l={name:"source/methods/orientation.md"},p=n("",28),h=[p];function t(e,k,r,d,g,E){return a(),i("div",null,h)}const c=s(l,[["render",t]]);export{y as __pageData,c as default};
diff --git a/dev/assets/source_methods_polygonize.md.Geb3kI4e.js b/dev/assets/source_methods_polygonize.md.S22nQIi1.js
similarity index 99%
rename from dev/assets/source_methods_polygonize.md.Geb3kI4e.js
rename to dev/assets/source_methods_polygonize.md.S22nQIi1.js
index d8c041a89..934f0f8dd 100644
--- a/dev/assets/source_methods_polygonize.md.Geb3kI4e.js
+++ b/dev/assets/source_methods_polygonize.md.S22nQIi1.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o=JSON.parse('{"title":"Polygonizing raster data","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/polygonize.md","filePath":"source/methods/polygonize.md","lastUpdated":null}'),h={name:"source/methods/polygonize.md"},l=n(`

Polygonizing raster data

julia
export polygonize
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const o=JSON.parse('{"title":"Polygonizing raster data","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/polygonize.md","filePath":"source/methods/polygonize.md","lastUpdated":null}'),h={name:"source/methods/polygonize.md"},l=n(`

Polygonizing raster data

julia
export polygonize
 
 #=
 The methods in this file convert a raster image into a set of polygons,
@@ -33,7 +33,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
 Now, we can use the \`polygonize\` function to convert the raster data into polygons.
 
 For this particular example, we chose a range of z-values between 0.8 and 3.2,
-which would provide two distinct polyogns with holes.
+which would provide two distinct polygons with holes.
 
 \`\`\`@example polygonize
 polygons = polygonize(xs, ys, 0.8 .< zs .< 3.2)
@@ -246,7 +246,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o
     assigned_holes = count(assigned)
     assigned_holes == length(holes) || @warn "Not all holes were assigned to polygons, $(length(holes) - assigned_holes) where missed from $(length(holes)) holes and $(length(polygons)) polygons"
 
-    if isempty(polygons)

TODO: this really should return an emtpty MultiPolygon but GeoInterface wrappers cant do that yet, which is not ideal...

julia
        @warn "No polgons found, check your data or try another function for \`f\`"
+    if isempty(polygons)

TODO: this really should return an empty MultiPolygon but GeoInterface wrappers cant do that yet, which is not ideal...

julia
        @warn "No polgons found, check your data or try another function for \`f\`"
         return nothing
     else

Otherwise return a wrapped MultiPolygon

julia
        return GI.MultiPolygon(polygons; crs, extent = mapreduce(GI.extent, Extents.union, polygons))
     end
diff --git a/dev/assets/source_methods_polygonize.md.Geb3kI4e.lean.js b/dev/assets/source_methods_polygonize.md.S22nQIi1.lean.js
similarity index 72%
rename from dev/assets/source_methods_polygonize.md.Geb3kI4e.lean.js
rename to dev/assets/source_methods_polygonize.md.S22nQIi1.lean.js
index 0ef225b02..10937045c 100644
--- a/dev/assets/source_methods_polygonize.md.Geb3kI4e.lean.js
+++ b/dev/assets/source_methods_polygonize.md.S22nQIi1.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const o=JSON.parse('{"title":"Polygonizing raster data","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/polygonize.md","filePath":"source/methods/polygonize.md","lastUpdated":null}'),h={name:"source/methods/polygonize.md"},l=n("",86),p=[l];function t(k,e,d,E,r,g){return a(),i("div",null,p)}const c=s(h,[["render",t]]);export{o as __pageData,c as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const o=JSON.parse('{"title":"Polygonizing raster data","description":"","frontmatter":{},"headers":[],"relativePath":"source/methods/polygonize.md","filePath":"source/methods/polygonize.md","lastUpdated":null}'),h={name:"source/methods/polygonize.md"},l=n("",86),p=[l];function t(k,e,d,E,r,g){return a(),i("div",null,p)}const c=s(h,[["render",t]]);export{o as __pageData,c as default};
diff --git a/dev/assets/source_not_implemented_yet.md.DmzFilCO.js b/dev/assets/source_not_implemented_yet.md.B6R1ju5V.js
similarity index 94%
rename from dev/assets/source_not_implemented_yet.md.DmzFilCO.js
rename to dev/assets/source_not_implemented_yet.md.B6R1ju5V.js
index 83b9c191a..1e2bf6bf2 100644
--- a/dev/assets/source_not_implemented_yet.md.DmzFilCO.js
+++ b/dev/assets/source_not_implemented_yet.md.B6R1ju5V.js
@@ -1,4 +1,4 @@
-import{_ as e,c as i,o as t,a7 as s}from"./chunks/framework.B24clL9_.js";const _=JSON.parse('{"title":"Not implemented yet","description":"","frontmatter":{},"headers":[],"relativePath":"source/not_implemented_yet.md","filePath":"source/not_implemented_yet.md","lastUpdated":null}'),a={name:"source/not_implemented_yet.md"},n=s(`

Not implemented yet

All of the functions in this file are not implemented in Julia yet. Some of them may have implementations in LibGEOS which we can use via an extension, but there is no native-Julia implementation for them.

julia
function symdifference end
+import{_ as e,c as i,o as t,a7 as s}from"./chunks/framework.CpnCegiD.js";const _=JSON.parse('{"title":"Not implemented yet","description":"","frontmatter":{},"headers":[],"relativePath":"source/not_implemented_yet.md","filePath":"source/not_implemented_yet.md","lastUpdated":null}'),a={name:"source/not_implemented_yet.md"},n=s(`

Not implemented yet

All of the functions in this file are not implemented in Julia yet. Some of them may have implementations in LibGEOS which we can use via an extension, but there is no native-Julia implementation for them.

julia
function symdifference end
 function buffer end
 function convexhull end
 function concavehull end

This page was generated using Literate.jl.

`,5),l=[n];function p(h,o,r,d,c,m){return t(),i("div",null,l)}const u=e(a,[["render",p]]);export{_ as __pageData,u as default}; diff --git a/dev/assets/source_not_implemented_yet.md.DmzFilCO.lean.js b/dev/assets/source_not_implemented_yet.md.B6R1ju5V.lean.js similarity index 71% rename from dev/assets/source_not_implemented_yet.md.DmzFilCO.lean.js rename to dev/assets/source_not_implemented_yet.md.B6R1ju5V.lean.js index 5deef59e3..6b08b912d 100644 --- a/dev/assets/source_not_implemented_yet.md.DmzFilCO.lean.js +++ b/dev/assets/source_not_implemented_yet.md.B6R1ju5V.lean.js @@ -1 +1 @@ -import{_ as e,c as i,o as t,a7 as s}from"./chunks/framework.B24clL9_.js";const _=JSON.parse('{"title":"Not implemented yet","description":"","frontmatter":{},"headers":[],"relativePath":"source/not_implemented_yet.md","filePath":"source/not_implemented_yet.md","lastUpdated":null}'),a={name:"source/not_implemented_yet.md"},n=s("",5),l=[n];function p(h,o,r,d,c,m){return t(),i("div",null,l)}const u=e(a,[["render",p]]);export{_ as __pageData,u as default}; +import{_ as e,c as i,o as t,a7 as s}from"./chunks/framework.CpnCegiD.js";const _=JSON.parse('{"title":"Not implemented yet","description":"","frontmatter":{},"headers":[],"relativePath":"source/not_implemented_yet.md","filePath":"source/not_implemented_yet.md","lastUpdated":null}'),a={name:"source/not_implemented_yet.md"},n=s("",5),l=[n];function p(h,o,r,d,c,m){return t(),i("div",null,l)}const u=e(a,[["render",p]]);export{_ as __pageData,u as default}; diff --git a/dev/assets/source_primitives.md.CJbutZTX.js b/dev/assets/source_primitives.md.Ci3epseD.js similarity index 97% rename from dev/assets/source_primitives.md.CJbutZTX.js rename to dev/assets/source_primitives.md.Ci3epseD.js index 41127271a..fae9abb81 100644 --- a/dev/assets/source_primitives.md.CJbutZTX.js +++ b/dev/assets/source_primitives.md.Ci3epseD.js @@ -1,7 +1,7 @@ -import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.B24clL9_.js";const o=JSON.parse('{"title":"Primitive functions","description":"","frontmatter":{},"headers":[],"relativePath":"source/primitives.md","filePath":"source/primitives.md","lastUpdated":null}'),n={name:"source/primitives.md"},h=t(`

Primitive functions

julia
export apply, applyreduce, TraitTarget

This file mainly defines the apply and applyreduce functions, and some related functionality.

In general, the idea behind the apply framework is to take as input any geometry, vector of geometries, or feature collection, deconstruct it to the given trait target (any arbitrary GI.AbstractTrait or TraitTarget union thereof, like PointTrait or PolygonTrait) and perform some operation on it.

This allows for a simple and consistent framework within which users can define their own operations trivially easily, and removes a lot of the complexity involved with handling complex geometry structures.

For example, a simple way to flip the x and y coordinates of a geometry is:

julia
flipped_geom = GO.apply(GI.PointTrait(), geom) do p
+import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.CpnCegiD.js";const o=JSON.parse('{"title":"Primitive functions","description":"","frontmatter":{},"headers":[],"relativePath":"source/primitives.md","filePath":"source/primitives.md","lastUpdated":null}'),n={name:"source/primitives.md"},h=t(`

Primitive functions

julia
export apply, applyreduce, TraitTarget

This file mainly defines the apply and applyreduce functions, and some related functionality.

In general, the idea behind the apply framework is to take as input any geometry, vector of geometries, or feature collection, deconstruct it to the given trait target (any arbitrary GI.AbstractTrait or TraitTarget union thereof, like PointTrait or PolygonTrait) and perform some operation on it.

This allows for a simple and consistent framework within which users can define their own operations trivially easily, and removes a lot of the complexity involved with handling complex geometry structures.

For example, a simple way to flip the x and y coordinates of a geometry is:

julia
flipped_geom = GO.apply(GI.PointTrait(), geom) do p
     (GI.y(p), GI.x(p))
 end

As simple as that. There's no need to implement your own decomposition because it's done for you.

Functions like flip, reproject, transform, even segmentize and simplify have been implemented using the apply framework. Similarly, centroid, area and distance have been implemented using the applyreduce framework.

Docstrings

Functions

Missing docstring.

Missing docstring for apply. Check Documenter's build log for details.

Missing docstring.

Missing docstring for applyreduce. Check Documenter's build log for details.

Missing docstring.

Missing docstring for GeometryOps.unwrap. Check Documenter's build log for details.

# GeometryOps.flattenFunction.
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


# GeometryOps.reconstructFunction.
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.

Ususally used in combination with flatten.

source


# GeometryOps.rebuildFunction.
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


Types

Missing docstring.

Missing docstring for TraitTarget. Check Documenter's build log for details.

Implementation

julia
const THREADED_KEYWORD = "- \`threaded\`: \`true\` or \`false\`. Whether to use multithreading. Defaults to \`false\`."
+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


# GeometryOps.reconstructFunction.
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


# GeometryOps.rebuildFunction.
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


Types

Missing docstring.

Missing docstring for TraitTarget. Check Documenter's build log for details.

Implementation

julia
const THREADED_KEYWORD = "- \`threaded\`: \`true\` or \`false\`. Whether to use multithreading. Defaults to \`false\`."
 const CRS_KEYWORD = "- \`crs\`: The CRS to attach to geometries. Defaults to \`nothing\`."
 const CALC_EXTENT_KEYWORD = "- \`calc_extent\`: \`true\` or \`false\`. Whether to calculate the extent. Defaults to \`false\`."
 
@@ -86,14 +86,14 @@ import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.B24clL9_.js";const o
 ) where F

Run _apply on all features in the feature collection, possibly threaded

julia
    apply_to_feature(i) =
         _apply(f, target, GI.getfeature(fc, i); crs, calc_extent, threaded=_False())::GI.Feature
     features = _maptasks(apply_to_feature, 1:GI.nfeature(fc), threaded)
-    if calc_extent isa _True

Calculate the extent of the features

julia
        extent = mapreduce(GI.extent, Extents.union, features)

Return a FeatureCollection with features, crs and caculated extent

julia
        return GI.FeatureCollection(features; crs, extent)
+    if calc_extent isa _True

Calculate the extent of the features

julia
        extent = mapreduce(GI.extent, Extents.union, features)

Return a FeatureCollection with features, crs and calculated extent

julia
        return GI.FeatureCollection(features; crs, extent)
     else

Return a FeatureCollection with features and crs

julia
        return GI.FeatureCollection(features; crs)
     end
 end

Rewrap all FeatureTrait features as GI.Feature, keeping the properties

julia
@inline function _apply(f::F, target, ::GI.FeatureTrait, feature;
     crs=GI.crs(feature), calc_extent=_False(), threaded
 ) where F

Run _apply on the contained geometry

julia
    geometry = _apply(f, target, GI.geometry(feature); crs, calc_extent, threaded)

Get the feature properties

julia
    properties = GI.properties(feature)
-    if calc_extent isa _True

Calculate the extent of the geometry

julia
        extent = GI.extent(geometry)

Return a new Feature with the new geometry and calculated extent, but the oroginal properties and crs

julia
        return GI.Feature(geometry; properties, crs, extent)
-    else

Return a new Feature with the new geometry, but the oroginal properties and crs

julia
        return GI.Feature(geometry; properties, crs)
+    if calc_extent isa _True

Calculate the extent of the geometry

julia
        extent = GI.extent(geometry)

Return a new Feature with the new geometry and calculated extent, but the original properties and crs

julia
        return GI.Feature(geometry; properties, crs, extent)
+    else

Return a new Feature with the new geometry, but the original properties and crs

julia
        return GI.Feature(geometry; properties, crs)
     end
 end

Reconstruct nested geometries, maybe using threads to call _apply on component geoms

julia
@inline function _apply(f::F, target, trait, geom;
     crs=GI.crs(geom), calc_extent=_False(), threaded
@@ -101,9 +101,9 @@ import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.B24clL9_.js";const o
     geoms = _maptasks(apply_to_geom, 1:GI.ngeom(geom), threaded)
     return _apply_inner(geom, geoms, crs, calc_extent)
 end
-function _apply_inner(geom, geoms, crs, calc_extent::_True)

Calculate the extent of the sub geometries

julia
    extent = mapreduce(GI.extent, Extents.union, geoms)

Return a new geometry of the same trait as geom, holding tnew geoms with crs and calcualted extent

julia
    return rebuild(geom, geoms; crs, extent)
+function _apply_inner(geom, geoms, crs, calc_extent::_True)

Calculate the extent of the sub geometries

julia
    extent = mapreduce(GI.extent, Extents.union, geoms)

Return a new geometry of the same trait as geom, holding the new geoms with crs and calculated extent

julia
    return rebuild(geom, geoms; crs, extent)
 end
-function _apply_inner(geom, geoms, crs, calc_extent::_False)

Return a new geometryof the same trait as geom, holding the new geoms with crs

julia
    return rebuild(geom, geoms; crs)
+function _apply_inner(geom, geoms, crs, calc_extent::_False)

Return a new geometry of the same trait as geom, holding the new geoms with crs

julia
    return rebuild(geom, geoms; crs)
 end

Fail loudly if we hit PointTrait without running f (after PointTrait there is no further to dig with _apply) @inline _apply(f, ::TraitTarget{Target}, trait::GI.PointTrait, geom; crs=nothing, kw...) where Target = throw(ArgumentError("target Target not found, but reached a PointTrait leaf")) Finally, these short methods are the main purpose of apply. The Trait is a subtype of the Target (or identical to it) So the Target is found. We apply f to geom and return it to previous _apply calls to be wrapped with the outer geometries/feature/featurecollection/array.

julia
_apply(f::F, ::TraitTarget{Target}, ::Trait, geom; crs=GI.crs(geom), kw...) where {F,Target,Trait<:Target} = f(geom)

Define some specific cases of this match to avoid method ambiguity

julia
for T in (
     GI.PointTrait, GI.LinearRing, GI.LineString,
     GI.MultiPoint, GI.FeatureTrait, GI.FeatureCollectionTrait
@@ -130,7 +130,7 @@ import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.B24clL9_.js";const o
 end
 
 @inline _applyreduce(f::F, op::O, target, geom; threaded, init) where {F, O} =
-    _applyreduce(f, op, target, GI.trait(geom), geom; threaded, init)

Maybe use threads recucing over arrays

julia
@inline function _applyreduce(f::F, op::O, target, ::Nothing, A::AbstractArray; threaded, init) where {F, O}
+    _applyreduce(f, op, target, GI.trait(geom), geom; threaded, init)

Maybe use threads reducing over arrays

julia
@inline function _applyreduce(f::F, op::O, target, ::Nothing, A::AbstractArray; threaded, init) where {F, O}
     applyreduce_array(i) = _applyreduce(f, op, target, A[i]; threaded=_False(), init)
     _mapreducetasks(applyreduce_array, op, eachindex(A), threaded; init)
 end

Try to applyreduce over iterables

julia
@inline function _applyreduce(f::F, op::O, target, ::Nothing, iterable::IterableType; threaded, init) where {F, O, IterableType}
@@ -227,7 +227,7 @@ import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.B24clL9_.js";const o
 
 All objects in \`components\` must have the same \`GeoInterface.trait\`.
 
-Ususally used in combination with \`flatten\`.
+Usually used in combination with \`flatten\`.
 """
 function reconstruct(geom, components)
     obj, iter = _reconstruct(geom, components)
@@ -287,14 +287,14 @@ import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.B24clL9_.js";const o
     end
 end
 
-using Base.Threads: nthreads, @threads, @spawn

Threading utility, modified Mason Protters threading PSA run f over ntasks, where f recieves an AbstractArray/range of linear indices

julia
@inline function _maptasks(f::F, taskrange, threaded::_True)::Vector where F
+using Base.Threads: nthreads, @threads, @spawn

Threading utility, modified Mason Protters threading PSA run f over ntasks, where f receives an AbstractArray/range of linear indices

julia
@inline function _maptasks(f::F, taskrange, threaded::_True)::Vector where F
     ntasks = length(taskrange)

Customize this as needed. More tasks have more overhead, but better load balancing

julia
    tasks_per_thread = 2
     chunk_size = max(1, ntasks ÷ (tasks_per_thread * nthreads()))

partition the range into chunks

julia
    task_chunks = Iterators.partition(taskrange, chunk_size)

Map over the chunks

julia
    tasks = map(task_chunks) do chunk

Spawn a task to process this chunk

julia
        @spawn begin

Where we map f over the chunk indices

julia
            map(f, chunk)
         end
     end

Finally we join the results into a new vector

julia
    return mapreduce(fetch, vcat, tasks)
 end

Here we use the compiler directive @assume_effects :foldable to force the compiler to lookup through the closure. This alone makes e.g. flip 2.5x faster!

julia
Base.@assume_effects :foldable @inline function _maptasks(f::F, taskrange, threaded::_False)::Vector where F
     map(f, taskrange)
-end

Threading utility, modified Mason Protters threading PSA run f over ntasks, where f recieves an AbstractArray/range of linear indices

WARNING: this will not work for mean/median - only ops where grouping is possible

julia
@inline function _mapreducetasks(f::F, op, taskrange, threaded::_True; init) where F
+end

Threading utility, modified Mason Protters threading PSA run f over ntasks, where f receives an AbstractArray/range of linear indices

WARNING: this will not work for mean/median - only ops where grouping is possible

julia
@inline function _mapreducetasks(f::F, op, taskrange, threaded::_True; init) where F
     ntasks = length(taskrange)

Customize this as needed. More tasks have more overhead, but better load balancing

julia
    tasks_per_thread = 2
     chunk_size = max(1, ntasks ÷ (tasks_per_thread * nthreads()))

partition the range into chunks

julia
    task_chunks = Iterators.partition(taskrange, chunk_size)

Map over the chunks

julia
    tasks = map(task_chunks) do chunk

Spawn a task to process this chunk

julia
        @spawn begin

Where we map f over the chunk indices

julia
            mapreduce(f, op, chunk; init)
         end
diff --git a/dev/assets/source_primitives.md.CJbutZTX.lean.js b/dev/assets/source_primitives.md.Ci3epseD.lean.js
similarity index 70%
rename from dev/assets/source_primitives.md.CJbutZTX.lean.js
rename to dev/assets/source_primitives.md.Ci3epseD.lean.js
index 50de90a97..3d33b7735 100644
--- a/dev/assets/source_primitives.md.CJbutZTX.lean.js
+++ b/dev/assets/source_primitives.md.Ci3epseD.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.B24clL9_.js";const o=JSON.parse('{"title":"Primitive functions","description":"","frontmatter":{},"headers":[],"relativePath":"source/primitives.md","filePath":"source/primitives.md","lastUpdated":null}'),n={name:"source/primitives.md"},h=t("",194),e=[h];function l(p,k,r,d,g,E){return a(),i("div",null,e)}const c=s(n,[["render",l]]);export{o as __pageData,c as default};
+import{_ as s,c as i,o as a,a7 as t}from"./chunks/framework.CpnCegiD.js";const o=JSON.parse('{"title":"Primitive functions","description":"","frontmatter":{},"headers":[],"relativePath":"source/primitives.md","filePath":"source/primitives.md","lastUpdated":null}'),n={name:"source/primitives.md"},h=t("",194),e=[h];function l(p,k,r,d,g,E){return a(),i("div",null,e)}const c=s(n,[["render",l]]);export{o as __pageData,c as default};
diff --git a/dev/assets/source_transformations_correction_closed_ring.md.BWSVYN50.js b/dev/assets/source_transformations_correction_closed_ring.md.By-OKekv.js
similarity index 99%
rename from dev/assets/source_transformations_correction_closed_ring.md.BWSVYN50.js
rename to dev/assets/source_transformations_correction_closed_ring.md.By-OKekv.js
index 5e16f6218..e5eecec71 100644
--- a/dev/assets/source_transformations_correction_closed_ring.md.BWSVYN50.js
+++ b/dev/assets/source_transformations_correction_closed_ring.md.By-OKekv.js
@@ -1,4 +1,4 @@
-import{_ as t,c as i,j as s,a,a7 as e,o as n}from"./chunks/framework.B24clL9_.js";const Q=JSON.parse('{"title":"Closed Rings","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/closed_ring.md","filePath":"source/transformations/correction/closed_ring.md","lastUpdated":null}'),l={name:"source/transformations/correction/closed_ring.md"},h=e(`

Closed Rings

julia
export ClosedRing

A closed ring is a ring that has the same start and end point. This is a requirement for a valid polygon (technically, for a valid LinearRing). This correction is used to ensure that the polygon is valid.

The reason this operates on the polygon level is that several packages are loose about whether they return LinearRings (which is correct) or LineStrings (which is incorrect) for the contents of a polygon. Therefore, we decompose manually to ensure correctness.

Example

Many polygon providers do not close their polygons, which makes them invalid according to the specification. Quite a few geometry algorithms assume that polygons are closed, and leaving them open can lead to incorrect results!

For example, the following polygon is not valid:

julia
import GeoInterface as GI
+import{_ as t,c as i,j as s,a,a7 as e,o as n}from"./chunks/framework.CpnCegiD.js";const Q=JSON.parse('{"title":"Closed Rings","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/closed_ring.md","filePath":"source/transformations/correction/closed_ring.md","lastUpdated":null}'),l={name:"source/transformations/correction/closed_ring.md"},h=e(`

Closed Rings

julia
export ClosedRing

A closed ring is a ring that has the same start and end point. This is a requirement for a valid polygon (technically, for a valid LinearRing). This correction is used to ensure that the polygon is valid.

The reason this operates on the polygon level is that several packages are loose about whether they return LinearRings (which is correct) or LineStrings (which is incorrect) for the contents of a polygon. Therefore, we decompose manually to ensure correctness.

Example

Many polygon providers do not close their polygons, which makes them invalid according to the specification. Quite a few geometry algorithms assume that polygons are closed, and leaving them open can lead to incorrect results!

For example, the following polygon is not valid:

julia
import GeoInterface as GI
 polygon = GI.Polygon([[(0, 0), (1, 0), (1, 1), (0, 1)]])
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Int64, Int64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Int64, Int64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Int64, Int64}}, Nothing, Nothing}([(0, 0), (1, 0), (1, 1), (0, 1)], nothing, nothing)], nothing, nothing)

even though it will look correct when visualized, and indeed appears correct.

julia
import GeometryOps as GO
 GO.fix(polygon, corrections = [GO.ClosedRing()])
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(0.0, 0.0), (1.0, 0.0), (1.0, 1.0), (0.0, 1.0), (0.0, 0.0)], nothing, nothing)], nothing, nothing)
`,12),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},k={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"},r=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),o=[r],d=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),g={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.254ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2322.4 748","aria-hidden":"true"},E=e('',1),y=[E],u=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"),s("mo",null,"+"),s("mn",null,"1")])],-1),F=e(`

Implementation

julia
"""
     ClosedRing() <: GeometryCorrection
diff --git a/dev/assets/source_transformations_correction_closed_ring.md.BWSVYN50.lean.js b/dev/assets/source_transformations_correction_closed_ring.md.By-OKekv.lean.js
similarity index 97%
rename from dev/assets/source_transformations_correction_closed_ring.md.BWSVYN50.lean.js
rename to dev/assets/source_transformations_correction_closed_ring.md.By-OKekv.lean.js
index ccebbdab1..c60174e29 100644
--- a/dev/assets/source_transformations_correction_closed_ring.md.BWSVYN50.lean.js
+++ b/dev/assets/source_transformations_correction_closed_ring.md.By-OKekv.lean.js
@@ -1 +1 @@
-import{_ as t,c as i,j as s,a,a7 as e,o as n}from"./chunks/framework.B24clL9_.js";const Q=JSON.parse('{"title":"Closed Rings","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/closed_ring.md","filePath":"source/transformations/correction/closed_ring.md","lastUpdated":null}'),l={name:"source/transformations/correction/closed_ring.md"},h=e("",12),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},k={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"},r=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),o=[r],d=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),g={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.254ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2322.4 748","aria-hidden":"true"},E=e("",1),y=[E],u=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"),s("mo",null,"+"),s("mn",null,"1")])],-1),F=e("",12);function m(C,_,v,T,b,f){return n(),i("div",null,[h,s("p",null,[a("You can see that the last point of the ring here is equal to the first point. For a polygon with "),s("mjx-container",p,[(n(),i("svg",k,o)),d]),a(" sides, there should be "),s("mjx-container",g,[(n(),i("svg",c,y)),u]),a(" vertices.")]),F])}const A=t(l,[["render",m]]);export{Q as __pageData,A as default};
+import{_ as t,c as i,j as s,a,a7 as e,o as n}from"./chunks/framework.CpnCegiD.js";const Q=JSON.parse('{"title":"Closed Rings","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/closed_ring.md","filePath":"source/transformations/correction/closed_ring.md","lastUpdated":null}'),l={name:"source/transformations/correction/closed_ring.md"},h=e("",12),p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},k={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"},r=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),o=[r],d=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),g={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.186ex"},xmlns:"http://www.w3.org/2000/svg",width:"5.254ex",height:"1.692ex",role:"img",focusable:"false",viewBox:"0 -666 2322.4 748","aria-hidden":"true"},E=e("",1),y=[E],u=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"),s("mo",null,"+"),s("mn",null,"1")])],-1),F=e("",12);function m(C,_,v,T,b,f){return n(),i("div",null,[h,s("p",null,[a("You can see that the last point of the ring here is equal to the first point. For a polygon with "),s("mjx-container",p,[(n(),i("svg",k,o)),d]),a(" sides, there should be "),s("mjx-container",g,[(n(),i("svg",c,y)),u]),a(" vertices.")]),F])}const A=t(l,[["render",m]]);export{Q as __pageData,A as default};
diff --git a/dev/assets/source_transformations_correction_geometry_correction.md.C9Yo3rkc.js b/dev/assets/source_transformations_correction_geometry_correction.md.Bj6QaD57.js
similarity index 99%
rename from dev/assets/source_transformations_correction_geometry_correction.md.C9Yo3rkc.js
rename to dev/assets/source_transformations_correction_geometry_correction.md.Bj6QaD57.js
index 1d12441bb..0e10cbafd 100644
--- a/dev/assets/source_transformations_correction_geometry_correction.md.C9Yo3rkc.js
+++ b/dev/assets/source_transformations_correction_geometry_correction.md.Bj6QaD57.js
@@ -1,4 +1,4 @@
-import{_ as i,c as s,o as e,a7 as t}from"./chunks/framework.B24clL9_.js";const g=JSON.parse('{"title":"Geometry Corrections","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/geometry_correction.md","filePath":"source/transformations/correction/geometry_correction.md","lastUpdated":null}'),a={name:"source/transformations/correction/geometry_correction.md"},n=t(`

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.GeometryCorrectionType.
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
"""
+import{_ as i,c as s,o as e,a7 as t}from"./chunks/framework.CpnCegiD.js";const g=JSON.parse('{"title":"Geometry Corrections","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/geometry_correction.md","filePath":"source/transformations/correction/geometry_correction.md","lastUpdated":null}'),a={name:"source/transformations/correction/geometry_correction.md"},n=t(`

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.GeometryCorrectionType.
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.
diff --git a/dev/assets/source_transformations_correction_geometry_correction.md.C9Yo3rkc.lean.js b/dev/assets/source_transformations_correction_geometry_correction.md.Bj6QaD57.lean.js
similarity index 76%
rename from dev/assets/source_transformations_correction_geometry_correction.md.C9Yo3rkc.lean.js
rename to dev/assets/source_transformations_correction_geometry_correction.md.Bj6QaD57.lean.js
index 151c430b5..c6d040ec2 100644
--- a/dev/assets/source_transformations_correction_geometry_correction.md.C9Yo3rkc.lean.js
+++ b/dev/assets/source_transformations_correction_geometry_correction.md.Bj6QaD57.lean.js
@@ -1 +1 @@
-import{_ as i,c as s,o as e,a7 as t}from"./chunks/framework.B24clL9_.js";const g=JSON.parse('{"title":"Geometry Corrections","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/geometry_correction.md","filePath":"source/transformations/correction/geometry_correction.md","lastUpdated":null}'),a={name:"source/transformations/correction/geometry_correction.md"},n=t("",23),r=[n];function o(l,p,h,c,k,d){return e(),s("div",null,r)}const m=i(a,[["render",o]]);export{g as __pageData,m as default};
+import{_ as i,c as s,o as e,a7 as t}from"./chunks/framework.CpnCegiD.js";const g=JSON.parse('{"title":"Geometry Corrections","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/geometry_correction.md","filePath":"source/transformations/correction/geometry_correction.md","lastUpdated":null}'),a={name:"source/transformations/correction/geometry_correction.md"},n=t("",23),r=[n];function o(l,p,h,c,k,d){return e(),s("div",null,r)}const m=i(a,[["render",o]]);export{g as __pageData,m as default};
diff --git a/dev/assets/source_transformations_correction_intersecting_polygons.md.F5THHt5h.js b/dev/assets/source_transformations_correction_intersecting_polygons.md.RsuC_abn.js
similarity index 95%
rename from dev/assets/source_transformations_correction_intersecting_polygons.md.F5THHt5h.js
rename to dev/assets/source_transformations_correction_intersecting_polygons.md.RsuC_abn.js
index b8ba0c2db..8b5e67bee 100644
--- a/dev/assets/source_transformations_correction_intersecting_polygons.md.F5THHt5h.js
+++ b/dev/assets/source_transformations_correction_intersecting_polygons.md.RsuC_abn.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const y=JSON.parse('{"title":"Intersecting Polygons","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/intersecting_polygons.md","filePath":"source/transformations/correction/intersecting_polygons.md","lastUpdated":null}'),l={name:"source/transformations/correction/intersecting_polygons.md"},t=n(`

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 requirment 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 s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const y=JSON.parse('{"title":"Intersecting Polygons","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/intersecting_polygons.md","filePath":"source/transformations/correction/intersecting_polygons.md","lastUpdated":null}'),l={name:"source/transformations/correction/intersecting_polygons.md"},t=n(`

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, Vector{GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}[GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(0.0, 0.0), (3.0, 0.0), (3.0, 3.0), (0.0, 3.0), (0.0, 0.0)], nothing, nothing)], nothing, nothing), GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(0.0, 0.0), (3.0, 0.0), (3.0, 3.0), (0.0, 3.0), (0.0, 0.0)], nothing, nothing)], nothing, nothing)], nothing, nothing)

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, Vector{GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}[GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(0.0, 0.0), (3.0, 0.0), (3.0, 3.0), (0.0, 3.0), (0.0, 0.0)], nothing, nothing)], nothing, nothing)], nothing, nothing)

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

Implementation

julia
"""
diff --git a/dev/assets/source_transformations_correction_intersecting_polygons.md.F5THHt5h.lean.js b/dev/assets/source_transformations_correction_intersecting_polygons.md.RsuC_abn.lean.js
similarity index 76%
rename from dev/assets/source_transformations_correction_intersecting_polygons.md.F5THHt5h.lean.js
rename to dev/assets/source_transformations_correction_intersecting_polygons.md.RsuC_abn.lean.js
index 320eb711a..5e7916fe8 100644
--- a/dev/assets/source_transformations_correction_intersecting_polygons.md.F5THHt5h.lean.js
+++ b/dev/assets/source_transformations_correction_intersecting_polygons.md.RsuC_abn.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const y=JSON.parse('{"title":"Intersecting Polygons","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/intersecting_polygons.md","filePath":"source/transformations/correction/intersecting_polygons.md","lastUpdated":null}'),l={name:"source/transformations/correction/intersecting_polygons.md"},t=n("",22),h=[t];function p(e,k,r,g,o,E){return a(),i("div",null,h)}const c=s(l,[["render",p]]);export{y as __pageData,c as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const y=JSON.parse('{"title":"Intersecting Polygons","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/correction/intersecting_polygons.md","filePath":"source/transformations/correction/intersecting_polygons.md","lastUpdated":null}'),l={name:"source/transformations/correction/intersecting_polygons.md"},t=n("",22),h=[t];function p(e,k,r,g,o,E){return a(),i("div",null,h)}const c=s(l,[["render",p]]);export{y as __pageData,c as default};
diff --git a/dev/assets/source_transformations_extent.md.DmS08vS9.js b/dev/assets/source_transformations_extent.md.BPu3IaY5.js
similarity index 95%
rename from dev/assets/source_transformations_extent.md.DmS08vS9.js
rename to dev/assets/source_transformations_extent.md.BPu3IaY5.js
index 4c8807f85..71c312e12 100644
--- a/dev/assets/source_transformations_extent.md.DmS08vS9.js
+++ b/dev/assets/source_transformations_extent.md.BPu3IaY5.js
@@ -1,4 +1,4 @@
-import{_ as s,c as e,o as a,a7 as t}from"./chunks/framework.B24clL9_.js";const u=JSON.parse('{"title":"Extent embedding","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/extent.md","filePath":"source/transformations/extent.md","lastUpdated":null}'),n={name:"source/transformations/extent.md"},i=t(`

Extent embedding

julia
"""
+import{_ as s,c as e,o as a,a7 as t}from"./chunks/framework.CpnCegiD.js";const u=JSON.parse('{"title":"Extent embedding","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/extent.md","filePath":"source/transformations/extent.md","lastUpdated":null}'),n={name:"source/transformations/extent.md"},i=t(`

Extent embedding

julia
"""
     embed_extent(obj)
 
 Recursively wrap the object with a GeoInterface.jl geometry,
diff --git a/dev/assets/source_transformations_extent.md.DmS08vS9.lean.js b/dev/assets/source_transformations_extent.md.BPu3IaY5.lean.js
similarity index 72%
rename from dev/assets/source_transformations_extent.md.DmS08vS9.lean.js
rename to dev/assets/source_transformations_extent.md.BPu3IaY5.lean.js
index 2a86c490f..0af81ea05 100644
--- a/dev/assets/source_transformations_extent.md.DmS08vS9.lean.js
+++ b/dev/assets/source_transformations_extent.md.BPu3IaY5.lean.js
@@ -1 +1 @@
-import{_ as s,c as e,o as a,a7 as t}from"./chunks/framework.B24clL9_.js";const u=JSON.parse('{"title":"Extent embedding","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/extent.md","filePath":"source/transformations/extent.md","lastUpdated":null}'),n={name:"source/transformations/extent.md"},i=t("",6),l=[i];function p(r,h,d,o,c,k){return a(),e("div",null,l)}const m=s(n,[["render",p]]);export{u as __pageData,m as default};
+import{_ as s,c as e,o as a,a7 as t}from"./chunks/framework.CpnCegiD.js";const u=JSON.parse('{"title":"Extent embedding","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/extent.md","filePath":"source/transformations/extent.md","lastUpdated":null}'),n={name:"source/transformations/extent.md"},i=t("",6),l=[i];function p(r,h,d,o,c,k){return a(),e("div",null,l)}const m=s(n,[["render",p]]);export{u as __pageData,m as default};
diff --git a/dev/assets/source_transformations_flip.md.BJm-42I_.js b/dev/assets/source_transformations_flip.md.BGimQo7i.js
similarity index 97%
rename from dev/assets/source_transformations_flip.md.BJm-42I_.js
rename to dev/assets/source_transformations_flip.md.BGimQo7i.js
index 81942fc32..4098ec5e1 100644
--- a/dev/assets/source_transformations_flip.md.BJm-42I_.js
+++ b/dev/assets/source_transformations_flip.md.BGimQo7i.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const y=JSON.parse('{"title":"Coordinate flipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/flip.md","filePath":"source/transformations/flip.md","lastUpdated":null}'),p={name:"source/transformations/flip.md"},t=n(`

Coordinate flipping

This is a simple example of how to use the apply functionality in a function, by flipping the x and y coordinates of a geometry.

julia
"""
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const y=JSON.parse('{"title":"Coordinate flipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/flip.md","filePath":"source/transformations/flip.md","lastUpdated":null}'),p={name:"source/transformations/flip.md"},t=n(`

Coordinate flipping

This is a simple example of how to use the apply functionality in a function, by flipping the x and y coordinates of a geometry.

julia
"""
     flip(obj)
 
 Swap all of the x and y coordinates in obj, otherwise
diff --git a/dev/assets/source_transformations_flip.md.BJm-42I_.lean.js b/dev/assets/source_transformations_flip.md.BGimQo7i.lean.js
similarity index 72%
rename from dev/assets/source_transformations_flip.md.BJm-42I_.lean.js
rename to dev/assets/source_transformations_flip.md.BGimQo7i.lean.js
index e5a31707c..3211a6ba4 100644
--- a/dev/assets/source_transformations_flip.md.BJm-42I_.lean.js
+++ b/dev/assets/source_transformations_flip.md.BGimQo7i.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const y=JSON.parse('{"title":"Coordinate flipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/flip.md","filePath":"source/transformations/flip.md","lastUpdated":null}'),p={name:"source/transformations/flip.md"},t=n("",5),l=[t];function h(e,k,r,d,o,g){return a(),i("div",null,l)}const c=s(p,[["render",h]]);export{y as __pageData,c as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const y=JSON.parse('{"title":"Coordinate flipping","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/flip.md","filePath":"source/transformations/flip.md","lastUpdated":null}'),p={name:"source/transformations/flip.md"},t=n("",5),l=[t];function h(e,k,r,d,o,g){return a(),i("div",null,l)}const c=s(p,[["render",h]]);export{y as __pageData,c as default};
diff --git a/dev/assets/source_transformations_reproject.md.6JWOJF2A.js b/dev/assets/source_transformations_reproject.md.6JWOJF2A.js
deleted file mode 100644
index 12974e959..000000000
--- a/dev/assets/source_transformations_reproject.md.6JWOJF2A.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.B24clL9_.js";const y=JSON.parse('{"title":"Geometry reprojection","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/reproject.md","filePath":"source/transformations/reproject.md","lastUpdated":null}'),n={name:"source/transformations/reproject.md"},t=e('

Geometry reprojection

julia
export reproject

This file is pretty simple - it simply reprojects a geometry pointwise from one CRS to another. It uses the Proj package for the transformation, but this could be moved to an extension if needed.

Note that the actual implementation is in the GeometryOpsProjExt extension module.

This works using the apply functionality.

julia
"""\n    reproject(geometry; source_crs, target_crs, transform, always_xy, time)\n    reproject(geometry, source_crs, target_crs; always_xy, time)\n    reproject(geometry, transform; always_xy, time)\n\nReproject any GeoInterface.jl compatible `geometry` from `source_crs` to `target_crs`.\n\nThe returned object will be constructed from `GeoInterface.WrapperGeometry`\ngeometries, wrapping views of a `Vector{Proj.Point{D}}`, where `D` is the dimension.\n\n!!! tip\n    The `Proj.jl` package must be loaded for this method to work,\n    since it is implemented in a package extension.\n\n# Arguments\n\n- `geometry`: Any GeoInterface.jl compatible geometries.\n- `source_crs`: the source coordinate referece system, as a GeoFormatTypes.jl object or a string.\n- `target_crs`: the target coordinate referece system, as a GeoFormatTypes.jl object or a string.\n\nIf these a passed as keywords, `transform` will take priority.\nWithout it `target_crs` is always needed, and `source_crs` is\nneeded if it is not retreivable from the geometry with `GeoInterface.crs(geometry)`.\n\n# Keywords\n\n- `always_xy`: force x, y coordinate order, `true` by default.\n    `false` will expect and return points in the crs coordinate order.\n- `time`: the time for the coordinates. `Inf` by default.\n$APPLY_KEYWORDS\n"""\nfunction reproject end

Method error handling

We also inject a method error handler, which prints a suggestion if the Proj extension is not loaded.

julia
function _reproject_error_hinter(io, exc, argtypes, kwargs)\n    if isnothing(Base.get_extension(GeometryOps, :GeometryOpsProjExt)) && exc.f == reproject\n        print(io, "\\n\\nThe `reproject` method requires the Proj.jl package to be explicitly loaded.\\n")\n        print(io, "You can do this by simply typing ")\n        printstyled(io, "using Proj"; color = :cyan, bold = true)\n        println(io, " in your REPL, \\nor otherwise loading Proj.jl via using or import.")\n    else # this is a more general error\n        nothing\n    end\nend

This page was generated using Literate.jl.

',11),p=[t];function l(r,h,o,k,d,c){return a(),i("div",null,p)}const F=s(n,[["render",l]]);export{y as __pageData,F as default}; diff --git a/dev/assets/source_transformations_reproject.md.DHAjuiB9.js b/dev/assets/source_transformations_reproject.md.DHAjuiB9.js new file mode 100644 index 000000000..719f9d374 --- /dev/null +++ b/dev/assets/source_transformations_reproject.md.DHAjuiB9.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.CpnCegiD.js";const y=JSON.parse('{"title":"Geometry reprojection","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/reproject.md","filePath":"source/transformations/reproject.md","lastUpdated":null}'),n={name:"source/transformations/reproject.md"},t=e('

Geometry reprojection

julia
export reproject

This file is pretty simple - it simply reprojects a geometry pointwise from one CRS to another. It uses the Proj package for the transformation, but this could be moved to an extension if needed.

Note that the actual implementation is in the GeometryOpsProjExt extension module.

This works using the apply functionality.

julia
"""\n    reproject(geometry; source_crs, target_crs, transform, always_xy, time)\n    reproject(geometry, source_crs, target_crs; always_xy, time)\n    reproject(geometry, transform; always_xy, time)\n\nReproject any GeoInterface.jl compatible `geometry` from `source_crs` to `target_crs`.\n\nThe returned object will be constructed from `GeoInterface.WrapperGeometry`\ngeometries, wrapping views of a `Vector{Proj.Point{D}}`, where `D` is the dimension.\n\n!!! tip\n    The `Proj.jl` package must be loaded for this method to work,\n    since it is implemented in a package extension.\n\n# Arguments\n\n- `geometry`: Any GeoInterface.jl compatible geometries.\n- `source_crs`: the source coordinate reference system, as a GeoFormatTypes.jl object or a string.\n- `target_crs`: the target coordinate reference system, as a GeoFormatTypes.jl object or a string.\n\nIf these a passed as keywords, `transform` will take priority.\nWithout it `target_crs` is always needed, and `source_crs` is\nneeded if it is not retrievable from the geometry with `GeoInterface.crs(geometry)`.\n\n# Keywords\n\n- `always_xy`: force x, y coordinate order, `true` by default.\n    `false` will expect and return points in the crs coordinate order.\n- `time`: the time for the coordinates. `Inf` by default.\n$APPLY_KEYWORDS\n"""\nfunction reproject end

Method error handling

We also inject a method error handler, which prints a suggestion if the Proj extension is not loaded.

julia
function _reproject_error_hinter(io, exc, argtypes, kwargs)\n    if isnothing(Base.get_extension(GeometryOps, :GeometryOpsProjExt)) && exc.f == reproject\n        print(io, "\\n\\nThe `reproject` method requires the Proj.jl package to be explicitly loaded.\\n")\n        print(io, "You can do this by simply typing ")\n        printstyled(io, "using Proj"; color = :cyan, bold = true)\n        println(io, " in your REPL, \\nor otherwise loading Proj.jl via using or import.")\n    else # this is a more general error\n        nothing\n    end\nend

This page was generated using Literate.jl.

',11),p=[t];function l(r,h,o,k,d,c){return a(),i("div",null,p)}const F=s(n,[["render",l]]);export{y as __pageData,F as default}; diff --git a/dev/assets/source_transformations_reproject.md.6JWOJF2A.lean.js b/dev/assets/source_transformations_reproject.md.DHAjuiB9.lean.js similarity index 73% rename from dev/assets/source_transformations_reproject.md.6JWOJF2A.lean.js rename to dev/assets/source_transformations_reproject.md.DHAjuiB9.lean.js index 647a95196..2c4e3fa03 100644 --- a/dev/assets/source_transformations_reproject.md.6JWOJF2A.lean.js +++ b/dev/assets/source_transformations_reproject.md.DHAjuiB9.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.B24clL9_.js";const y=JSON.parse('{"title":"Geometry reprojection","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/reproject.md","filePath":"source/transformations/reproject.md","lastUpdated":null}'),n={name:"source/transformations/reproject.md"},t=e("",11),p=[t];function l(r,h,o,k,d,c){return a(),i("div",null,p)}const F=s(n,[["render",l]]);export{y as __pageData,F as default}; +import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.CpnCegiD.js";const y=JSON.parse('{"title":"Geometry reprojection","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/reproject.md","filePath":"source/transformations/reproject.md","lastUpdated":null}'),n={name:"source/transformations/reproject.md"},t=e("",11),p=[t];function l(r,h,o,k,d,c){return a(),i("div",null,p)}const F=s(n,[["render",l]]);export{y as __pageData,F as default}; diff --git a/dev/assets/source_transformations_segmentize.md.DZWIMZsy.js b/dev/assets/source_transformations_segmentize.md.D4VG4yA6.js similarity index 99% rename from dev/assets/source_transformations_segmentize.md.DZWIMZsy.js rename to dev/assets/source_transformations_segmentize.md.D4VG4yA6.js index b1c66592f..561561235 100644 --- a/dev/assets/source_transformations_segmentize.md.DZWIMZsy.js +++ b/dev/assets/source_transformations_segmentize.md.D4VG4yA6.js @@ -1,4 +1,4 @@ -import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h="/GeometryOps.jl/dev/assets/nzznycn.BOOG5oTW.png",t="/GeometryOps.jl/dev/assets/qtioqlb.D_GL9RZM.png",c=JSON.parse('{"title":"Segmentize","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/segmentize.md","filePath":"source/transformations/segmentize.md","lastUpdated":null}'),l={name:"source/transformations/segmentize.md"},e=n(`

Segmentize

julia
export segmentize
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const h="/GeometryOps.jl/dev/assets/lpjngjy.BOOG5oTW.png",t="/GeometryOps.jl/dev/assets/azslksb.DfFnyYWA.png",c=JSON.parse('{"title":"Segmentize","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/segmentize.md","filePath":"source/transformations/segmentize.md","lastUpdated":null}'),l={name:"source/transformations/segmentize.md"},e=n(`

Segmentize

julia
export segmentize
 export LinearSegments, GeodesicSegments

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

Info

We plan to add interpolated segmentization from DataInterpolations.jl in the future, which will be available to any vector of point-like objects.

For now, this function only works on 2D geometries. We will also support 3D geometries, as well as measure interpolation, in the future.

Examples

julia
import GeometryOps as GO, GeoInterface as GI
 rectangle = GI.Wrappers.Polygon([[(0.0, 50.0), (7.071, 57.07), (0, 64.14), (-7.07, 57.07), (0.0, 50.0)]])
 linear = GO.segmentize(rectangle; max_distance = 5)
diff --git a/dev/assets/source_transformations_segmentize.md.DZWIMZsy.lean.js b/dev/assets/source_transformations_segmentize.md.D4VG4yA6.lean.js
similarity index 66%
rename from dev/assets/source_transformations_segmentize.md.DZWIMZsy.lean.js
rename to dev/assets/source_transformations_segmentize.md.D4VG4yA6.lean.js
index 633b0cbd0..e0946780f 100644
--- a/dev/assets/source_transformations_segmentize.md.DZWIMZsy.lean.js
+++ b/dev/assets/source_transformations_segmentize.md.D4VG4yA6.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h="/GeometryOps.jl/dev/assets/nzznycn.BOOG5oTW.png",t="/GeometryOps.jl/dev/assets/qtioqlb.D_GL9RZM.png",c=JSON.parse('{"title":"Segmentize","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/segmentize.md","filePath":"source/transformations/segmentize.md","lastUpdated":null}'),l={name:"source/transformations/segmentize.md"},e=n("",34),k=[e];function p(r,E,d,g,y,o){return a(),i("div",null,k)}const C=s(l,[["render",p]]);export{c as __pageData,C as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const h="/GeometryOps.jl/dev/assets/lpjngjy.BOOG5oTW.png",t="/GeometryOps.jl/dev/assets/azslksb.DfFnyYWA.png",c=JSON.parse('{"title":"Segmentize","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/segmentize.md","filePath":"source/transformations/segmentize.md","lastUpdated":null}'),l={name:"source/transformations/segmentize.md"},e=n("",34),k=[e];function p(r,E,d,g,y,o){return a(),i("div",null,k)}const C=s(l,[["render",p]]);export{c as __pageData,C as default};
diff --git a/dev/assets/source_transformations_simplify.md.CTR8JsZ-.js b/dev/assets/source_transformations_simplify.md.BT2U96wa.js
similarity index 99%
rename from dev/assets/source_transformations_simplify.md.CTR8JsZ-.js
rename to dev/assets/source_transformations_simplify.md.BT2U96wa.js
index 1be3ad343..c87974917 100644
--- a/dev/assets/source_transformations_simplify.md.CTR8JsZ-.js
+++ b/dev/assets/source_transformations_simplify.md.BT2U96wa.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h="/GeometryOps.jl/dev/assets/reeyhtn.Bglvb-jp.png",l="/GeometryOps.jl/dev/assets/cpjtgip.B94PsR1K.png",k="/GeometryOps.jl/dev/assets/haxqwpd.T7QiddIg.png",t="/GeometryOps.jl/dev/assets/bjjpnwy.CGuOBdTF.png",u=JSON.parse('{"title":"Geometry simplification","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/simplify.md","filePath":"source/transformations/simplify.md","lastUpdated":null}'),p={name:"source/transformations/simplify.md"},e=n(`

Geometry simplification

This file holds implementations for the RadialDistance, Douglas-Peucker, and Visvalingam-Whyatt algorithms for simplifying geometries (specifically for polygons and lines).

The GEOS extension also allows for GEOS's topology preserving simplification as well as Douglas-Peucker simplification implemented in GEOS. Call this by passing GEOS(; method = :TopologyPreserve) or GEOS(; method = :DouglasPeucker) to the algorithm.

Examples

A quick and dirty example is:

julia
using Makie, GeoInterfaceMakie
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const h="/GeometryOps.jl/dev/assets/ihbnhiw.Bglvb-jp.png",l="/GeometryOps.jl/dev/assets/prkyiek.B94PsR1K.png",k="/GeometryOps.jl/dev/assets/jehsbsq.Ca53rWB_.png",t="/GeometryOps.jl/dev/assets/sbyddke.BQg609vq.png",u=JSON.parse('{"title":"Geometry simplification","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/simplify.md","filePath":"source/transformations/simplify.md","lastUpdated":null}'),p={name:"source/transformations/simplify.md"},e=n(`

Geometry simplification

This file holds implementations for the RadialDistance, Douglas-Peucker, and Visvalingam-Whyatt algorithms for simplifying geometries (specifically for polygons and lines).

The GEOS extension also allows for GEOS's topology preserving simplification as well as Douglas-Peucker simplification implemented in GEOS. Call this by passing GEOS(; method = :TopologyPreserve) or GEOS(; method = :DouglasPeucker) to the algorithm.

Examples

A quick and dirty example is:

julia
using Makie, GeoInterfaceMakie
 import GeoInterface as GI
 import GeometryOps as GO
 
@@ -95,7 +95,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h
 
 \`RadialDistance\`, \`DouglasPeucker\`, or
 \`VisvalingamWhyatt\` algorithms are available,
-listed in order of increasing quality but decreaseing performance.
+listed in order of increasing quality but decreasing performance.
 
 \`PoinTrait\` and \`MultiPointTrait\` are returned unchanged.
 
@@ -146,7 +146,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h
  ) = _simplify(DouglasPeucker(; kw...), data; prefilter_alg, calc_extent, threaded, crs)
 
 
-#= For each algorithm, apply simplication to all curves, multipoints, and
+#= For each algorithm, apply simplification to all curves, multipoints, and
 points, reconstructing everything else around them. =#
 function _simplify(alg::Union{SimplifyAlg, GEOS}, data; prefilter_alg=nothing, kw...)
     simplifier(geom) = _simplify(GI.trait(geom), alg, geom; prefilter_alg)
@@ -188,7 +188,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h
 $SIMPLIFY_ALG_KEYWORDS
 - \`tol\`: the minimum distance between points.
 
-Note: user input \`tol\` is squared to avoid uneccesary computation in algorithm.
+Note: user input \`tol\` is squared to avoid unnecessary computation in algorithm.
 """
 @kwdef struct RadialDistance <: SimplifyAlg
     number::Union{Int64,Nothing} = nothing
@@ -221,7 +221,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h
 distance from the line between its neighboring points.
 
 $DOUGLAS_PEUCKER_KEYWORDS
-Note: user input \`tol\` is squared to avoid uneccesary computation in algorithm.
+Note: user input \`tol\` is squared to avoid unnecessary computation in algorithm.
 """
 @kwdef struct DouglasPeucker <: SimplifyAlg
     number::Union{Int64,Nothing} = nothing
@@ -238,7 +238,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h
 (https://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm). =#
 function _simplify(alg::DouglasPeucker, points::Vector, preserve_endpoint)
     npoints = length(points)
-    npoints <= MIN_POINTS && return points

Determine stopping critetia

julia
    max_points = if !isnothing(alg.tol)
+    npoints <= MIN_POINTS && return points

Determine stopping criteria

julia
    max_points = if !isnothing(alg.tol)
         npoints
     else
         npts = !isnothing(alg.number) ? alg.number : max(3, round(Int, alg.ratio * npoints))
@@ -304,7 +304,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h
 end
 
 #= find maximum distance of any point between the start_idx and end_idx to the line formed
-by conencting the points at start_idx and end_idx. Note that the first index of maximum
+by connecting the points at start_idx and end_idx. Note that the first index of maximum
 value will be used, which might cause differences in results from other algorithms.=#
 function _find_max_squared_dist(points, start_idx, end_idx)
     max_idx = start_idx
@@ -328,7 +328,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h
 $SIMPLIFY_ALG_KEYWORDS
 - \`tol\`: the minimum area of a triangle made with a point and
     its neighboring points.
-Note: user input \`tol\` is doubled to avoid uneccesary computation in algorithm.
+Note: user input \`tol\` is doubled to avoid unnecessary computation in algorithm.
 """
 @kwdef struct VisvalingamWhyatt <: SimplifyAlg
     number::Union{Int,Nothing} = nothing
diff --git a/dev/assets/source_transformations_simplify.md.CTR8JsZ-.lean.js b/dev/assets/source_transformations_simplify.md.BT2U96wa.lean.js
similarity index 53%
rename from dev/assets/source_transformations_simplify.md.CTR8JsZ-.lean.js
rename to dev/assets/source_transformations_simplify.md.BT2U96wa.lean.js
index 5f045fb7b..9e072aa93 100644
--- a/dev/assets/source_transformations_simplify.md.CTR8JsZ-.lean.js
+++ b/dev/assets/source_transformations_simplify.md.BT2U96wa.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const h="/GeometryOps.jl/dev/assets/reeyhtn.Bglvb-jp.png",l="/GeometryOps.jl/dev/assets/cpjtgip.B94PsR1K.png",k="/GeometryOps.jl/dev/assets/haxqwpd.T7QiddIg.png",t="/GeometryOps.jl/dev/assets/bjjpnwy.CGuOBdTF.png",u=JSON.parse('{"title":"Geometry simplification","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/simplify.md","filePath":"source/transformations/simplify.md","lastUpdated":null}'),p={name:"source/transformations/simplify.md"},e=n("",71),E=[e];function r(d,g,y,F,o,c){return a(),i("div",null,E)}const D=s(p,[["render",r]]);export{u as __pageData,D as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const h="/GeometryOps.jl/dev/assets/ihbnhiw.Bglvb-jp.png",l="/GeometryOps.jl/dev/assets/prkyiek.B94PsR1K.png",k="/GeometryOps.jl/dev/assets/jehsbsq.Ca53rWB_.png",t="/GeometryOps.jl/dev/assets/sbyddke.BQg609vq.png",u=JSON.parse('{"title":"Geometry simplification","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/simplify.md","filePath":"source/transformations/simplify.md","lastUpdated":null}'),p={name:"source/transformations/simplify.md"},e=n("",71),E=[e];function r(d,g,y,F,o,c){return a(),i("div",null,E)}const D=s(p,[["render",r]]);export{u as __pageData,D as default};
diff --git a/dev/assets/source_transformations_transform.md.DW-rR35W.js b/dev/assets/source_transformations_transform.md.DzNIRGhW.js
similarity index 98%
rename from dev/assets/source_transformations_transform.md.DW-rR35W.js
rename to dev/assets/source_transformations_transform.md.DzNIRGhW.js
index 3620877dd..1f2d91c19 100644
--- a/dev/assets/source_transformations_transform.md.DW-rR35W.js
+++ b/dev/assets/source_transformations_transform.md.DzNIRGhW.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const d=JSON.parse('{"title":"Pointwise transformation","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/transform.md","filePath":"source/transformations/transform.md","lastUpdated":null}'),t={name:"source/transformations/transform.md"},l=n(`

Pointwise transformation

julia
"""
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const d=JSON.parse('{"title":"Pointwise transformation","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/transform.md","filePath":"source/transformations/transform.md","lastUpdated":null}'),t={name:"source/transformations/transform.md"},l=n(`

Pointwise transformation

julia
"""
     transform(f, obj)
 
 Apply a function \`f\` to all the points in \`obj\`.
@@ -29,7 +29,7 @@ import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const d
 rraysCore.SVector{2, Float64}[[6.5, 5.5], [8.5, 7.5], [9.5, 8.5], [6.5, 5.5]], nothing, nothing)], nothing, nothing)
 \`\`\`
 
-With Rotations.jl you need to actuall multiply the Rotation
+With Rotations.jl you need to actually multiply the Rotation
 by the \`SVector\` point, which is easy using an anonymous function.
 
 \`\`\`julia
diff --git a/dev/assets/source_transformations_transform.md.DW-rR35W.lean.js b/dev/assets/source_transformations_transform.md.DzNIRGhW.lean.js
similarity index 73%
rename from dev/assets/source_transformations_transform.md.DW-rR35W.lean.js
rename to dev/assets/source_transformations_transform.md.DzNIRGhW.lean.js
index 8266513ca..d05750173 100644
--- a/dev/assets/source_transformations_transform.md.DW-rR35W.lean.js
+++ b/dev/assets/source_transformations_transform.md.DzNIRGhW.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const d=JSON.parse('{"title":"Pointwise transformation","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/transform.md","filePath":"source/transformations/transform.md","lastUpdated":null}'),t={name:"source/transformations/transform.md"},l=n("",4),e=[l];function p(h,r,k,o,g,F){return a(),i("div",null,e)}const y=s(t,[["render",p]]);export{d as __pageData,y as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const d=JSON.parse('{"title":"Pointwise transformation","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/transform.md","filePath":"source/transformations/transform.md","lastUpdated":null}'),t={name:"source/transformations/transform.md"},l=n("",4),e=[l];function p(h,r,k,o,g,F){return a(),i("div",null,e)}const y=s(t,[["render",p]]);export{d as __pageData,y as default};
diff --git a/dev/assets/source_transformations_tuples.md.edr8CO-n.js b/dev/assets/source_transformations_tuples.md.ZfaVsRxE.js
similarity index 96%
rename from dev/assets/source_transformations_tuples.md.edr8CO-n.js
rename to dev/assets/source_transformations_tuples.md.ZfaVsRxE.js
index 79331bed3..9a7d29a48 100644
--- a/dev/assets/source_transformations_tuples.md.edr8CO-n.js
+++ b/dev/assets/source_transformations_tuples.md.ZfaVsRxE.js
@@ -1,4 +1,4 @@
-import{_ as s,c as a,o as n,a7 as i}from"./chunks/framework.B24clL9_.js";const u=JSON.parse('{"title":"Tuple conversion","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/tuples.md","filePath":"source/transformations/tuples.md","lastUpdated":null}'),e={name:"source/transformations/tuples.md"},t=i(`

Tuple conversion

julia
"""
+import{_ as s,c as a,o as n,a7 as i}from"./chunks/framework.CpnCegiD.js";const u=JSON.parse('{"title":"Tuple conversion","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/tuples.md","filePath":"source/transformations/tuples.md","lastUpdated":null}'),e={name:"source/transformations/tuples.md"},t=i(`

Tuple conversion

julia
"""
     tuples(obj)
 
 Convert all points in \`obj\` to \`Tuple\`s, wherever the are nested.
diff --git a/dev/assets/source_transformations_tuples.md.edr8CO-n.lean.js b/dev/assets/source_transformations_tuples.md.ZfaVsRxE.lean.js
similarity index 72%
rename from dev/assets/source_transformations_tuples.md.edr8CO-n.lean.js
rename to dev/assets/source_transformations_tuples.md.ZfaVsRxE.lean.js
index eefddcb37..c371940dc 100644
--- a/dev/assets/source_transformations_tuples.md.edr8CO-n.lean.js
+++ b/dev/assets/source_transformations_tuples.md.ZfaVsRxE.lean.js
@@ -1 +1 @@
-import{_ as s,c as a,o as n,a7 as i}from"./chunks/framework.B24clL9_.js";const u=JSON.parse('{"title":"Tuple conversion","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/tuples.md","filePath":"source/transformations/tuples.md","lastUpdated":null}'),e={name:"source/transformations/tuples.md"},t=i("",6),p=[t];function l(o,r,h,c,k,d){return n(),a("div",null,p)}const g=s(e,[["render",l]]);export{u as __pageData,g as default};
+import{_ as s,c as a,o as n,a7 as i}from"./chunks/framework.CpnCegiD.js";const u=JSON.parse('{"title":"Tuple conversion","description":"","frontmatter":{},"headers":[],"relativePath":"source/transformations/tuples.md","filePath":"source/transformations/tuples.md","lastUpdated":null}'),e={name:"source/transformations/tuples.md"},t=i("",6),p=[t];function l(o,r,h,c,k,d){return n(),a("div",null,p)}const g=s(e,[["render",l]]);export{u as __pageData,g as default};
diff --git a/dev/assets/source_types.md.FZoqYnp-.js b/dev/assets/source_types.md.CpC4Xnr3.js
similarity index 99%
rename from dev/assets/source_types.md.FZoqYnp-.js
rename to dev/assets/source_types.md.CpC4Xnr3.js
index 2b320695e..1b90eab26 100644
--- a/dev/assets/source_types.md.FZoqYnp-.js
+++ b/dev/assets/source_types.md.CpC4Xnr3.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const y=JSON.parse('{"title":"Types","description":"","frontmatter":{},"headers":[],"relativePath":"source/types.md","filePath":"source/types.md","lastUpdated":null}'),t={name:"source/types.md"},e=n(`

Types

This file defines some fundamental types used in GeometryOps.

Warning

Unlike in other Julia packages, only some types are defined in this file, not all. This is because we define types in the files where they are used, to make it easier to understand the code.

julia
export TraitTarget, GEOS

TraitTarget

This struct holds a trait parameter or a union of trait parameters. It's essentially a way to construct unions.

julia
"""
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const y=JSON.parse('{"title":"Types","description":"","frontmatter":{},"headers":[],"relativePath":"source/types.md","filePath":"source/types.md","lastUpdated":null}'),t={name:"source/types.md"},e=n(`

Types

This file defines some fundamental types used in GeometryOps.

Warning

Unlike in other Julia packages, only some types are defined in this file, not all. This is because we define types in the files where they are used, to make it easier to understand the code.

julia
export TraitTarget, GEOS

TraitTarget

This struct holds a trait parameter or a union of trait parameters. It's essentially a way to construct unions.

julia
"""
     TraitTarget{T}
 
 This struct holds a trait parameter or a union of trait parameters.
diff --git a/dev/assets/source_types.md.FZoqYnp-.lean.js b/dev/assets/source_types.md.CpC4Xnr3.lean.js
similarity index 68%
rename from dev/assets/source_types.md.FZoqYnp-.lean.js
rename to dev/assets/source_types.md.CpC4Xnr3.lean.js
index 1ae68bc63..f67e3b2ec 100644
--- a/dev/assets/source_types.md.FZoqYnp-.lean.js
+++ b/dev/assets/source_types.md.CpC4Xnr3.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const y=JSON.parse('{"title":"Types","description":"","frontmatter":{},"headers":[],"relativePath":"source/types.md","filePath":"source/types.md","lastUpdated":null}'),t={name:"source/types.md"},e=n("",27),l=[e];function p(h,k,r,d,o,g){return a(),i("div",null,l)}const E=s(t,[["render",p]]);export{y as __pageData,E as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const y=JSON.parse('{"title":"Types","description":"","frontmatter":{},"headers":[],"relativePath":"source/types.md","filePath":"source/types.md","lastUpdated":null}'),t={name:"source/types.md"},e=n("",27),l=[e];function p(h,k,r,d,o,g){return a(),i("div",null,l)}const E=s(t,[["render",p]]);export{y as __pageData,E as default};
diff --git a/dev/assets/source_utils.md.HjHA-HQh.js b/dev/assets/source_utils.md.Czr5gCUE.js
similarity index 99%
rename from dev/assets/source_utils.md.HjHA-HQh.js
rename to dev/assets/source_utils.md.Czr5gCUE.js
index 54b9ddabd..fd1a90995 100644
--- a/dev/assets/source_utils.md.HjHA-HQh.js
+++ b/dev/assets/source_utils.md.Czr5gCUE.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const y=JSON.parse('{"title":"Utility functions","description":"","frontmatter":{},"headers":[],"relativePath":"source/utils.md","filePath":"source/utils.md","lastUpdated":null}'),t={name:"source/utils.md"},p=n(`

Utility functions

julia
_is3d(geom)::Bool = _is3d(GI.trait(geom), geom)
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const y=JSON.parse('{"title":"Utility functions","description":"","frontmatter":{},"headers":[],"relativePath":"source/utils.md","filePath":"source/utils.md","lastUpdated":null}'),t={name:"source/utils.md"},p=n(`

Utility functions

julia
_is3d(geom)::Bool = _is3d(GI.trait(geom), geom)
 _is3d(::GI.AbstractGeometryTrait, geom)::Bool = GI.is3d(geom)
 _is3d(::GI.FeatureTrait, feature)::Bool = _is3d(GI.geometry(feature))
 _is3d(::GI.FeatureCollectionTrait, fc)::Bool = _is3d(GI.getfeature(fc, 1))
diff --git a/dev/assets/source_utils.md.HjHA-HQh.lean.js b/dev/assets/source_utils.md.Czr5gCUE.lean.js
similarity index 69%
rename from dev/assets/source_utils.md.HjHA-HQh.lean.js
rename to dev/assets/source_utils.md.Czr5gCUE.lean.js
index 2ca61425e..e2e0bf3e8 100644
--- a/dev/assets/source_utils.md.HjHA-HQh.lean.js
+++ b/dev/assets/source_utils.md.Czr5gCUE.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.B24clL9_.js";const y=JSON.parse('{"title":"Utility functions","description":"","frontmatter":{},"headers":[],"relativePath":"source/utils.md","filePath":"source/utils.md","lastUpdated":null}'),t={name:"source/utils.md"},p=n("",8),l=[p];function h(k,e,r,F,g,d){return a(),i("div",null,l)}const o=s(t,[["render",h]]);export{y as __pageData,o as default};
+import{_ as s,c as i,o as a,a7 as n}from"./chunks/framework.CpnCegiD.js";const y=JSON.parse('{"title":"Utility functions","description":"","frontmatter":{},"headers":[],"relativePath":"source/utils.md","filePath":"source/utils.md","lastUpdated":null}'),t={name:"source/utils.md"},p=n("",8),l=[p];function h(k,e,r,F,g,d){return a(),i("div",null,l)}const o=s(t,[["render",h]]);export{y as __pageData,o as default};
diff --git a/dev/assets/gotqnrr.lu4jwpi-.png b/dev/assets/tgxocmm.lu4jwpi-.png
similarity index 100%
rename from dev/assets/gotqnrr.lu4jwpi-.png
rename to dev/assets/tgxocmm.lu4jwpi-.png
diff --git a/dev/assets/tutorials_creating_geometry.md.Dpft0-QP.lean.js b/dev/assets/tutorials_creating_geometry.md.Dpft0-QP.lean.js
deleted file mode 100644
index 4edb8bf50..000000000
--- a/dev/assets/tutorials_creating_geometry.md.Dpft0-QP.lean.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.B24clL9_.js";const t="/GeometryOps.jl/dev/assets/qkrpuin.Dz86q2IX.png",n="/GeometryOps.jl/dev/assets/kvzfeag.Cx40vhB3.png",l="/GeometryOps.jl/dev/assets/vtsevil.0OJvb21A.png",p="/GeometryOps.jl/dev/assets/hbkqfhf.DaovVbE6.png",h="/GeometryOps.jl/dev/assets/wpfwfat.B9NpLJr_.png",o="/GeometryOps.jl/dev/assets/fxutssm.CG4dr3Lx.png",k="/GeometryOps.jl/dev/assets/xizbhxl.3sfpQl2i.png",r="/GeometryOps.jl/dev/assets/zkusagc.Dab1-ETk.png",g="/GeometryOps.jl/dev/assets/gotqnrr.lu4jwpi-.png",d="/GeometryOps.jl/dev/assets/chjhvry.DwqDxlAG.png",E="/GeometryOps.jl/dev/assets/nuutrqs.CLtpJ5Wb.png",D=JSON.parse('{"title":"Creating Geometry","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/creating_geometry.md","filePath":"tutorials/creating_geometry.md","lastUpdated":null}'),c={name:"tutorials/creating_geometry.md"},y=e("",120),F=[y];function u(f,C,m,b,v,G){return a(),i("div",null,F)}const N=s(c,[["render",u]]);export{D as __pageData,N as default};
diff --git a/dev/assets/tutorials_creating_geometry.md.Dpft0-QP.js b/dev/assets/tutorials_creating_geometry.md.k23w5UdQ.js
similarity index 98%
rename from dev/assets/tutorials_creating_geometry.md.Dpft0-QP.js
rename to dev/assets/tutorials_creating_geometry.md.k23w5UdQ.js
index 1c90c40cd..3dc363092 100644
--- a/dev/assets/tutorials_creating_geometry.md.Dpft0-QP.js
+++ b/dev/assets/tutorials_creating_geometry.md.k23w5UdQ.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.B24clL9_.js";const t="/GeometryOps.jl/dev/assets/qkrpuin.Dz86q2IX.png",n="/GeometryOps.jl/dev/assets/kvzfeag.Cx40vhB3.png",l="/GeometryOps.jl/dev/assets/vtsevil.0OJvb21A.png",p="/GeometryOps.jl/dev/assets/hbkqfhf.DaovVbE6.png",h="/GeometryOps.jl/dev/assets/wpfwfat.B9NpLJr_.png",o="/GeometryOps.jl/dev/assets/fxutssm.CG4dr3Lx.png",k="/GeometryOps.jl/dev/assets/xizbhxl.3sfpQl2i.png",r="/GeometryOps.jl/dev/assets/zkusagc.Dab1-ETk.png",g="/GeometryOps.jl/dev/assets/gotqnrr.lu4jwpi-.png",d="/GeometryOps.jl/dev/assets/chjhvry.DwqDxlAG.png",E="/GeometryOps.jl/dev/assets/nuutrqs.CLtpJ5Wb.png",D=JSON.parse('{"title":"Creating Geometry","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/creating_geometry.md","filePath":"tutorials/creating_geometry.md","lastUpdated":null}'),c={name:"tutorials/creating_geometry.md"},y=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 s,c as i,o as a,a7 as e}from"./chunks/framework.CpnCegiD.js";const t="/GeometryOps.jl/dev/assets/ksxutwl.Dz86q2IX.png",n="/GeometryOps.jl/dev/assets/anpauvw.Cx40vhB3.png",l="/GeometryOps.jl/dev/assets/wecdjri.0OJvb21A.png",p="/GeometryOps.jl/dev/assets/kssggsd.DaovVbE6.png",h="/GeometryOps.jl/dev/assets/bvuwypa.B9NpLJr_.png",o="/GeometryOps.jl/dev/assets/bawalzh.CG4dr3Lx.png",k="/GeometryOps.jl/dev/assets/vmgxabz.3sfpQl2i.png",r="/GeometryOps.jl/dev/assets/futqezz.Dab1-ETk.png",g="/GeometryOps.jl/dev/assets/tgxocmm.lu4jwpi-.png",d="/GeometryOps.jl/dev/assets/fktvlcp.DwqDxlAG.png",E="/GeometryOps.jl/dev/assets/kcnoiau.CLtpJ5Wb.png",D=JSON.parse('{"title":"Creating Geometry","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/creating_geometry.md","filePath":"tutorials/creating_geometry.md","lastUpdated":null}'),c={name:"tutorials/creating_geometry.md"},y=e(`

Creating Geometry

In this tutorial, we're going to:

  1. Create and plot geometries

  2. Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

  3. Create geospatial geometries with embedded coordinate reference system information

  4. Assign attributes to geospatial geometries

  5. Save geospatial geometries to common geospatial file formats

First, we load some required packages.

julia
# Geospatial packages from Julia
 import GeoInterface as GI
 import GeometryOps as GO
 import GeoFormatTypes as GFT
@@ -48,7 +48,7 @@ import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.B24clL9_.js";const t
 f = CoordinateTransformations.Translation(xoffset, yoffset);
 multipolygon = GO.transform(f, multipolygon);
 plot!(multipolygon)
-fig

Great, now we can make Points, MultiPoints, Lines, LineStrings, Polygons (with holes), and MultiPolygons and modify them using [CoordinateTransformations] and [GeometryOps].

Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

In geospatial sciences we often have data in one Coordinate Reference System (CRS) (source) and would like to display it in different (destination) CRS. GeoMakie allows us to do this by automatically projecting from source to destination CRS.

Here, our source CRS is common geographic (i.e. coordinates of latitude and longitude), WGS84.

julia
source_crs1 = GFT.EPSG(4326)
GeoFormatTypes.EPSG{1}((4326,))

Now let's pick a destination CRS for displaying our map. Here we'll pick natearth2.

julia
destination_crs = "+proj=natearth2"
"+proj=natearth2"

Let's add land area for context. First, download and open the Natural Earth global land polygons at 110 m resolution.GeoMakie ships with this particular dataset, so we will access it from there.

julia
land_path = GeoMakie.assetpath("ne_110m_land.geojson")
"/home/runner/.julia/packages/GeoMakie/nOel0/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 destinaton CRS. For GeoMakie, source is the CRS of the input and dest is the CRS you want to visualize in.

julia
fig = Figure(size=(1000, 500));
+fig

Great, now we can make Points, MultiPoints, Lines, LineStrings, Polygons (with holes), and MultiPolygons and modify them using [CoordinateTransformations] and [GeometryOps].

Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

In geospatial sciences we often have data in one Coordinate Reference System (CRS) (source) and would like to display it in different (destination) CRS. GeoMakie allows us to do this by automatically projecting from source to destination CRS.

Here, our source CRS is common geographic (i.e. coordinates of latitude and longitude), WGS84.

julia
source_crs1 = GFT.EPSG(4326)
GeoFormatTypes.EPSG{1}((4326,))

Now let's pick a destination CRS for displaying our map. Here we'll pick natearth2.

julia
destination_crs = "+proj=natearth2"
"+proj=natearth2"

Let's add land area for context. First, download and open the Natural Earth global land polygons at 110 m resolution.GeoMakie ships with this particular dataset, so we will access it from there.

julia
land_path = GeoMakie.assetpath("ne_110m_land.geojson")
"/home/runner/.julia/packages/GeoMakie/HExpB/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,
@@ -72,7 +72,7 @@ import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.B24clL9_.js";const t
 ϴ = 0:0.01:2pi;
 x = r .* (k + 1) .* cos.(ϴ) .- r .* cos.((k + 1) .* ϴ);
 y = r .* (k + 1) .* sin.(ϴ) .- r .* sin.((k + 1) .* ϴ);
-ring4 = GI.LinearRing(Point.(zip(x, y)))
GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}(Point{2, Float64}[[21.0, 0.0], [21.00839489109211, 0.00025191811248184703], [21.033518309870985, 0.0020133807972559925], [21.075186885419612, 0.006784125578492062], [21.13309630561615, 0.016044338630866517], [21.206823267470536, 0.031245035570328428], [21.29582819010705, 0.053798628882221644], [21.39945867303846, 0.08506974233813636], [21.516953677609987, 0.12636633117296836], [21.64744840486518, 0.17893116483784577]  …  [21.69159119078359, -0.19823293781563178], [21.557153362189904, -0.14182952335952814], [21.43541888381864, -0.09707519809793252], [21.327284472232776, -0.06274967861547665], [21.233544778745394, -0.03756486776283019], [21.15488729606723, -0.020173244847778715], [21.091887951911644, -0.0091766360295773], [21.045007417743918, -0.0031353088009582475], [21.01458815628695, -0.0005773323690041465], [21.00085222666982, -8.14404531208901e-6]], nothing, nothing)

But this time when we create the Polygon we beed to specify the CRS at the time of creation, making it a geospatial polygon

julia
geopoly1 = GI.Polygon([ring4], crs = source_crs1)
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}}, Nothing, GeoFormatTypes.EPSG{1}}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}(Point{2, Float64}[[21.0, 0.0], [21.00839489109211, 0.00025191811248184703], [21.033518309870985, 0.0020133807972559925], [21.075186885419612, 0.006784125578492062], [21.13309630561615, 0.016044338630866517], [21.206823267470536, 0.031245035570328428], [21.29582819010705, 0.053798628882221644], [21.39945867303846, 0.08506974233813636], [21.516953677609987, 0.12636633117296836], [21.64744840486518, 0.17893116483784577]  …  [21.69159119078359, -0.19823293781563178], [21.557153362189904, -0.14182952335952814], [21.43541888381864, -0.09707519809793252], [21.327284472232776, -0.06274967861547665], [21.233544778745394, -0.03756486776283019], [21.15488729606723, -0.020173244847778715], [21.091887951911644, -0.0091766360295773], [21.045007417743918, -0.0031353088009582475], [21.01458815628695, -0.0005773323690041465], [21.00085222666982, -8.14404531208901e-6]], nothing, nothing)], nothing, GeoFormatTypes.EPSG{1}((4326,)))

Note

It is good practice to only include CRS information with the highest-level geometry. Not doing so can bloat the memory footprint of the geometry. CRS information can be included at the individual Point level but is discouraged.

And let's create second Polygon by shifting the first using CoordinateTransformations

julia
xoffset = 20.;
+ring4 = GI.LinearRing(Point.(zip(x, y)))
GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}(Point{2, Float64}[[21.0, 0.0], [21.00839489109211, 0.00025191811248184703], [21.033518309870985, 0.0020133807972559925], [21.075186885419612, 0.006784125578492062], [21.13309630561615, 0.016044338630866517], [21.206823267470536, 0.031245035570328428], [21.29582819010705, 0.053798628882221644], [21.39945867303846, 0.08506974233813636], [21.516953677609987, 0.12636633117296836], [21.64744840486518, 0.17893116483784577]  …  [21.69159119078359, -0.19823293781563178], [21.557153362189904, -0.14182952335952814], [21.43541888381864, -0.09707519809793252], [21.327284472232776, -0.06274967861547665], [21.233544778745394, -0.03756486776283019], [21.15488729606723, -0.020173244847778715], [21.091887951911644, -0.0091766360295773], [21.045007417743918, -0.0031353088009582475], [21.01458815628695, -0.0005773323690041465], [21.00085222666982, -8.14404531208901e-6]], nothing, nothing)

But this time when we create the Polygon we need to specify the CRS at the time of creation, making it a geospatial polygon

julia
geopoly1 = GI.Polygon([ring4], crs = source_crs1)
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}}, Nothing, GeoFormatTypes.EPSG{1}}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}(Point{2, Float64}[[21.0, 0.0], [21.00839489109211, 0.00025191811248184703], [21.033518309870985, 0.0020133807972559925], [21.075186885419612, 0.006784125578492062], [21.13309630561615, 0.016044338630866517], [21.206823267470536, 0.031245035570328428], [21.29582819010705, 0.053798628882221644], [21.39945867303846, 0.08506974233813636], [21.516953677609987, 0.12636633117296836], [21.64744840486518, 0.17893116483784577]  …  [21.69159119078359, -0.19823293781563178], [21.557153362189904, -0.14182952335952814], [21.43541888381864, -0.09707519809793252], [21.327284472232776, -0.06274967861547665], [21.233544778745394, -0.03756486776283019], [21.15488729606723, -0.020173244847778715], [21.091887951911644, -0.0091766360295773], [21.045007417743918, -0.0031353088009582475], [21.01458815628695, -0.0005773323690041465], [21.00085222666982, -8.14404531208901e-6]], nothing, nothing)], nothing, GeoFormatTypes.EPSG{1}((4326,)))

Note

It is good practice to only include CRS information with the highest-level geometry. Not doing so can bloat the memory footprint of the geometry. CRS information can be included at the individual Point level but is discouraged.

And let's create second Polygon by shifting the first using CoordinateTransformations

julia
xoffset = 20.;
 yoffset = -25.;
 f = CoordinateTransformations.Translation(xoffset, yoffset);
 geopoly2 = GO.transform(f, geopoly1);
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Float64}}, Nothing, GeoFormatTypes.EPSG{1}}}, Nothing, GeoFormatTypes.EPSG{1}}(GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Float64}}, Nothing, GeoFormatTypes.EPSG{1}}[GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Float64}}, Nothing, GeoFormatTypes.EPSG{1}}(StaticArraysCore.SVector{2, Float64}[[41.0, -25.0], [41.00839489109211, -24.999748081887518], [41.033518309870985, -24.997986619202745], [41.07518688541961, -24.99321587442151], [41.13309630561615, -24.983955661369134], [41.20682326747054, -24.96875496442967], [41.295828190107045, -24.946201371117777], [41.39945867303846, -24.914930257661865], [41.51695367760999, -24.873633668827033], [41.64744840486518, -24.821068835162155]  …  [41.69159119078359, -25.198232937815632], [41.55715336218991, -25.14182952335953], [41.43541888381864, -25.097075198097933], [41.327284472232776, -25.062749678615475], [41.2335447787454, -25.037564867762832], [41.15488729606723, -25.02017324484778], [41.091887951911644, -25.009176636029576], [41.04500741774392, -25.003135308800957], [41.01458815628695, -25.000577332369005], [41.00085222666982, -25.000008144045314]], nothing, GeoFormatTypes.EPSG{1}((4326,)))], nothing, GeoFormatTypes.EPSG{1}((4326,)))

Creating a table with attributes and geometry

Typically, you'll also want to include attributes with your geometries. Attributes are simply data that are attributed to each geometry. The easiest way to do this is to create a table with a :geometry column. Let's do this using DataFrames.

julia
using DataFrames
diff --git a/dev/assets/tutorials_creating_geometry.md.k23w5UdQ.lean.js b/dev/assets/tutorials_creating_geometry.md.k23w5UdQ.lean.js
new file mode 100644
index 000000000..01a1c9639
--- /dev/null
+++ b/dev/assets/tutorials_creating_geometry.md.k23w5UdQ.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a7 as e}from"./chunks/framework.CpnCegiD.js";const t="/GeometryOps.jl/dev/assets/ksxutwl.Dz86q2IX.png",n="/GeometryOps.jl/dev/assets/anpauvw.Cx40vhB3.png",l="/GeometryOps.jl/dev/assets/wecdjri.0OJvb21A.png",p="/GeometryOps.jl/dev/assets/kssggsd.DaovVbE6.png",h="/GeometryOps.jl/dev/assets/bvuwypa.B9NpLJr_.png",o="/GeometryOps.jl/dev/assets/bawalzh.CG4dr3Lx.png",k="/GeometryOps.jl/dev/assets/vmgxabz.3sfpQl2i.png",r="/GeometryOps.jl/dev/assets/futqezz.Dab1-ETk.png",g="/GeometryOps.jl/dev/assets/tgxocmm.lu4jwpi-.png",d="/GeometryOps.jl/dev/assets/fktvlcp.DwqDxlAG.png",E="/GeometryOps.jl/dev/assets/kcnoiau.CLtpJ5Wb.png",D=JSON.parse('{"title":"Creating Geometry","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/creating_geometry.md","filePath":"tutorials/creating_geometry.md","lastUpdated":null}'),c={name:"tutorials/creating_geometry.md"},y=e("",120),F=[y];function u(f,C,m,b,v,G){return a(),i("div",null,F)}const N=s(c,[["render",u]]);export{D as __pageData,N as default};
diff --git a/dev/assets/tutorials_spatial_joins.md.DVpey7LA.js b/dev/assets/tutorials_spatial_joins.md.CcDuRcBC.js
similarity index 99%
rename from dev/assets/tutorials_spatial_joins.md.DVpey7LA.js
rename to dev/assets/tutorials_spatial_joins.md.CcDuRcBC.js
index 6c9d59570..64cc7553f 100644
--- a/dev/assets/tutorials_spatial_joins.md.DVpey7LA.js
+++ b/dev/assets/tutorials_spatial_joins.md.CcDuRcBC.js
@@ -1,4 +1,4 @@
-import{_ as h,c as a,j as s,a as i,a7 as n,o as t}from"./chunks/framework.B24clL9_.js";const e="/GeometryOps.jl/dev/assets/svnamec.3UVIT8DR.png",l="/GeometryOps.jl/dev/assets/ghuyiqw.ntn85YF1.png",p="/GeometryOps.jl/dev/assets/ozfobmp.CdEPS9bT.png",B=JSON.parse('{"title":"Spatial joins","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/spatial_joins.md","filePath":"tutorials/spatial_joins.md","lastUpdated":null}'),k={name:"tutorials/spatial_joins.md"},r=s("h1",{id:"Spatial-joins",tabindex:"-1"},[i("Spatial joins "),s("a",{class:"header-anchor",href:"#Spatial-joins","aria-label":'Permalink to "Spatial joins {#Spatial-joins}"'},"​")],-1),E=s("a",{href:"https://www.geeksforgeeks.org/sql-join-set-1-inner-left-right-and-full-joins/",target:"_blank",rel:"noreferrer"},"table joins",-1),d={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:"6.307ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 2787.7 1000","aria-hidden":"true"},g=n('',1),y=[g],c=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,"p"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",null,","),s("mi",null,"y"),s("mo",{stretchy:"false"},")")])],-1),F=s("code",null,"true",-1),u=s("code",null,"false",-1),m=s("a",{href:"https://en.wikipedia.org/wiki/DE-9IM",target:"_blank",rel:"noreferrer"},[s("code",null,"DE-9IM")],-1),C=n(`

Spatial joins can be done between any geometry types (from geometrycollections to points), just as geometrical predicates can be evaluated on any geometries.

In this tutorial, we will show how to perform a spatial join on first a toy dataset and then two Natural Earth datasets, to show how this can be used in the real world.

In order to perform the spatial join, we use FlexiJoins.jl to perform the join, specifically using its by_pred joining method. This allows the user to specify a predicate in the following manner:

julia
[inner/left/right/outer/...]join((table1, table1),
+import{_ as h,c as a,j as s,a as i,a7 as n,o as t}from"./chunks/framework.CpnCegiD.js";const e="/GeometryOps.jl/dev/assets/wjmfxnc.3UVIT8DR.png",l="/GeometryOps.jl/dev/assets/uugsbqm.CgeJoG2G.png",p="/GeometryOps.jl/dev/assets/usyjtvi.CKZ1zuzD.png",B=JSON.parse('{"title":"Spatial joins","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/spatial_joins.md","filePath":"tutorials/spatial_joins.md","lastUpdated":null}'),k={name:"tutorials/spatial_joins.md"},r=s("h1",{id:"Spatial-joins",tabindex:"-1"},[i("Spatial joins "),s("a",{class:"header-anchor",href:"#Spatial-joins","aria-label":'Permalink to "Spatial joins {#Spatial-joins}"'},"​")],-1),E=s("a",{href:"https://www.geeksforgeeks.org/sql-join-set-1-inner-left-right-and-full-joins/",target:"_blank",rel:"noreferrer"},"table joins",-1),d={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:"6.307ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 2787.7 1000","aria-hidden":"true"},g=n('',1),y=[g],c=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,"p"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",null,","),s("mi",null,"y"),s("mo",{stretchy:"false"},")")])],-1),F=s("code",null,"true",-1),u=s("code",null,"false",-1),m=s("a",{href:"https://en.wikipedia.org/wiki/DE-9IM",target:"_blank",rel:"noreferrer"},[s("code",null,"DE-9IM")],-1),C=n(`

Spatial joins can be done between any geometry types (from geometrycollections to points), just as geometrical predicates can be evaluated on any geometries.

In this tutorial, we will show how to perform a spatial join on first a toy dataset and then two Natural Earth datasets, to show how this can be used in the real world.

In order to perform the spatial join, we use FlexiJoins.jl to perform the join, specifically using its by_pred joining method. This allows the user to specify a predicate in the following manner:

julia
[inner/left/right/outer/...]join((table1, table1),
     by_pred(:table1_column, predicate_function, :table2_column) # & add other conditions here
 )

We have enabled the use of all of GeometryOps' boolean comparisons here. These are:

julia
GO.contains, GO.within, GO.intersects, GO.touches, GO.crosses, GO.disjoint, GO.overlaps, GO.covers, GO.coveredby, GO.equals

Tip

Always place the dataframe with more complex geometries second, as that is the one which will be sorted into a tree.

Simple example

This example demonstrates how to perform a spatial join between two datasets: a set of polygons and a set of randomly generated points.

The polygons are represented as a DataFrame with geometries and colors, while the points are stored in a separate DataFrame.

The spatial join is performed using the contains predicate from GeometryOps, which checks if each point is contained within any of the polygons. The resulting joined DataFrame is then used to plot the points, colored according to the containing polygon.

First, we generate our data. We create two triangle polygons which, together, span the rectangle (0, 0, 1, 1), and a set of points which are randomly distributed within this rectangle.

julia
import GeoInterface as GI, GeometryOps as GO
 using FlexiJoins, DataFrames
diff --git a/dev/assets/tutorials_spatial_joins.md.DVpey7LA.lean.js b/dev/assets/tutorials_spatial_joins.md.CcDuRcBC.lean.js
similarity index 91%
rename from dev/assets/tutorials_spatial_joins.md.DVpey7LA.lean.js
rename to dev/assets/tutorials_spatial_joins.md.CcDuRcBC.lean.js
index b54c02386..b18166c1e 100644
--- a/dev/assets/tutorials_spatial_joins.md.DVpey7LA.lean.js
+++ b/dev/assets/tutorials_spatial_joins.md.CcDuRcBC.lean.js
@@ -1 +1 @@
-import{_ as h,c as a,j as s,a as i,a7 as n,o as t}from"./chunks/framework.B24clL9_.js";const e="/GeometryOps.jl/dev/assets/svnamec.3UVIT8DR.png",l="/GeometryOps.jl/dev/assets/ghuyiqw.ntn85YF1.png",p="/GeometryOps.jl/dev/assets/ozfobmp.CdEPS9bT.png",B=JSON.parse('{"title":"Spatial joins","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/spatial_joins.md","filePath":"tutorials/spatial_joins.md","lastUpdated":null}'),k={name:"tutorials/spatial_joins.md"},r=s("h1",{id:"Spatial-joins",tabindex:"-1"},[i("Spatial joins "),s("a",{class:"header-anchor",href:"#Spatial-joins","aria-label":'Permalink to "Spatial joins {#Spatial-joins}"'},"​")],-1),E=s("a",{href:"https://www.geeksforgeeks.org/sql-join-set-1-inner-left-right-and-full-joins/",target:"_blank",rel:"noreferrer"},"table joins",-1),d={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:"6.307ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 2787.7 1000","aria-hidden":"true"},g=n("",1),y=[g],c=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,"p"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",null,","),s("mi",null,"y"),s("mo",{stretchy:"false"},")")])],-1),F=s("code",null,"true",-1),u=s("code",null,"false",-1),m=s("a",{href:"https://en.wikipedia.org/wiki/DE-9IM",target:"_blank",rel:"noreferrer"},[s("code",null,"DE-9IM")],-1),C=n("",37);function T(_,b,f,D,Q,w){return t(),a("div",null,[r,s("p",null,[i("Spatial joins are "),E,i(" which are based not on equality, but on some predicate "),s("mjx-container",d,[(t(),a("svg",o,y)),c]),i(", which takes two geometries, and returns a value of either "),F,i(" or "),u,i(". For geometries, the "),m,i(" spatial relationship model is used to determine the spatial relationship between two geometries.")]),C])}const v=h(k,[["render",T]]);export{B as __pageData,v as default};
+import{_ as h,c as a,j as s,a as i,a7 as n,o as t}from"./chunks/framework.CpnCegiD.js";const e="/GeometryOps.jl/dev/assets/wjmfxnc.3UVIT8DR.png",l="/GeometryOps.jl/dev/assets/uugsbqm.CgeJoG2G.png",p="/GeometryOps.jl/dev/assets/usyjtvi.CKZ1zuzD.png",B=JSON.parse('{"title":"Spatial joins","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/spatial_joins.md","filePath":"tutorials/spatial_joins.md","lastUpdated":null}'),k={name:"tutorials/spatial_joins.md"},r=s("h1",{id:"Spatial-joins",tabindex:"-1"},[i("Spatial joins "),s("a",{class:"header-anchor",href:"#Spatial-joins","aria-label":'Permalink to "Spatial joins {#Spatial-joins}"'},"​")],-1),E=s("a",{href:"https://www.geeksforgeeks.org/sql-join-set-1-inner-left-right-and-full-joins/",target:"_blank",rel:"noreferrer"},"table joins",-1),d={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:"6.307ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 2787.7 1000","aria-hidden":"true"},g=n("",1),y=[g],c=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,"p"),s("mo",{stretchy:"false"},"("),s("mi",null,"x"),s("mo",null,","),s("mi",null,"y"),s("mo",{stretchy:"false"},")")])],-1),F=s("code",null,"true",-1),u=s("code",null,"false",-1),m=s("a",{href:"https://en.wikipedia.org/wiki/DE-9IM",target:"_blank",rel:"noreferrer"},[s("code",null,"DE-9IM")],-1),C=n("",37);function T(_,b,f,D,Q,w){return t(),a("div",null,[r,s("p",null,[i("Spatial joins are "),E,i(" which are based not on equality, but on some predicate "),s("mjx-container",d,[(t(),a("svg",o,y)),c]),i(", which takes two geometries, and returns a value of either "),F,i(" or "),u,i(". For geometries, the "),m,i(" spatial relationship model is used to determine the spatial relationship between two geometries.")]),C])}const v=h(k,[["render",T]]);export{B as __pageData,v as default};
diff --git a/dev/assets/usyjtvi.CKZ1zuzD.png b/dev/assets/usyjtvi.CKZ1zuzD.png
new file mode 100644
index 0000000000000000000000000000000000000000..4e18355df64c7167834851f502e3caa30b03985a
GIT binary patch
literal 230732
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�_gnLB%G#krR?>$0Ce@XyR5H8jhO0sM
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

9OTgb}|8(r;+!y&6d>mx5%S3-rc-g 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%0Dj)h6)3D*^s@;FQ)Y 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%0Af`dJ!zC20HsS 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

suUWqf+M8K2C!#o9B_=NNdj_Rz zZoqvnfU*VO&KZOvQ);YQn8*b0x}w-BS|S$v%lWvTdid9lcsUuwb{A_!ON)JcVg3sCsBeFj(Yo^$W^oMbwr<9zZq8^l zB0lnsHd{wce%UN8P4g&>*q=>M9Ac1TI>3iprSQlp*lnYVkT>(VR3&WwPV#weXhZ?( z2%)z=8&n@9%5EwvbGa2CKg?dfSWI-{LaH67IQjXU54ljb$3AVN&s+c5Vuur|K={$0 z+Po#>fJ(8NzR(hPS3G;=lW@1Jt@uNoR|y-d7%C{pF00w~`I4Ae)gf_$nkY=jMqeKb z{bv?t+06ql|36D&gQlWF0`!n95AqNWYqL5e|2PyTORd}Kl%hu__k$#)V;(y3#JOT% zswlAQ(IgSN%mU~Jo?TA4Jc~T{u0B~ll6MX+v%UC^&AQY20Cm&D*hmLFv7biJXC#Sb zA$&zp{{=nV=U>pDXm)8LCZ0bi8XD8^w2-K($_LAk~V$!vvY0m*g#^#{_nDsd6eSYbD3I z!y7J_WXs;uMAR_~DJvdsL;kTdXs!5J{6Lbhd-=V-Y~)k0uCkohEkev>5#zztW%@aSjHZn=qu{_JO(mu_z-&0=S zMn;ByIFKLRo1QTIFx`;&5XpM`yFwyP$$Xq+CIm$0xSt#cqd(5+JU{hpG*+tkwfqtL7fcUWCnMS`KRZoZ3y@0zL@Je(WTS=+d@dRoqnej}Q6U8>Oz!xkpA8YP4IMZ^vu~8t#iQHi- zTX8#iiU4o2E6ja0fXeRe@nWGC+m0y!50p z|DHMbu)S()9+tv0Z}0m#?KmXh8G7~z4)ECTrNEE0<<3Ibsg|M&$_X7B|V)*bbFR=I!`zL2OG+Z}gW05+6miUH^ zmsok@Zc<#>pf}C6lrs(oNki4$7e&l(H%CCTR>E3fH)3|dqza>y^c zsr`+_MS-e^p*IFx51JSM!jQD`#@dzR4c9oOvoGz39HPogRfN|@YOD{36{~oGtLqYv ziX+nomtQ`t*-Fe{43&IqP>@EgDIP3rjLpp}OSY@*5=(N1Ku1C2{kPqPkd=U})F_

@mQI;3(+e}Si6@7!CN?%& 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%0Dy((-l6#Yy-MKLgZGSYKHMuONRy$RtWtV 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

WjD4W}Jo5Fi#m=VJAyLIbR%&YLl8y9c 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
0X7#e>3%F;DP{d3D|CxKh&Zjaff)(q$IwppzM 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ÿ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 U<(kBxm}vwI;*sO{U!b-67Zlb*IRF3v literal 0 HcmV?d00001 diff --git a/dev/assets/xizbhxl.3sfpQl2i.png b/dev/assets/vmgxabz.3sfpQl2i.png similarity index 100% rename from dev/assets/xizbhxl.3sfpQl2i.png rename to dev/assets/vmgxabz.3sfpQl2i.png diff --git a/dev/assets/vtsevil.0OJvb21A.png b/dev/assets/wecdjri.0OJvb21A.png similarity index 100% rename from dev/assets/vtsevil.0OJvb21A.png rename to dev/assets/wecdjri.0OJvb21A.png diff --git a/dev/assets/svnamec.3UVIT8DR.png b/dev/assets/wjmfxnc.3UVIT8DR.png similarity index 100% rename from dev/assets/svnamec.3UVIT8DR.png rename to dev/assets/wjmfxnc.3UVIT8DR.png diff --git a/dev/assets/lipsvjw.DiwGEg2f.png b/dev/assets/yfkpvhd.DiwGEg2f.png similarity index 100% rename from dev/assets/lipsvjw.DiwGEg2f.png rename to dev/assets/yfkpvhd.DiwGEg2f.png diff --git a/dev/call_notes.html b/dev/call_notes.html index 88c1b8959..5eb072d74 100644 --- a/dev/call_notes.html +++ b/dev/call_notes.html @@ -8,18 +8,18 @@ - + - - - + + + - + \ No newline at end of file diff --git a/dev/experiments/accurate_accumulators.html b/dev/experiments/accurate_accumulators.html index bfa2f2277..d82a58af7 100644 --- a/dev/experiments/accurate_accumulators.html +++ b/dev/experiments/accurate_accumulators.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -24,7 +24,7 @@ using NaturalEarth all_adm0 = naturalearth("admin_0_countries", 10)
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
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 ```

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.

20th April, 2024

- + \ No newline at end of file diff --git a/dev/experiments/predicates.html b/dev/experiments/predicates.html index a13b75596..1e0e38d5d 100644 --- a/dev/experiments/predicates.html +++ b/dev/experiments/predicates.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -59,7 +59,7 @@ display(fig) end resize!(fig, 1000, 450) -fig

Dashboard

julia
using WGLMakie
+fig

Dashboard

julia
using WGLMakie
 import GeometryOps as GO, GeoInterface as GI, LibGEOS as LG
 import ExactPredicates
 using MultiFloats
@@ -116,7 +116,7 @@
 
 GO.intersection(p1_m, p2_m; target = GI.PolygonTrait(), fix_multipoly = nothing)
 LG.intersection(p1_m, p2_m)

Incircle

- + \ No newline at end of file diff --git a/dev/explanations/crs.html b/dev/explanations/crs.html index c332daec6..8fee412c2 100644 --- a/dev/explanations/crs.html +++ b/dev/explanations/crs.html @@ -8,18 +8,18 @@ - + - - - + + +
Skip to content
- + \ No newline at end of file diff --git a/dev/explanations/paradigms.html b/dev/explanations/paradigms.html index 15284376f..6ce35c68c 100644 --- a/dev/explanations/paradigms.html +++ b/dev/explanations/paradigms.html @@ -8,18 +8,18 @@ - + - - - + + +
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/dev/explanations/peculiarities.html b/dev/explanations/peculiarities.html index 765f38271..020014a5e 100644 --- a/dev/explanations/peculiarities.html +++ b/dev/explanations/peculiarities.html @@ -8,18 +8,18 @@ - + - - - + + +
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/dev/explanations/winding_order.html b/dev/explanations/winding_order.html index 096c41a3f..78261938b 100644 --- a/dev/explanations/winding_order.html +++ b/dev/explanations/winding_order.html @@ -8,18 +8,18 @@ - + - - - + + +
Skip to content
- + \ No newline at end of file diff --git a/dev/hashmap.json b/dev/hashmap.json index 5c067df66..d2b6aa76f 100644 --- a/dev/hashmap.json +++ b/dev/hashmap.json @@ -1 +1 @@ -{"api.md":"BaSIMxyj","call_notes.md":"C_fGYeG6","experiments_accurate_accumulators.md":"BPqWh7OV","experiments_predicates.md":"Bv_nbSH7","explanations_crs.md":"DJ9--UE-","explanations_paradigms.md":"DBcWqEbw","explanations_peculiarities.md":"YNoUlJgY","explanations_winding_order.md":"C9ZwbxD-","index.md":"CU0EZZRg","introduction.md":"Bxgq13n_","source_geometryops.md":"CEBUZDYK","source_methods_angles.md":"Co3OX7YF","source_methods_area.md":"CyNnYHMW","source_methods_barycentric.md":"9FZWAtEK","source_methods_buffer.md":"DkINH657","source_methods_centroid.md":"BnJYQgzS","source_methods_clipping_clipping_processor.md":"Bcxp8BIM","source_methods_clipping_coverage.md":"0c_XYlaF","source_methods_clipping_cut.md":"B9hPmCjC","source_methods_clipping_difference.md":"OH-ojrcQ","source_methods_clipping_intersection.md":"CxIjImlm","source_methods_clipping_predicates.md":"G1r6ZHhc","source_methods_clipping_union.md":"2_48PnSR","source_methods_distance.md":"CyM1f5P-","source_methods_equals.md":"De9KY65L","source_methods_geom_relations_contains.md":"BBjEMOLE","source_methods_geom_relations_coveredby.md":"DsEyTkLB","source_methods_geom_relations_covers.md":"DBGlhZWH","source_methods_geom_relations_crosses.md":"CWVmsKpo","source_methods_geom_relations_disjoint.md":"B8jOB-e2","source_methods_geom_relations_geom_geom_processors.md":"BjtPpMj6","source_methods_geom_relations_intersects.md":"DSsOzsR7","source_methods_geom_relations_overlaps.md":"BvA1Wxsv","source_methods_geom_relations_touches.md":"bOdhhT-s","source_methods_geom_relations_within.md":"CzUr-h8N","source_methods_orientation.md":"CASnd2QG","source_methods_polygonize.md":"Geb3kI4e","source_not_implemented_yet.md":"DmzFilCO","source_primitives.md":"CJbutZTX","source_transformations_correction_closed_ring.md":"BWSVYN50","source_transformations_correction_geometry_correction.md":"C9Yo3rkc","source_transformations_correction_intersecting_polygons.md":"F5THHt5h","source_transformations_extent.md":"DmS08vS9","source_transformations_flip.md":"BJm-42I_","source_transformations_reproject.md":"6JWOJF2A","source_transformations_segmentize.md":"DZWIMZsy","source_transformations_simplify.md":"CTR8JsZ-","source_transformations_transform.md":"DW-rR35W","source_transformations_tuples.md":"edr8CO-n","source_types.md":"FZoqYnp-","source_utils.md":"HjHA-HQh","tutorials_creating_geometry.md":"Dpft0-QP","tutorials_spatial_joins.md":"DVpey7LA"} +{"api.md":"D8vRTXzc","call_notes.md":"Sm3Jf0W7","experiments_accurate_accumulators.md":"CqEFN_MH","experiments_predicates.md":"DS4MeDQL","explanations_crs.md":"D9xjcHO4","explanations_paradigms.md":"PSNZ06gt","explanations_peculiarities.md":"B6SBpZ9S","explanations_winding_order.md":"Cf8Ra8rH","index.md":"BDvCOB10","introduction.md":"C36sb0xX","source_geometryops.md":"lnbjBCgq","source_methods_angles.md":"D6z_FLba","source_methods_area.md":"BVvuCOln","source_methods_barycentric.md":"Crjs7J0g","source_methods_buffer.md":"DazqrJzE","source_methods_centroid.md":"IR8dpgJi","source_methods_clipping_clipping_processor.md":"BWhMiGnY","source_methods_clipping_coverage.md":"KxEH9c7F","source_methods_clipping_cut.md":"DwfIybVD","source_methods_clipping_difference.md":"CtVeedUt","source_methods_clipping_intersection.md":"BFsZe1GD","source_methods_clipping_predicates.md":"DndNuKgS","source_methods_clipping_union.md":"wPjIz2t-","source_methods_distance.md":"B1hZWVIF","source_methods_equals.md":"Ch6uNWJu","source_methods_geom_relations_contains.md":"BS3Tc390","source_methods_geom_relations_coveredby.md":"CBrVFPVo","source_methods_geom_relations_covers.md":"CJImsgZm","source_methods_geom_relations_crosses.md":"DFkK36VY","source_methods_geom_relations_disjoint.md":"Ey3ncSdC","source_methods_geom_relations_geom_geom_processors.md":"BKbXzScL","source_methods_geom_relations_intersects.md":"BipP7oNj","source_methods_geom_relations_overlaps.md":"-oFxCtIE","source_methods_geom_relations_touches.md":"Be6oTFXc","source_methods_geom_relations_within.md":"326UAtQM","source_methods_orientation.md":"DA9Vnshv","source_methods_polygonize.md":"S22nQIi1","source_not_implemented_yet.md":"B6R1ju5V","source_primitives.md":"Ci3epseD","source_transformations_correction_closed_ring.md":"By-OKekv","source_transformations_correction_geometry_correction.md":"Bj6QaD57","source_transformations_correction_intersecting_polygons.md":"RsuC_abn","source_transformations_extent.md":"BPu3IaY5","source_transformations_flip.md":"BGimQo7i","source_transformations_reproject.md":"DHAjuiB9","source_transformations_segmentize.md":"D4VG4yA6","source_transformations_simplify.md":"BT2U96wa","source_transformations_transform.md":"DzNIRGhW","source_transformations_tuples.md":"ZfaVsRxE","source_types.md":"CpC4Xnr3","source_utils.md":"Czr5gCUE","tutorials_creating_geometry.md":"k23w5UdQ","tutorials_spatial_joins.md":"CcDuRcBC"} diff --git a/dev/index.html b/dev/index.html index 58426896b..03eef268b 100644 --- a/dev/index.html +++ b/dev/index.html @@ -8,18 +8,18 @@ - + - - - + + +
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/dev/introduction.html b/dev/introduction.html index ae8d8d965..0d519a09a 100644 --- a/dev/introduction.html +++ b/dev/introduction.html @@ -8,18 +8,18 @@ - + - - - + + +
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/dev/source/GeometryOps.html b/dev/source/GeometryOps.html index e13424229..b4b748cb4 100644 --- a/dev/source/GeometryOps.html +++ b/dev/source/GeometryOps.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -90,7 +90,7 @@ end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/angles.html b/dev/source/methods/angles.html index 5e03ad61d..947ddafb0 100644 --- a/dev/source/methods/angles.html +++ b/dev/source/methods/angles.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -23,7 +23,7 @@ using Makie, CairoMakie rect = GI.Polygon([[(0.0, 0.0), (0.0, 1.0), (1.0, 1.0), (1.0, 0.0), (0.0, 0.0)]]) -f, a, p = poly(collect(GI.getpoint(rect)); axis = (; aspect = DataAspect()))

This is clearly a rectangle, with angles of 90 degrees.

julia
GO.angles(rect)  # [90, 90, 90, 90]
4-element Vector{Float64}:
+f, a, p = poly(collect(GI.getpoint(rect)); axis = (; aspect = DataAspect()))

This is clearly a rectangle, with angles of 90 degrees.

julia
GO.angles(rect)  # [90, 90, 90, 90]
4-element Vector{Float64}:
  90.0
  90.0
  90.0
@@ -38,7 +38,7 @@
     - 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 polygin is a vector of vectors of angles formed by each ring.
+    - 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.
 
@@ -79,7 +79,7 @@
 end
 
 #= The angles of a polygon is a vector of polygon angles. Note that if there are holes
-within the polyogn, the angles will be listed after the exterior ring angles in order of the
+within the polygon, the angles will be listed after the exterior ring angles in order of the
 holes. All angles, including the hole angles, are interior angles of the polygon.=#
 function _angles(::Type{T}, ::GI.PolygonTrait, geom) where T
     angles = _angles(T, GI.LinearRingTrait(), GI.getexterior(geom); interior = true)
@@ -142,7 +142,7 @@
     angle = real(acos(val) * 180 / π)
     return angle * (cross_prod < 0 ? -1 : 1)
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/area.html b/dev/source/methods/area.html index 9c5be2a37..e9c9587fd 100644 --- a/dev/source/methods/area.html +++ b/dev/source/methods/area.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -24,10 +24,10 @@ using CairoMakie rect = GI.Polygon([[(0,0), (0,1), (1,1), (1,0), (0, 0)]]) -f, a, p = poly(collect(GI.getpoint(rect)); axis = (; aspect = DataAspect()))

This is clearly a rectangle, etc. But now let's look at how the points look:

julia
lines!(
+f, a, p = poly(collect(GI.getpoint(rect)); axis = (; aspect = DataAspect()))

This is clearly a rectangle, etc. But now let's look at how the points look:

julia
lines!(
     collect(GI.getpoint(rect));
     color = 1:GI.npoint(rect), linewidth = 10.0)
-f

The points are ordered in a counterclockwise fashion, which means that the signed area is negative. If we reverse the order of the points, we get a postive 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
@@ -55,7 +55,7 @@
     signed_area(geom, [T = Float64])::T
 
 Returns the signed area of a single geometry, based on winding order.
-This is computed slighly differently for different geometries:
+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.
@@ -105,7 +105,7 @@
     area += _area_component(p1, p2)
     return T(area / 2)
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/barycentric.html b/dev/source/methods/barycentric.html index 120c71e39..555861c01 100644 --- a/dev/source/methods/barycentric.html +++ b/dev/source/methods/barycentric.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -85,7 +85,7 @@ # and render! hm = heatmap!(a2, xrange, yrange, mean_values; colormap = p1.colormap, colorrange = p1.plots[1].colorrange[], xautolimits = false, yautolimits = false) translate!(hm, 0, 0, -1) # translate the heatmap behind the cropping polygon! -f # finally, display the figure

Barycentric-coordinate API

In some cases, we actually want barycentric interpolation, and have no interest in the coordinates themselves.

However, the coordinates can be useful for debugging, and when performing 3D rendering, multiple barycentric values (depth, uv) are needed for depth buffering.

julia
const _VecTypes = Union{Tuple{Vararg{T, N}}, GeometryBasics.StaticArraysCore.StaticArray{Tuple{N}, T, 1}} where {N, T}
+f # finally, display the figure

Barycentric-coordinate API

In some cases, we actually want barycentric interpolation, and have no interest in the coordinates themselves.

However, the coordinates can be useful for debugging, and when performing 3D rendering, multiple barycentric values (depth, uv) are needed for depth buffering.

julia
const _VecTypes = Union{Tuple{Vararg{T, N}}, GeometryBasics.StaticArraysCore.StaticArray{Tuple{N}, T, 1}} where {N, T}
 
 """
     abstract type AbstractBarycentricCoordinateMethod
@@ -433,7 +433,7 @@
 
 struct Wachspress <: AbstractBarycentricCoordinateMethod
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/buffer.html b/dev/source/methods/buffer.html index d4d4ef7a5..b71aead31 100644 --- a/dev/source/methods/buffer.html +++ b/dev/source/methods/buffer.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,7 +29,7 @@ println(io, " in your REPL, \nor otherwise loading LibGEOS.jl via using or import.") end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/centroid.html b/dev/source/methods/centroid.html index cfc0f0804..e4dfe1b07 100644 --- a/dev/source/methods/centroid.html +++ b/dev/source/methods/centroid.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -24,9 +24,9 @@ using CairoMakie cshape = GI.Polygon([[(0,0), (0,3), (3,3), (3,2), (1,2), (1,1), (3,1), (3,0), (0,0)]]) -f, a, p = poly(collect(GI.getpoint(cshape)); axis = (; aspect = DataAspect()))

Let's see what the centroid looks like (plotted in red):

julia
cent = GO.centroid(cshape)
+f, a, p = poly(collect(GI.getpoint(cshape)); axis = (; aspect = DataAspect()))

Let's see what the centroid looks like (plotted in red):

julia
cent = GO.centroid(cshape)
 scatter!(GI.x(cent), GI.y(cent), color = :red)
-f

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Note that if you call centroid on a LineString or LinearRing, the centroid_and_length function will be called due to the weighting scheme described above, while centroid_and_area is called for polygons and multipolygons. However, centroid_and_area can still be called on a LineString or LinearRing when they are closed, for example as the interior hole of a polygon.

The helper functions centroid_and_length and centroid_and_area are made availible just in case the user also needs the area or length to decrease repeat computation.

julia
"""
+f

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Note that if you call centroid on a LineString or LinearRing, the centroid_and_length function will be called due to the weighting scheme described above, while centroid_and_area is called for polygons and multipolygons. However, centroid_and_area can still be called on a LineString or LinearRing when they are closed, for example as the interior hole of a polygon.

The helper functions centroid_and_length and centroid_and_area are made available just in case the user also needs the area or length to decrease repeat computation.

julia
"""
     centroid(geom, [T=Float64])::Tuple{T, T}
 
 Returns the centroid of a given line segment, linear ring, polygon, or
@@ -111,7 +111,7 @@
     y = (y1 * area1 + y2 * area2) / area
     return (x, y), area
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/clipping/clipping_processor.html b/dev/source/methods/clipping/clipping_processor.html index e050542c1..bd67bac5e 100644 --- a/dev/source/methods/clipping/clipping_processor.html +++ b/dev/source/methods/clipping/clipping_processor.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -52,7 +52,7 @@ _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)
 
     return a_list, b_list, a_idx_list
-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 indicies 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 indicies 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(::Type{T}, poly_a, poly_b; exact) where T
     n_a_edges = _nedge(poly_a)
     a_list = PolyNode{T}[]  # list of points in poly_a
     sizehint!(a_list, n_a_edges)
@@ -125,7 +125,7 @@
         a_pt1 = a_pt2
     end
     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 neightbor 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(::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)
     n_intr_pts = length(a_idx_list)
     b_list = PolyNode{T}[]
     sizehint!(b_list, n_b_edges + n_b_intrs)
@@ -412,7 +412,7 @@
     end
     return return_polys
 end

Get type of polygons that will be made TODO: Increase type options

julia
_get_poly_type(::Type{T}) where T =
-    GI.Polygon{false, false, Vector{GI.LinearRing{false, false, Vector{Tuple{T, T}}, Nothing, Nothing}}, Nothing, Nothing}
_find_non_cross_orientation(a_list, b_list, a_poly, b_poly; exact)

For polygns with no crossing intersection points, either one polygon is inside of another, or they are seperate polygons with no intersection (other than an edge or point).

Return two booleans that represent if a is inside b (potentially with shared edges / points) and visa versa if b is inside of a.

julia
function _find_non_cross_orientation(a_list, b_list, a_poly, b_poly; exact)
+    GI.Polygon{false, false, Vector{GI.LinearRing{false, false, Vector{Tuple{T, T}}, Nothing, Nothing}}, Nothing, Nothing}
_find_non_cross_orientation(a_list, b_list, a_poly, b_poly; exact)

For polygons with no crossing intersection points, either one polygon is inside of another, or they are separate polygons with no intersection (other than an edge or point).

Return two booleans that represent if a is inside b (potentially with shared edges / points) and visa versa if b is inside of a.

julia
function _find_non_cross_orientation(a_list, b_list, a_poly, b_poly; exact)
     non_intr_a_idx = findfirst(x -> !x.inter, a_list)
     non_intr_b_idx = findfirst(x -> !x.inter, b_list)
     #= Determine if non-intersection point is in or outside of polygon - if there isn't A
@@ -439,7 +439,7 @@
                         append!(remove_poly_idx, falses(n_new_pieces))
                         n_new_per_poly += n_new_pieces
                     end
-                    if !on_ext && !out_ext  # hole is completly within exterior
+                    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())
@@ -450,7 +450,7 @@
                             append!(remove_poly_idx, falses(n_new_polys))
                             n_new_per_poly += n_new_polys
                         end
-                    end

polygon is completly within hole

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

polygon is completely within hole

julia
                elseif coveredby(curr_poly_ext, GI.Polygon(StaticArrays.SVector(curr_hole)))
                     remove_poly_idx[j] = true
                 end
             end
@@ -458,7 +458,7 @@
         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 orignal 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!(::Type{T}, new_hole, curr_poly, return_polys, remove_hole_idx) where T
     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))
@@ -502,7 +502,7 @@
                     p2 = p
                     continue
                 else
-                    p3 = p

check if p2 is approximatly 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

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

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/clipping/coverage.html b/dev/source/methods/clipping/coverage.html index d8185c781..042c0cff5 100644 --- a/dev/source/methods/clipping/coverage.html +++ b/dev/source/methods/clipping/coverage.html @@ -8,17 +8,17 @@ - + - - - + + + -
Skip to content
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-coordiantes of that bounding box, or an Extent containing that information.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
+    
Skip to content
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
@@ -28,7 +28,7 @@
 xmin, xmax, ymin, ymax = 0, 2, 0, 2
 f, a, p = poly(collect(GI.getpoint(cell)); axis = (; aspect = DataAspect()))
 poly!(collect(GI.getpoint(rect)))
-f

It is clear that half of the polygon is within the cell, so the coverage should be 1.0, half of the area of the rectangle.

julia
GO.coverage(rect, xmin, xmax, ymin, ymax)
1.0

Implementation

This is the GeoInterface-compatible implementation. First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Note that the coverage is zero for all points and curves, even if the curves are closed like with a linear ring.

Targets for applys functions

julia
const _COVERAGE_TARGETS = TraitTarget{Union{GI.PolygonTrait,GI.AbstractCurveTrait,GI.MultiPointTrait,GI.PointTrait}}()

Wall types for coverage

julia
const UNKNOWN, NORTH, EAST, SOUTH, WEST = 0:4
+f

It is clear that half of the polygon is within the cell, so the coverage should be 1.0, half of the area of the rectangle.

julia
GO.coverage(rect, xmin, xmax, ymin, ymax)
1.0

Implementation

This is the GeoInterface-compatible implementation. First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Note that the coverage is zero for all points and curves, even if the curves are closed like with a linear ring.

Targets for applys functions

julia
const _COVERAGE_TARGETS = TraitTarget{Union{GI.PolygonTrait,GI.AbstractCurveTrait,GI.MultiPointTrait,GI.PointTrait}}()

Wall types for coverage

julia
const UNKNOWN, NORTH, EAST, SOUTH, WEST = 0:4
 
 """
     coverage(geom, xmin, xmax, ymin, ymax, [T = Float64])::T
@@ -241,7 +241,7 @@
     y_wall = (wall == NORTH || wall == WEST) ? ymax : ymin
     return x1 * y_wall - x_wall * y1
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/clipping/cut.html b/dev/source/methods/clipping/cut.html index 200634d84..7b036ec42 100644 --- a/dev/source/methods/clipping/cut.html +++ b/dev/source/methods/clipping/cut.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,7 +29,7 @@ f, a, p1 = Makie.poly(collect(GI.getpoint(cut_polys[1])); color = (:blue, 0.5)) Makie.poly!(collect(GI.getpoint(cut_polys[2])); color = (:orange, 0.5)) Makie.lines!(GI.getpoint(line); color = :black) -f

Implementation

This function depends on polygon clipping helper function and is inspired by the Greiner-Hormann clipping algorithm used elsewhere in this library. The inspiration came from this Stack Overflow discussion.

julia
"""
+f

Implementation

This function depends on polygon clipping helper function and is inspired by the Greiner-Hormann clipping algorithm used elsewhere in this library. The inspiration came from this Stack Overflow discussion.

julia
"""
     cut(geom, line, [T::Type])
 
 Return given geom cut by given line as a list of geometries of the same type as the input
@@ -79,7 +79,7 @@
 of cut geometry in Vector{Vector{Tuple}} format.
 
 Note: degenerate cases where intersection points are vertices do not work right now. =#
-function _cut(::Type{T}, geom, line, geom_list, intr_list, n_intr_pts; exact) where T

Sort and catagorize the intersection points

julia
    sort!(intr_list, by = x -> geom_list[x].fracs[2])
+function _cut(::Type{T}, geom, line, geom_list, intr_list, n_intr_pts; exact) where T

Sort and categorize the intersection points

julia
    sort!(intr_list, by = x -> geom_list[x].fracs[2])
     _flag_ent_exit!(GI.LineTrait(), line, geom_list; exact)

Add first point to output list

julia
    return_coords = [[geom_list[1].point]]
     cross_backs = [(T(Inf),T(Inf))]
     poly_idx = 1
@@ -105,7 +105,7 @@
     end
     return return_coords
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/clipping/difference.html b/dev/source/methods/clipping/difference.html index 3018bd0f2..436d48404 100644 --- a/dev/source/methods/clipping/difference.html +++ b/dev/source/methods/clipping/difference.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -87,7 +87,7 @@ append!(polys, new_polys) end end - end

Remove uneeded 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!(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
@@ -146,7 +146,7 @@
 #= Multipolygon with multipolygon difference - note that all intersection regions between
 sub-polygons of `multipoly_a` and sub-polygons of `multipoly_b` will be removed from the
 corresponding sub-polygon of `multipoly_a`. Unless specified with `fix_multipoly = nothing`,
-`multipolygon_a` will be validated using the given (defauly is `UnionIntersectingPolygons()`)
+`multipolygon_a` will be validated using the given (default is `UnionIntersectingPolygons()`)
 correction. =#
 function _difference(
     target::TraitTarget{GI.PolygonTrait}, ::Type{T},
@@ -168,7 +168,7 @@
         else
             difference(GI.MultiPolygon(polys), poly_b; target, fix_multipoly)
         end
-        #= One multipoly_a has been completly covered (and thus removed) there is no need to
+        #= One multipoly_a has been completely covered (and thus removed) there is no need to
         continue taking the difference =#
         isempty(polys) && break
     end
@@ -184,7 +184,7 @@
     )
     return nothing
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/clipping/intersection.html b/dev/source/methods/clipping/intersection.html index 4a4df6bee..4b6626764 100644 --- a/dev/source/methods/clipping/intersection.html +++ b/dev/source/methods/clipping/intersection.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -24,7 +24,7 @@ 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` (colinear with the curve), or `line_out` (not interacting with the curve). +`line_over` (collinear with the curve), or `line_out` (not interacting with the curve). """ @enum LineOrientation line_cross=1 line_hinge=2 line_over=3 line_out=4 @@ -92,7 +92,7 @@ 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 uneeded 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!(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
@@ -129,7 +129,7 @@
 end
 
 #= Multipolygon with polygon intersection is equivalent to taking the intersection of the
-poylgon with the multipolygon and thus simply switches the order of operations and calls the
+polygon with the multipolygon and thus simply switches the order of operations and calls the
 above method. =#
 _intersection(
     target::TraitTarget{GI.PolygonTrait}, ::Type{T},
@@ -192,7 +192,7 @@
     _intersection_points(T, GI.trait(geom_a), geom_a, GI.trait(geom_b), geom_b)
 
 
-#= Calculates the list of intersection points between two geometries, inlcuding line
+#= 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)
@@ -347,7 +347,7 @@
 
 #= If lines defined by (a1, a2) and (b1, b2) meet at one point that is not an endpoint of
 either segment, they form a crossing intersection with a singular intersection point. That
-point is caculated by finding the fractional distance along each segment the point occurs
+point is calculated by finding the fractional distance along each segment the point occurs
 at (α, β). If the point is too close to an endpoint to be distinct, the point shares a value
 with the endpoint, but with a non-zero and non-one fractional value. If the intersection
 point calculated is outside of the envelope of the two segments due to floating point error,
@@ -362,9 +362,9 @@
     β = _clamped_frac(Δbax * Δay - Δbay * Δax, a_cross_b, eps(T))
 
     #= Intersection will be where a1 + α * Δa = b1 + β * Δb. However, due to floating point
-    innacurracies, α and β calculations may yeild different intersection points. Average
+    inaccuracies, α and β calculations may yield different intersection points. Average
     both points together to minimize difference from real value, as long as segment isn't
-    vertical or horizontal as this will almost certianly lead to the point being outside the
+    vertical or horizontal as this will almost certainly lead to the point being outside the
     envelope due to floating point error. Also note that floating point limitations could
     make intersection be endpoint if α≈0 or α≈1.=#
     x = if Δax == 0
@@ -401,7 +401,7 @@
         α, β = _clamped_frac(distance(min_pt, a2, T), a_dist, eps(T)), one(T) - eps(T)
     end

Return point with smallest distance

julia
    return _tuple_point(min_pt, T), α, β
 end

Return value of x/y clamped between ϵ and 1 - ϵ

julia
_clamped_frac(x::T, y::T, ϵ = zero(T)) where T = clamp(x / y, ϵ, one(T) - ϵ)

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/clipping/predicates.html b/dev/source/methods/clipping/predicates.html index 1eb27bfe5..3cc6cb3c0 100644 --- a/dev/source/methods/clipping/predicates.html +++ b/dev/source/methods/clipping/predicates.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -62,7 +62,7 @@ end import .Predicates

If we want to inject adaptivity, we would do something like:

function cross(a, b, c) # try Predicates._cross_naive(a, b, c) # check the error bound there # then try Predicates._cross_adaptive(a, b, c) # then try Predicates._cross_exact end


This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/clipping/union.html b/dev/source/methods/clipping/union.html index cb180d204..cbd15c64c 100644 --- a/dev/source/methods/clipping/union.html +++ b/dev/source/methods/clipping/union.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -88,7 +88,7 @@ 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 uneeded collinear points on same edge

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

Remove unneeded collinear points on same edge

julia
    _remove_collinear_points!(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
@@ -158,7 +158,7 @@
         in_ih, on_ih, out_ih = _line_polygon_interactions(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 completly within the ith hole - polygons aren't
+                #= interior polygon is completely within the ith hole - polygons aren't
                 touching and do not actually form a union =#
                 polys[1] = tuples(interior_poly)
                 push!(polys, tuples(exterior_poly))
@@ -229,7 +229,7 @@
     return polys
 end
 
-#= Multipolygon with polygon union is equivalent to taking the union of the poylgon with the
+#= 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},
@@ -268,7 +268,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/dev/source/methods/distance.html b/dev/source/methods/distance.html index 102e7a99b..6c7f21f35 100644 --- a/dev/source/methods/distance.html +++ b/dev/source/methods/distance.html @@ -8,17 +8,17 @@ - + - - - + + + -
Skip to content

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 postitive or 0.

To provide an example, consider this rectangle:

julia
import GeometryOps as GO
+    
Skip to content

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
@@ -29,13 +29,13 @@
 f, a, p = poly(collect(GI.getpoint(rect)); axis = (; aspect = DataAspect()))
 scatter!(GI.x(point_in), GI.y(point_in); color = :red)
 scatter!(GI.x(point_out), GI.y(point_out); color = :orange)
-f

This is clearly a rectangle with one point inside and one point outside. The points are both an equal distance to the polygon. The distance to point_in is negative while the distance to point_out is positive.

julia
(
+f

This is clearly a rectangle with one point inside and one point outside. The points are both an equal distance to the polygon. The distance to point_in is negative while the distance to point_out is positive.

julia
(
 GO.distance(point_in, rect),  # == 0
 GO.signed_distance(point_in, rect),  # < 0
 GO.signed_distance(point_out, rect)  # > 0
 )
(0.0, -0.5, 0.5)

Consider also a heatmap of signed distances around this object:

julia
xrange = yrange = LinRange(-0.5, 1.5, 300)
 f, a, p = heatmap(xrange, yrange, GO.signed_distance.(Point2f.(xrange, yrange'), Ref(rect)); colormap = :RdBu, colorrange = (-0.75, 0.75))
-a.aspect = DataAspect(); Colorbar(f[1, 2], p, label = "Signed distance"); lines!(a, GI.convert(GO.GeometryBasics, rect)); f

Implementation

This is the GeoInterface-compatible implementation. First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Distance and signed distance are only implemented for points to other geometries right now. This could be extended to include distance from other geometries in the future.

The distance calculated is the Euclidean distance using the Pythagorean theorem. Also note that singed_distance only makes sense for "filled-in" shapes, like polygons, so it isn't implemented for curves.

julia
const _DISTANCE_TARGETS = TraitTarget{Union{GI.AbstractPolygonTrait,GI.LineStringTrait,GI.LinearRingTrait,GI.LineTrait,GI.PointTrait}}()
+a.aspect = DataAspect(); Colorbar(f[1, 2], p, label = "Signed distance"); lines!(a, GI.convert(GO.GeometryBasics, rect)); f

Implementation

This is the GeoInterface-compatible implementation. First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Distance and signed distance are only implemented for points to other geometries right now. This could be extended to include distance from other geometries in the future.

The distance calculated is the Euclidean distance using the Pythagorean theorem. Also note that singed_distance only makes sense for "filled-in" shapes, like polygons, so it isn't implemented for curves.

julia
const _DISTANCE_TARGETS = TraitTarget{Union{GI.AbstractPolygonTrait,GI.LineStringTrait,GI.LinearRingTrait,GI.LineTrait,GI.PointTrait}}()
 
 """
     distance(point, geom, ::Type{T} = Float64)::T
@@ -199,7 +199,7 @@
     end
     return min_dist
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/equals.html b/dev/source/methods/equals.html index 17e8a6c38..56839c6a6 100644 --- a/dev/source/methods/equals.html +++ b/dev/source/methods/equals.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,7 +29,7 @@ scatter!(GI.getpoint(l1), color = :blue) lines!(GI.getpoint(l2), color = :orange) scatter!(GI.getpoint(l2), color = :orange) -f

We can see that the two lines do not share a commen 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 explicity 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.
@@ -170,7 +170,7 @@
     )::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 defintion.
+along the curve. Note that lines/linestrings aren't closed by definition.
 """
 equals(
     ::Union{GI.LineTrait, GI.LineStringTrait}, l1,
@@ -184,7 +184,7 @@
     )::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 defintion, but
+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
 """
 equals(
@@ -199,7 +199,7 @@
     )::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 defintion, but
+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
 """
 equals(
@@ -283,7 +283,7 @@
     end
     return true
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/contains.html b/dev/source/methods/geom_relations/contains.html index b5587b1f9..d18c7c171 100644 --- a/dev/source/methods/geom_relations/contains.html +++ b/dev/source/methods/geom_relations/contains.html @@ -8,17 +8,17 @@ - + - - - + + + -
Skip to content

Contains

julia
export contains

What is contains?

The contains function checks if a given geometry completly contains another geometry, or in other words, that the second geometry is completly 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
+    
Skip to content

Contains

julia
export contains

What is contains?

The contains function checks if a given geometry completely contains another geometry, or in other words, that the second geometry is completely within the first. This requires that the two interiors intersect and that the interior and boundary of the second geometry is not in the exterior of the first geometry.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
 import GeoInterface as GI
 using Makie
 using CairoMakie
@@ -29,7 +29,7 @@
 scatter!(GI.getpoint(l1), color = :blue)
 lines!(GI.getpoint(l2), color = :orange)
 scatter!(GI.getpoint(l2), color = :orange)
-f

We can see that all of the points and edges of l2 are within l1, so l1 contains l2. However, l2 does not contain l1.

julia
GO.contains(l1, l2)  # returns true
+f

We can see that all of the points and edges of l2 are within l1, so l1 contains l2. However, l2 does not contain l1.

julia
GO.contains(l1, l2)  # returns true
 GO.contains(l2, l1)  # returns false
false

Implementation

This is the GeoInterface-compatible implementation.

Given that contains is the exact opposite of within, we simply pass the two inputs variables, swapped in order, to within.

julia
"""
     contains(g1::AbstractGeometry, g2::AbstractGeometry)::Bool
 
@@ -51,7 +51,7 @@
 ```
 """
 contains(g1, g2) = GeometryOps.within(g2, g1)

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/coveredby.html b/dev/source/methods/geom_relations/coveredby.html index f70abd78a..c9a5c4af4 100644 --- a/dev/source/methods/geom_relations/coveredby.html +++ b/dev/source/methods/geom_relations/coveredby.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -27,7 +27,7 @@ l1 = GI.Line([p1, (1.0, 1.0)]) f, a, p = lines(GI.getpoint(l1)) scatter!(p1, color = :red) -f

As we can see, p1 is on the endpoint of l1. This means it is not within, but it does meet the definition of coveredby.

julia
GO.coveredby(p1, l1)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the coveredby function and arguments g1 and g2, this criteria is as follows: - points of g1 are allowed to be in the interior of g2 (either through overlap or crossing for lines) - points of g1 are allowed to be on the boundary of g2 - points of g1 are not allowed to be in the exterior of g2 - no points of g1 are required to be in the interior of g2 - no points of g1 are required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

The code for the specific implementations is in the geom_geom_processors file.

julia
const COVEREDBY_ALLOWS = (in_allow = true, on_allow = true, out_allow = false)
+f

As we can see, p1 is on the endpoint of l1. This means it is not within, but it does meet the definition of coveredby.

julia
GO.coveredby(p1, l1)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the coveredby function and arguments g1 and g2, this criteria is as follows: - points of g1 are allowed to be in the interior of g2 (either through overlap or crossing for lines) - points of g1 are allowed to be on the boundary of g2 - points of g1 are not allowed to be in the exterior of g2 - no points of g1 are required to be in the interior of g2 - no points of g1 are required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

The code for the specific implementations is in the geom_geom_processors file.

julia
const COVEREDBY_ALLOWS = (in_allow = true, on_allow = true, out_allow = false)
 const COVEREDBY_CURVE_ALLOWS = (over_allow = true, cross_allow = true, on_allow = true, out_allow = false)
 const COVEREDBY_CURVE_REQUIRES = (in_require = false, on_require = false, out_require = false)
 const COVEREDBY_POLYGON_REQUIRES = (in_require = true, on_require = false, out_require = false,)
@@ -111,7 +111,7 @@
 )
 
 #= Linestring is coveredby a polygon if all interior and boundary points of the
-line are in the polygon interior or on its edges, inlcuding hole edges. =#
+line are in the polygon interior or on its edges, including hole edges. =#
 _coveredby(
     ::Union{GI.LineTrait, GI.LineStringTrait}, g1,
     ::GI.PolygonTrait, g2,
@@ -150,7 +150,7 @@
 )
 
 #= Linearring is coveredby a polygon if all vertices and edges of the ring are
-in the polygon interior or on the polygon edges, inlcuding hole edges. =#
+in the polygon interior or on the polygon edges, including hole edges. =#
 _coveredby(
     ::GI.LinearRingTrait, g1,
     ::GI.PolygonTrait, g2,
@@ -201,7 +201,7 @@
     end
     return true
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/covers.html b/dev/source/methods/geom_relations/covers.html index dd90e97ba..640eb68ca 100644 --- a/dev/source/methods/geom_relations/covers.html +++ b/dev/source/methods/geom_relations/covers.html @@ -8,17 +8,17 @@ - + - - - + + + -
Skip to content

Covers

julia
export covers

What is covers?

The covers function checks if a given geometry completly 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
+    
Skip to content

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
@@ -29,7 +29,7 @@
 
 f, a, p = lines(GI.getpoint(l1))
 scatter!(p1, color = :red)
-f

julia
GO.covers(l1, p1)  # returns true
+f

julia
GO.covers(l1, p1)  # returns true
 GO.covers(p1, l1)  # returns false
false

Implementation

This is the GeoInterface-compatible implementation.

Given that covers is the exact opposite of coveredby, we simply pass the two inputs variables, swapped in order, to coveredby.

julia
"""
     covers(g1::AbstractGeometry, g2::AbstractGeometry)::Bool
 
@@ -51,7 +51,7 @@
 ```
 """
 covers(g1, g2)::Bool = GeometryOps.coveredby(g2, g1)

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/crosses.html b/dev/source/methods/geom_relations/crosses.html index b3e8987bd..5bfd04fa6 100644 --- a/dev/source/methods/geom_relations/crosses.html +++ b/dev/source/methods/geom_relations/crosses.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -138,7 +138,7 @@ end return false end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/disjoint.html b/dev/source/methods/geom_relations/disjoint.html index 69e450ba9..ad4d2b53e 100644 --- a/dev/source/methods/geom_relations/disjoint.html +++ b/dev/source/methods/geom_relations/disjoint.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,7 +29,7 @@ scatter!(GI.getpoint(l1), color = :blue) lines!(GI.getpoint(l2), color = :orange) scatter!(GI.getpoint(l2), color = :orange) -f

We can see that none of the edges or vertices of l1 interact with l2 so they are disjoint.

julia
GO.disjoint(l1, l2)  # returns true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the disjoint function and arguments g1 and g2, this criteria is as follows: - points of g1 are not allowed to be in the interior of g2 - points of g1 are not allowed to be on the boundary of g2 - points of g1 are allowed to be in the exterior of g2 - no points required to be in the interior of g2 - no points of g1 are required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

The code for the specific implementations is in the geom_geom_processors file.

julia
const DISJOINT_ALLOWS = (in_allow = false, on_allow = false, out_allow = true)
+f

We can see that none of the edges or vertices of l1 interact with l2 so they are disjoint.

julia
GO.disjoint(l1, l2)  # returns true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the disjoint function and arguments g1 and g2, this criteria is as follows: - points of g1 are not allowed to be in the interior of g2 - points of g1 are not allowed to be on the boundary of g2 - points of g1 are allowed to be in the exterior of g2 - no points required to be in the interior of g2 - no points of g1 are required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

The code for the specific implementations is in the geom_geom_processors file.

julia
const DISJOINT_ALLOWS = (in_allow = false, on_allow = false, out_allow = true)
 const DISJOINT_CURVE_ALLOWS = (over_allow = false, cross_allow = false, on_allow = false, out_allow = true)
 const DISJOINT_REQUIRES = (in_require = false, on_require = false, out_require = false)
 const DISJOINT_EXACT = (exact = _False(),)
@@ -130,7 +130,7 @@
 )
 
 #= Geometry is disjoint from a linestring if the line's interior and boundary
-points don't intersect with the geometrie's interior and boundary points. =#
+points don't intersect with the geometry's interior and boundary points. =#
 _disjoint(
     trait1::Union{GI.LinearRingTrait, GI.PolygonTrait}, g1,
     trait2::Union{GI.LineTrait, GI.LineStringTrait}, g2,
@@ -196,7 +196,7 @@
     end
     return true
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/geom_geom_processors.html b/dev/source/methods/geom_relations/geom_geom_processors.html index bb687d538..37f096409 100644 --- a/dev/source/methods/geom_relations/geom_geom_processors.html +++ b/dev/source/methods/geom_relations/geom_geom_processors.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -56,7 +56,7 @@ )

Check interaction of geom with polygon's exterior boundary

julia
    ext_val = _point_filled_curve_orientation(point, GI.getexterior(polygon); exact)

If a point is outside, it isn't interacting with any holes

julia
    ext_val == point_out && return out_allow

if a point is on an external boundary, it isn't interacting with any holes

julia
    ext_val == point_on && return on_allow

If geom is within the polygon, need to check interactions with holes

julia
    for hole in GI.gethole(polygon)
         hole_val = _point_filled_curve_orientation(point, hole; exact)

If a point in in a hole, it is outside of the polygon

julia
        hole_val == point_in && return out_allow

If a point in on a hole edge, it is on the edge of the polygon

julia
        hole_val == point_on && return on_allow
     end

Point is within external boundary and on in/on any holes

julia
    return in_allow
-end

Determines if a line meets the given checks with respect to a curve.

If over_allow is true, segments of the line and curve can be co-linear. If cross_allow is true, segments of the line and curve can cross. If on_allow is true, endpoints of either the line or curve can intersect a segment of the other geometry. If cross_allow is true, segments of the line and curve can be disjoint.

If in_require is true, the interiors of the line and curve must meet in at least one point. If on_require is true, the bounday of one of the two geometries can meet the interior or boundary of the other geometry in at least one point. If out_require is true, there must be at least one point of the given line that is exterior of the curve.

If the point is in an "allowed" location and meets all requirments, return true. Else, return false.

If closed_line is true, line is treated as a closed line where the first and last point are connected by a segment. Same with closed_curve.

julia
@inline function _line_curve_process(line, curve;
+end

Determines if a line meets the given checks with respect to a curve.

If over_allow is true, segments of the line and curve can be co-linear. If cross_allow is true, segments of the line and curve can cross. If on_allow is true, endpoints of either the line or curve can intersect a segment of the other geometry. If cross_allow is true, segments of the line and curve can be disjoint.

If in_require is true, the interiors of the line and curve must meet in at least one point. If on_require is true, the boundary of one of the two geometries can meet the interior or boundary of the other geometry in at least one point. If out_require is true, there must be at least one point of the given line that is exterior of the curve.

If the point is in an "allowed" location and meets all requirements, return true. Else, return false.

If closed_line is true, line is treated as a closed line where the first and last point are connected by a segment. Same with closed_curve.

julia
@inline function _line_curve_process(line, curve;
     over_allow, cross_allow, kw...
 )
     skip, returnval = _maybe_skip_disjoint_extents(line, curve;
@@ -73,7 +73,7 @@
     in_require, on_require, out_require,
     closed_line = false, closed_curve = false,
     exact,
-)

Set up requirments

julia
    in_req_met = !in_require
+)

Set up requirements

julia
    in_req_met = !in_require
     on_req_met = !on_require
     out_req_met = !out_require

Determine curve endpoints

julia
    nl = GI.npoint(line)
     nc = GI.npoint(curve)
@@ -88,7 +88,7 @@
         l_end = _tuple_point(GI.getpoint(line, i))
         c_start = _tuple_point(GI.getpoint(curve, closed_curve ? nc : 1))

Loop over each curve segment

julia
        for j in (closed_curve ? 1 : 2):nc
             c_end = _tuple_point(GI.getpoint(curve, j))

Check if line and curve segments meet

julia
            seg_val, intr1, _ = _intersection_point(Float64, (l_start, l_end), (c_start, c_end); exact)

If segments are co-linear

julia
            if seg_val == line_over
-                !over_allow && return false

at least one point in, meets requirments

julia
                in_req_met = true
+                !over_allow && return false

at least one point in, meets requirements

julia
                in_req_met = true
                 point_val = _point_segment_orientation(l_start, c_start, c_end)

If entire segment isn't covered, consider remaining section

julia
                if point_val != point_out
                     i, l_start, break_off = _find_new_seg(i, l_start, l_end, c_start, c_end)
                     break_off && break
@@ -133,7 +133,7 @@
 end
 
 #= If entire segment (le to ls) isn't covered by segment (cs to ce), find remaining section
-part of section outside of cs to ce. If completly covered, increase segment index i. =#
+part of section outside of cs to ce. If completely covered, increase segment index i. =#
 function _find_new_seg(i, ls, le, cs, ce)
     break_off = true
     if _point_segment_orientation(le, cs, ce) != point_out
@@ -161,7 +161,7 @@
         ((le, _tuple_point(GI.getpoint(line, i + 1))), (cs, ce))
     end
     return next_seg
-end

Determines if a line meets the given checks with respect to a polygon.

If in_allow is true, segments of the line can be in the polygon interior. If on_allow is true, segments of the line can be on the polygon's boundary. If out_allow is true, segments of the line can be outside of the polygon.

If in_require is true, the interiors of the line and polygon must meet in at least one point. If on_require is true, the line must have at least one point on the polygon'same boundary. If out_require is true, the line must have at least one point outside of the polygon.

If the point is in an "allowed" location and meets all requirments, return true. Else, return false.

If closed_line is true, line is treated as a closed line where the first and last point are connected by a segment.

julia
@inline function _line_polygon_process(line, polygon; kw...)
+end

Determines if a line meets the given checks with respect to a polygon.

If in_allow is true, segments of the line can be in the polygon interior. If on_allow is true, segments of the line can be on the polygon's boundary. If out_allow is true, segments of the line can be outside of the polygon.

If in_require is true, the interiors of the line and polygon must meet in at least one point. If on_require is true, the line must have at least one point on the polygon'same boundary. If out_require is true, the line must have at least one point outside of the polygon.

If the point is in an "allowed" location and meets all requirements, return true. Else, return false.

If closed_line is true, line is treated as a closed line where the first and last point are connected by a segment.

julia
@inline function _line_polygon_process(line, polygon; kw...)
     skip, returnval = _maybe_skip_disjoint_extents(line, polygon; kw...)
     skip && return returnval
     return _inner_line_polygon_process(line, polygon; kw...)
@@ -195,7 +195,7 @@
             !out_allow && return false
             out_req_met = true
         end
-        if on_hole  # hole bounday is polygon boundary
+        if on_hole  # hole boundary is polygon boundary
             !on_allow && return false
             on_req_met = true
         end
@@ -209,7 +209,7 @@
         in_req_met = true
     end
     return in_req_met && on_req_met && out_req_met
-end

Determines if a polygon meets the given checks with respect to a polygon.

If in_allow is true, the polygon's interiors must intersect. If on_allow is true, the one of the polygon's boundaries must either interact with the other polygon's boundary or interior. If out_allow is true, the first polygon must have interior regions outside of the second polygon.

If in_require is true, the polygon interiors must meet in at least one point. If on_require is true, one of the polygon's must have at least one boundary point in or on the other polygon. If out_require is true, the first polygon must have at least one interior point outside of the second polygon.

If the point is in an "allowed" location and meets all requirments, return true. Else, return false.

julia
@inline function _polygon_polygon_process(poly1, poly2; kw...)
+end

Determines if a polygon meets the given checks with respect to a polygon.

If in_allow is true, the polygon's interiors must intersect. If on_allow is true, the one of the polygon's boundaries must either interact with the other polygon's boundary or interior. If out_allow is true, the first polygon must have interior regions outside of the second polygon.

If in_require is true, the polygon interiors must meet in at least one point. If on_require is true, one of the polygon's must have at least one boundary point in or on the other polygon. If out_require is true, the first polygon must have at least one interior point outside of the second polygon.

If the point is in an "allowed" location and meets all requirements, return true. Else, return false.

julia
@inline function _polygon_polygon_process(poly1, poly2; kw...)
     skip, returnval = _maybe_skip_disjoint_extents(poly1, poly2; kw...)
     skip && return returnval
     return _inner_polygon_polygon_process(poly1, poly2; kw...)
@@ -307,7 +307,7 @@
         !between_endpoints && return out
     end
     return in
-end

Determine if point is in, on, or out of a closed curve, which includes the space enclosed by the closed curve.

In means the point is within the closed curve (excluding edges and vertices). On means the point is on an edge or a vertex of the closed curve. Out means the point is outside of the closed curve.

Point should be an object of point trait and curve should be an object with a linestring or linearring trait, that is assumed to be closed, regardless of repeated last point.

Can provide values of in, on, and out keywords, which determines return values for each scenario.

Note that this uses the Algorithm by Hao and Sun (2018): https://doi.org/10.3390/sym10100477 Paper seperates orientation of point and edge into 26 cases. For each case, it is either a case where the point is on the edge (returns on), where a ray from the point (x, y) to infinity along the line y = y cut through the edge (k += 1), or the ray does not pass through the edge (do nothing and continue). If the ray passes through an odd number of edges, it is within the curve, else outside of of the curve if it didn't return 'on'. See paper for more information on cases denoted in comments.

julia
function _point_filled_curve_orientation(
+end

Determine if point is in, on, or out of a closed curve, which includes the space enclosed by the closed curve.

In means the point is within the closed curve (excluding edges and vertices). On means the point is on an edge or a vertex of the closed curve. Out means the point is outside of the closed curve.

Point should be an object of point trait and curve should be an object with a linestring or linearring trait, that is assumed to be closed, regardless of repeated last point.

Can provide values of in, on, and out keywords, which determines return values for each scenario.

Note that this uses the Algorithm by Hao and Sun (2018): https://doi.org/10.3390/sym10100477 Paper separates orientation of point and edge into 26 cases. For each case, it is either a case where the point is on the edge (returns on), where a ray from the point (x, y) to infinity along the line y = y cut through the edge (k += 1), or the ray does not pass through the edge (do nothing and continue). If the ray passes through an odd number of edges, it is within the curve, else outside of of the curve if it didn't return 'on'. See paper for more information on cases denoted in comments.

julia
function _point_filled_curve_orientation(
     point, curve;
     in::T = point_in, on::T = point_on, out::T = point_out, exact,
 ) where {T}
@@ -412,7 +412,7 @@
         l_start = l_end
     end
     return in_curve, on_curve, out_curve
-end

Determines the types of interactions of a line with a polygon.

Returns a tuple of booleans: (in_poly, on_poly, out_poly).

If in_poly is true, some of the lines interior points interact with the polygon interior points. If in_poly is true, endpoints of either the line intersect with the polygon or the line interacts with the polygon boundary, including hole bounaries. If out_curve is true, at least one segments of the line is outside the polygon, including inside of holes.

If closed_line is true, line is treated as a closed line where the first and last point are connected by a segment.

julia
function _line_polygon_interactions(
+end

Determines the types of interactions of a line with a polygon.

Returns a tuple of booleans: (in_poly, on_poly, out_poly).

If in_poly is true, some of the lines interior points interact with the polygon interior points. If in_poly is true, endpoints of either the line intersect with the polygon or the line interacts with the polygon boundary, including hole boundaries. If out_curve is true, at least one segments of the line is outside the polygon, including inside of holes.

If closed_line is true, line is treated as a closed line where the first and last point are connected by a segment.

julia
function _line_polygon_interactions(
     line, polygon;
     exact, closed_line = false,
 )
@@ -455,7 +455,7 @@
     end
     return skip, returnval
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/intersects.html b/dev/source/methods/geom_relations/intersects.html index 504215b08..aac608f96 100644 --- a/dev/source/methods/geom_relations/intersects.html +++ b/dev/source/methods/geom_relations/intersects.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -27,7 +27,7 @@ line2 = GI.Line([(123.354492,-15.961329), (127.22168,-14.008696)]) f, a, p = lines(GI.getpoint(line1)) lines!(GI.getpoint(line2)) -f

We can see that they intersect, so we expect intersects to return true, and we can visualize the intersection point in red.

julia
GO.intersects(line1, line2)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

Given that intersects is the exact opposite of disjoint, we simply pass the two inputs variables, swapped in order, to disjoint.

julia
"""
+f

We can see that they intersect, so we expect intersects to return true, and we can visualize the intersection point in red.

julia
GO.intersects(line1, line2)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

Given that intersects is the exact opposite of disjoint, we simply pass the two inputs variables, swapped in order, to disjoint.

julia
"""
     intersects(geom1, geom2)::Bool
 
 Return true if the interiors or boundaries of the two geometries interact.
@@ -45,7 +45,7 @@
 ```
 """
 intersects(geom1, geom2) = !disjoint(geom1, geom2)

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/overlaps.html b/dev/source/methods/geom_relations/overlaps.html index db5dd4b71..abc662e35 100644 --- a/dev/source/methods/geom_relations/overlaps.html +++ b/dev/source/methods/geom_relations/overlaps.html @@ -8,17 +8,17 @@ - + - - - + + + -
Skip to content

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 colinear.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+    
Skip to content

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
@@ -29,7 +29,7 @@
 scatter!(GI.getpoint(l1), color = :blue)
 lines!(GI.getpoint(l2), color = :orange)
 scatter!(GI.getpoint(l2), color = :orange)
-f

We can see that the two lines overlap in the plot:

julia
GO.overlaps(l1, l2)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait. This is also used in the implementation, since it's a lot less work!

Note that that since only elements of the same dimension can overlap, any two geometries with traits that are of different dimensions autmoatically 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 respectivly, 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
@@ -93,7 +93,7 @@
 """
     overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line)::Bool
 
-If the lines overlap, meaning that they are colinear but each have one endpoint
+If the lines overlap, meaning that they are collinear but each have one endpoint
 outside of the other line, return true. Else false.
 """
 overlaps(::GI.LineTrait, line1, ::GI.LineTrait, line) =
@@ -189,7 +189,7 @@
     return false
 end
 
-#= If the edges overlap, meaning that they are colinear but each have one endpoint
+#= If the edges overlap, meaning that they are collinear but each have one endpoint
 outside of the other edge, return true. Else false. =#
 function _overlaps(
     (a1, a2)::Edge,
@@ -230,7 +230,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/dev/source/methods/geom_relations/touches.html b/dev/source/methods/geom_relations/touches.html index f64b53484..f9aedf5a8 100644 --- a/dev/source/methods/geom_relations/touches.html +++ b/dev/source/methods/geom_relations/touches.html @@ -8,17 +8,17 @@ - + - - - + + + -
Skip to content

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 geometies interior or boundary.

To provide an example, consider these two lines:

julia
import GeometryOps as GO
+    
Skip to content

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
@@ -28,7 +28,7 @@
 
 f, a, p = lines(GI.getpoint(l1))
 lines!(GI.getpoint(l2))
-f

We can see that these two lines touch only at their endpoints.

julia
GO.touches(l1, l2)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the touches function and arguments g1 and g2, this criteria is as follows: - points of g1 are not allowed to be in the interior of g2 - points of g1 are allowed to be on the boundary of g2 - points of g1 are allowed to be in the exterior of g2 - no points of g1 are required to be in the interior of g2 - at least one point of g1 is required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

The code for the specific implementations is in the geom_geom_processors file.

julia
const TOUCHES_POINT_ALLOWED = (in_allow = false, on_allow = true, out_allow = false)
+f

We can see that these two lines touch only at their endpoints.

julia
GO.touches(l1, l2)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the touches function and arguments g1 and g2, this criteria is as follows: - points of g1 are not allowed to be in the interior of g2 - points of g1 are allowed to be on the boundary of g2 - points of g1 are allowed to be in the exterior of g2 - no points of g1 are required to be in the interior of g2 - at least one point of g1 is required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

The code for the specific implementations is in the geom_geom_processors file.

julia
const TOUCHES_POINT_ALLOWED = (in_allow = false, on_allow = true, out_allow = false)
 const TOUCHES_CURVE_ALLOWED = (over_allow = false, cross_allow = false, on_allow = true, out_allow = true)
 const TOUCHES_POLYGON_ALLOWS = (in_allow = false, on_allow = true, out_allow = true)
 const TOUCHES_REQUIRES = (in_require = false, on_require = true, out_require = false)
@@ -39,7 +39,7 @@
 
 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 geometies interior or
+boundary point that interacts with either the other geometry's interior or
 boundary.
 
 # Examples
@@ -82,8 +82,8 @@
 _touches(
     trait1::Union{GI.AbstractCurveTrait, GI.PolygonTrait}, g1,
     trait2::GI.PointTrait, g2,
-) = _touches(trait2, g2, trait1, g1)

Lines touching geometries

julia
#= Linestring touches another line if at least one bounday point interacts with
-the bounday of interior of the other line, but the interiors don't interact. =#
+) = _touches(trait2, g2, trait1, g1)

Lines touching geometries

julia
#= Linestring touches another line if at least one boundary point interacts with
+the boundary of interior of the other line, but the interiors don't interact. =#
 _touches(
     ::Union{GI.LineTrait, GI.LineStringTrait}, g1,
     ::Union{GI.LineTrait, GI.LineStringTrait}, g2,
@@ -130,14 +130,14 @@
 ) = _touches(trait2, g2, trait1, g1)
 
 #= Linearring cannot touch another linear ring since they are both exclusively
-made up of interior points and no bounday points =#
+made up of interior points and no boundary points =#
 _touches(
     ::GI.LinearRingTrait, g1,
     ::GI.LinearRingTrait, g2,
 ) = false
 
 #= Linearring touches a polygon if at least one of the points of the ring
-interact with the polygon bounday and non are in the polygon interior. =#
+interact with the polygon boundary and non are in the polygon interior. =#
 _touches(
     ::GI.LinearRingTrait, g1,
     ::GI.PolygonTrait, g2,
@@ -147,8 +147,8 @@
     TOUCHES_REQUIRES...,
     TOUCHES_EXACT...,
     closed_line = true,
-)

Polygons touch geometries

julia
#= Polygon touches a curve if at least one of the curve bounday points interacts
-with the polygon's bounday and no curve points interact with the interior.=#
+)

Polygons touch geometries

julia
#= Polygon touches a curve if at least one of the curve boundary points interacts
+with the polygon's boundary and no curve points interact with the interior.=#
 _touches(
     trait1::GI.PolygonTrait, g1,
     trait2::GI.AbstractCurveTrait, g2
@@ -192,7 +192,7 @@
     end
     return true
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/geom_relations/within.html b/dev/source/methods/geom_relations/within.html index 59bbab215..8cc38d012 100644 --- a/dev/source/methods/geom_relations/within.html +++ b/dev/source/methods/geom_relations/within.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,7 +29,7 @@ scatter!(GI.getpoint(l1), color = :blue) lines!(GI.getpoint(l2), color = :orange) scatter!(GI.getpoint(l2), color = :orange) -f

We can see that all of the points and edges of l2 are within l1, so l2 is within l1, but l1 is not within l2

julia
GO.within(l1, l2)  # false
+f

We can see that all of the points and edges of l2 are within l1, so l2 is within l1, but l1 is not within l2

julia
GO.within(l1, l2)  # false
 GO.within(l2, l1)  # true
true

Implementation

This is the GeoInterface-compatible implementation.

First, we implement a wrapper method that dispatches to the correct implementation based on the geometry trait.

Each of these calls a method in the geom_geom_processors file. The methods in this file determine if the given geometries meet a set of criteria. For the within function and arguments g1 and g2, this criteria is as follows: - points of g1 are allowed to be in the interior of g2 (either through overlap or crossing for lines) - points of g1 are allowed to be on the boundary of g2 - points of g1 are not allowed to be in the exterior of g2 - at least one point of g1 is required to be in the interior of g2 - no points of g1 are required to be on the boundary of g2 - no points of g1 are required to be in the exterior of g2

The code for the specific implementations is in the geom_geom_processors file.

julia
const WITHIN_POINT_ALLOWS = (in_allow = true, on_allow = false, out_allow = false)
 const WITHIN_CURVE_ALLOWS = (over_allow = true, cross_allow = true, on_allow = true, out_allow = false)
 const WITHIN_POLYGON_ALLOWS = (in_allow = true, on_allow = true, out_allow = false)
@@ -211,7 +211,7 @@
     end
     return true
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/orientation.html b/dev/source/methods/orientation.html index 1bda33fcc..b4d50d217 100644 --- a/dev/source/methods/orientation.html +++ b/dev/source/methods/orientation.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -118,7 +118,7 @@ _isparallel(bx - ax, by - ay, dx - cx, dy - cy) _isparallel(Δx1, Δy1, Δx2, Δy2) = (Δx1 * Δy2 == Δy1 * Δx2)

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/methods/polygonize.html b/dev/source/methods/polygonize.html index 304682a09..3fa1a8d6c 100644 --- a/dev/source/methods/polygonize.html +++ b/dev/source/methods/polygonize.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -53,7 +53,7 @@ Now, we can use the `polygonize` function to convert the raster data into polygons. For this particular example, we chose a range of z-values between 0.8 and 3.2, -which would provide two distinct polyogns with holes. +which would provide two distinct polygons with holes. ```@example polygonize polygons = polygonize(xs, ys, 0.8 .< zs .< 3.2) @@ -266,7 +266,7 @@ assigned_holes = count(assigned) assigned_holes == length(holes) || @warn "Not all holes were assigned to polygons, $(length(holes) - assigned_holes) where missed from $(length(holes)) holes and $(length(polygons)) polygons" - if isempty(polygons)

TODO: this really should return an emtpty MultiPolygon but GeoInterface wrappers cant do that yet, which is not ideal...

julia
        @warn "No polgons found, check your data or try another function for `f`"
+    if isempty(polygons)

TODO: this really should return an empty MultiPolygon but GeoInterface wrappers cant do that yet, which is not ideal...

julia
        @warn "No polgons found, check your data or try another function for `f`"
         return nothing
     else

Otherwise return a wrapped MultiPolygon

julia
        return GI.MultiPolygon(polygons; crs, extent = mapreduce(GI.extent, Extents.union, polygons))
     end
@@ -307,7 +307,7 @@
     end
     return edges
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/not_implemented_yet.html b/dev/source/not_implemented_yet.html index 27264737f..6bff90ba1 100644 --- a/dev/source/not_implemented_yet.html +++ b/dev/source/not_implemented_yet.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -22,7 +22,7 @@ function buffer end function convexhull end function concavehull end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/primitives.html b/dev/source/primitives.html index 4f3955e23..757695390 100644 --- a/dev/source/primitives.html +++ b/dev/source/primitives.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -21,7 +21,7 @@
Skip to content

Primitive functions

julia
export apply, applyreduce, TraitTarget

This file mainly defines the apply and applyreduce functions, and some related functionality.

In general, the idea behind the apply framework is to take as input any geometry, vector of geometries, or feature collection, deconstruct it to the given trait target (any arbitrary GI.AbstractTrait or TraitTarget union thereof, like PointTrait or PolygonTrait) and perform some operation on it.

This allows for a simple and consistent framework within which users can define their own operations trivially easily, and removes a lot of the complexity involved with handling complex geometry structures.

For example, a simple way to flip the x and y coordinates of a geometry is:

julia
flipped_geom = GO.apply(GI.PointTrait(), geom) do p
     (GI.y(p), GI.x(p))
 end

As simple as that. There's no need to implement your own decomposition because it's done for you.

Functions like flip, reproject, transform, even segmentize and simplify have been implemented using the apply framework. Similarly, centroid, area and distance have been implemented using the applyreduce framework.

Docstrings

Functions

Missing docstring.

Missing docstring for apply. Check Documenter's build log for details.

Missing docstring.

Missing docstring for applyreduce. Check Documenter's build log for details.

Missing docstring.

Missing docstring for GeometryOps.unwrap. Check Documenter's build log for details.

# GeometryOps.flattenFunction.
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


# GeometryOps.reconstructFunction.
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.

Ususally used in combination with flatten.

source


# GeometryOps.rebuildFunction.
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


Types

Missing docstring.

Missing docstring for TraitTarget. Check Documenter's build log for details.

Implementation

julia
const THREADED_KEYWORD = "- `threaded`: `true` or `false`. Whether to use multithreading. Defaults to `false`."
+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


# GeometryOps.reconstructFunction.
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


# GeometryOps.rebuildFunction.
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


Types

Missing docstring.

Missing docstring for TraitTarget. Check Documenter's build log for details.

Implementation

julia
const THREADED_KEYWORD = "- `threaded`: `true` or `false`. Whether to use multithreading. Defaults to `false`."
 const CRS_KEYWORD = "- `crs`: The CRS to attach to geometries. Defaults to `nothing`."
 const CALC_EXTENT_KEYWORD = "- `calc_extent`: `true` or `false`. Whether to calculate the extent. Defaults to `false`."
 
@@ -106,14 +106,14 @@
 ) where F

Run _apply on all features in the feature collection, possibly threaded

julia
    apply_to_feature(i) =
         _apply(f, target, GI.getfeature(fc, i); crs, calc_extent, threaded=_False())::GI.Feature
     features = _maptasks(apply_to_feature, 1:GI.nfeature(fc), threaded)
-    if calc_extent isa _True

Calculate the extent of the features

julia
        extent = mapreduce(GI.extent, Extents.union, features)

Return a FeatureCollection with features, crs and caculated extent

julia
        return GI.FeatureCollection(features; crs, extent)
+    if calc_extent isa _True

Calculate the extent of the features

julia
        extent = mapreduce(GI.extent, Extents.union, features)

Return a FeatureCollection with features, crs and calculated extent

julia
        return GI.FeatureCollection(features; crs, extent)
     else

Return a FeatureCollection with features and crs

julia
        return GI.FeatureCollection(features; crs)
     end
 end

Rewrap all FeatureTrait features as GI.Feature, keeping the properties

julia
@inline function _apply(f::F, target, ::GI.FeatureTrait, feature;
     crs=GI.crs(feature), calc_extent=_False(), threaded
 ) where F

Run _apply on the contained geometry

julia
    geometry = _apply(f, target, GI.geometry(feature); crs, calc_extent, threaded)

Get the feature properties

julia
    properties = GI.properties(feature)
-    if calc_extent isa _True

Calculate the extent of the geometry

julia
        extent = GI.extent(geometry)

Return a new Feature with the new geometry and calculated extent, but the oroginal properties and crs

julia
        return GI.Feature(geometry; properties, crs, extent)
-    else

Return a new Feature with the new geometry, but the oroginal properties and crs

julia
        return GI.Feature(geometry; properties, crs)
+    if calc_extent isa _True

Calculate the extent of the geometry

julia
        extent = GI.extent(geometry)

Return a new Feature with the new geometry and calculated extent, but the original properties and crs

julia
        return GI.Feature(geometry; properties, crs, extent)
+    else

Return a new Feature with the new geometry, but the original properties and crs

julia
        return GI.Feature(geometry; properties, crs)
     end
 end

Reconstruct nested geometries, maybe using threads to call _apply on component geoms

julia
@inline function _apply(f::F, target, trait, geom;
     crs=GI.crs(geom), calc_extent=_False(), threaded
@@ -121,9 +121,9 @@
     geoms = _maptasks(apply_to_geom, 1:GI.ngeom(geom), threaded)
     return _apply_inner(geom, geoms, crs, calc_extent)
 end
-function _apply_inner(geom, geoms, crs, calc_extent::_True)

Calculate the extent of the sub geometries

julia
    extent = mapreduce(GI.extent, Extents.union, geoms)

Return a new geometry of the same trait as geom, holding tnew geoms with crs and calcualted extent

julia
    return rebuild(geom, geoms; crs, extent)
+function _apply_inner(geom, geoms, crs, calc_extent::_True)

Calculate the extent of the sub geometries

julia
    extent = mapreduce(GI.extent, Extents.union, geoms)

Return a new geometry of the same trait as geom, holding the new geoms with crs and calculated extent

julia
    return rebuild(geom, geoms; crs, extent)
 end
-function _apply_inner(geom, geoms, crs, calc_extent::_False)

Return a new geometryof the same trait as geom, holding the new geoms with crs

julia
    return rebuild(geom, geoms; crs)
+function _apply_inner(geom, geoms, crs, calc_extent::_False)

Return a new geometry of the same trait as geom, holding the new geoms with crs

julia
    return rebuild(geom, geoms; crs)
 end

Fail loudly if we hit PointTrait without running f (after PointTrait there is no further to dig with _apply) @inline _apply(f, ::TraitTarget{Target}, trait::GI.PointTrait, geom; crs=nothing, kw...) where Target = throw(ArgumentError("target Target not found, but reached a PointTrait leaf")) Finally, these short methods are the main purpose of apply. The Trait is a subtype of the Target (or identical to it) So the Target is found. We apply f to geom and return it to previous _apply calls to be wrapped with the outer geometries/feature/featurecollection/array.

julia
_apply(f::F, ::TraitTarget{Target}, ::Trait, geom; crs=GI.crs(geom), kw...) where {F,Target,Trait<:Target} = f(geom)

Define some specific cases of this match to avoid method ambiguity

julia
for T in (
     GI.PointTrait, GI.LinearRing, GI.LineString,
     GI.MultiPoint, GI.FeatureTrait, GI.FeatureCollectionTrait
@@ -150,7 +150,7 @@
 end
 
 @inline _applyreduce(f::F, op::O, target, geom; threaded, init) where {F, O} =
-    _applyreduce(f, op, target, GI.trait(geom), geom; threaded, init)

Maybe use threads recucing over arrays

julia
@inline function _applyreduce(f::F, op::O, target, ::Nothing, A::AbstractArray; threaded, init) where {F, O}
+    _applyreduce(f, op, target, GI.trait(geom), geom; threaded, init)

Maybe use threads reducing over arrays

julia
@inline function _applyreduce(f::F, op::O, target, ::Nothing, A::AbstractArray; threaded, init) where {F, O}
     applyreduce_array(i) = _applyreduce(f, op, target, A[i]; threaded=_False(), init)
     _mapreducetasks(applyreduce_array, op, eachindex(A), threaded; init)
 end

Try to applyreduce over iterables

julia
@inline function _applyreduce(f::F, op::O, target, ::Nothing, iterable::IterableType; threaded, init) where {F, O, IterableType}
@@ -247,7 +247,7 @@
 
 All objects in `components` must have the same `GeoInterface.trait`.
 
-Ususally used in combination with `flatten`.
+Usually used in combination with `flatten`.
 """
 function reconstruct(geom, components)
     obj, iter = _reconstruct(geom, components)
@@ -307,14 +307,14 @@
     end
 end
 
-using Base.Threads: nthreads, @threads, @spawn

Threading utility, modified Mason Protters threading PSA run f over ntasks, where f recieves an AbstractArray/range of linear indices

julia
@inline function _maptasks(f::F, taskrange, threaded::_True)::Vector where F
+using Base.Threads: nthreads, @threads, @spawn

Threading utility, modified Mason Protters threading PSA run f over ntasks, where f receives an AbstractArray/range of linear indices

julia
@inline function _maptasks(f::F, taskrange, threaded::_True)::Vector where F
     ntasks = length(taskrange)

Customize this as needed. More tasks have more overhead, but better load balancing

julia
    tasks_per_thread = 2
     chunk_size = max(1, ntasks ÷ (tasks_per_thread * nthreads()))

partition the range into chunks

julia
    task_chunks = Iterators.partition(taskrange, chunk_size)

Map over the chunks

julia
    tasks = map(task_chunks) do chunk

Spawn a task to process this chunk

julia
        @spawn begin

Where we map f over the chunk indices

julia
            map(f, chunk)
         end
     end

Finally we join the results into a new vector

julia
    return mapreduce(fetch, vcat, tasks)
 end

Here we use the compiler directive @assume_effects :foldable to force the compiler to lookup through the closure. This alone makes e.g. flip 2.5x faster!

julia
Base.@assume_effects :foldable @inline function _maptasks(f::F, taskrange, threaded::_False)::Vector where F
     map(f, taskrange)
-end

Threading utility, modified Mason Protters threading PSA run f over ntasks, where f recieves an AbstractArray/range of linear indices

WARNING: this will not work for mean/median - only ops where grouping is possible

julia
@inline function _mapreducetasks(f::F, op, taskrange, threaded::_True; init) where F
+end

Threading utility, modified Mason Protters threading PSA run f over ntasks, where f receives an AbstractArray/range of linear indices

WARNING: this will not work for mean/median - only ops where grouping is possible

julia
@inline function _mapreducetasks(f::F, op, taskrange, threaded::_True; init) where F
     ntasks = length(taskrange)

Customize this as needed. More tasks have more overhead, but better load balancing

julia
    tasks_per_thread = 2
     chunk_size = max(1, ntasks ÷ (tasks_per_thread * nthreads()))

partition the range into chunks

julia
    task_chunks = Iterators.partition(taskrange, chunk_size)

Map over the chunks

julia
    tasks = map(task_chunks) do chunk

Spawn a task to process this chunk

julia
        @spawn begin

Where we map f over the chunk indices

julia
            mapreduce(f, op, chunk; init)
         end
@@ -323,7 +323,7 @@
 Base.@assume_effects :foldable function _mapreducetasks(f::F, op, taskrange, threaded::_False; init) where F
     mapreduce(f, op, taskrange; init)
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/correction/closed_ring.html b/dev/source/transformations/correction/closed_ring.html index 3a49d323e..aeb5ccc95 100644 --- a/dev/source/transformations/correction/closed_ring.html +++ b/dev/source/transformations/correction/closed_ring.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -48,7 +48,7 @@ else

Assemble the ring as a vector

julia
        tups = tuples.(GI.getpoint(ring))

Close the ring

julia
        push!(tups, tups[1])

Return an actual ring

julia
        return GI.LinearRing(tups)
     end
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/correction/geometry_correction.html b/dev/source/transformations/correction/geometry_correction.html index 143f559b9..78968f4bb 100644 --- a/dev/source/transformations/correction/geometry_correction.html +++ b/dev/source/transformations/correction/geometry_correction.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -49,7 +49,7 @@ end return final_geometry end

Available corrections

# GeometryOps.ClosedRingType.
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.DiffIntersectingPolygonsType.
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.GeometryCorrectionType.
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.UnionIntersectingPolygonsType.
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/dev/source/transformations/correction/intersecting_polygons.html b/dev/source/transformations/correction/intersecting_polygons.html index fe35bfd0c..65308de6b 100644 --- a/dev/source/transformations/correction/intersecting_polygons.html +++ b/dev/source/transformations/correction/intersecting_polygons.html @@ -8,17 +8,17 @@ - + - - - + + + -
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 requirment 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
+    
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, Vector{GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}[GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(0.0, 0.0), (3.0, 0.0), (3.0, 3.0), (0.0, 3.0), (0.0, 0.0)], nothing, nothing)], nothing, nothing), GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(0.0, 0.0), (3.0, 0.0), (3.0, 3.0), (0.0, 3.0), (0.0, 0.0)], nothing, nothing)], nothing, nothing)], nothing, nothing)

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, Vector{GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}[GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}([(0.0, 0.0), (3.0, 0.0), (3.0, 3.0), (0.0, 3.0), (0.0, 0.0)], nothing, nothing)], nothing, nothing)], nothing, nothing)

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

Implementation

julia
"""
@@ -115,7 +115,7 @@
     end
     return diff_multipoly
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/extent.html b/dev/source/transformations/extent.html index 1fb2f8b03..97602b9d9 100644 --- a/dev/source/transformations/extent.html +++ b/dev/source/transformations/extent.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -31,7 +31,7 @@ """ embed_extent(x; threaded=false, crs=nothing) = apply(identity, GI.PointTrait(), x; calc_extent=true, threaded, crs)

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/flip.html b/dev/source/transformations/flip.html index c8c8eb335..83012cd9c 100644 --- a/dev/source/transformations/flip.html +++ b/dev/source/transformations/flip.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -40,7 +40,7 @@ end end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/reproject.html b/dev/source/transformations/reproject.html index 43bb674cd..79027bc85 100644 --- a/dev/source/transformations/reproject.html +++ b/dev/source/transformations/reproject.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -35,12 +35,12 @@ # Arguments - `geometry`: Any GeoInterface.jl compatible geometries. -- `source_crs`: the source coordinate referece system, as a GeoFormatTypes.jl object or a string. -- `target_crs`: the target coordinate referece system, as a GeoFormatTypes.jl object or a string. +- `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 retreivable from the geometry with `GeoInterface.crs(geometry)`. +needed if it is not retrievable from the geometry with `GeoInterface.crs(geometry)`. # Keywords @@ -59,7 +59,7 @@ nothing end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/segmentize.html b/dev/source/transformations/segmentize.html index 568497021..d68c991c4 100644 --- a/dev/source/transformations/segmentize.html +++ b/dev/source/transformations/segmentize.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -39,7 +39,7 @@ f, a, p = poly(collect(GI.getpoint(linear)); label = "Linear", axis = (; aspect = DataAspect())) p2 = poly!(collect(GI.getpoint(geodesic)); label = "Geodesic") axislegend(a; position = :lt) -f

There are two methods available for segmentizing geometries at the moment:

Missing docstring.

Missing docstring for LinearSegments. Check Documenter's build log for details.

Missing docstring.

Missing docstring for GeodesicSegments. Check Documenter's build log for details.

Benchmark

We benchmark our method against LibGEOS's GEOSDensify method, which is a similar method for densifying geometries.

julia
using BenchmarkTools: BenchmarkGroup
+f

There are two methods available for segmentizing geometries at the moment:

Missing docstring.

Missing docstring for LinearSegments. Check Documenter's build log for details.

Missing docstring.

Missing docstring for GeodesicSegments. Check Documenter's build log for details.

Benchmark

We benchmark our method against LibGEOS's GEOSDensify method, which is a similar method for densifying geometries.

julia
using BenchmarkTools: BenchmarkGroup
 using Chairmarks: @be
 using Main: plot_trials
 using CairoMakie
@@ -77,7 +77,7 @@
 
 end
 
-plot_trials(segmentize_suite)

julia
abstract type SegmentizeMethod end
+plot_trials(segmentize_suite)

julia
abstract type SegmentizeMethod end
 """
     LinearSegments(; max_distance::Real)
 
@@ -172,7 +172,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/dev/source/transformations/simplify.html b/dev/source/transformations/simplify.html index 19ada1d9e..5de3354b5 100644 --- a/dev/source/transformations/simplify.html +++ b/dev/source/transformations/simplify.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -29,7 +29,7 @@ f, a, p = poly(original; label = "Original") poly!(simple; label = "Simplified") axislegend(a) -f

Benchmark

We benchmark these methods against LibGEOS's simplify implementation, which uses the Douglas-Peucker algorithm.

julia
using BenchmarkTools, Chairmarks, GeoJSON, CairoMakie
+f

Benchmark

We benchmark these methods against LibGEOS's simplify implementation, which uses the Douglas-Peucker algorithm.

julia
using BenchmarkTools, Chairmarks, GeoJSON, CairoMakie
 import GeometryOps as GO, LibGEOS as LG, GeoInterface as GI
 using CoordinateTransformations
 lg_and_go(geometry) = (GI.convert(LG, geometry), GO.tuples(geometry))
@@ -41,7 +41,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"))
@@ -55,7 +55,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)
@@ -74,7 +74,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
@@ -115,7 +115,7 @@
 
 `RadialDistance`, `DouglasPeucker`, or
 `VisvalingamWhyatt` algorithms are available,
-listed in order of increasing quality but decreaseing performance.
+listed in order of increasing quality but decreasing performance.
 
 `PoinTrait` and `MultiPointTrait` are returned unchanged.
 
@@ -166,7 +166,7 @@
  ) = _simplify(DouglasPeucker(; kw...), data; prefilter_alg, calc_extent, threaded, crs)
 
 
-#= For each algorithm, apply simplication to all curves, multipoints, and
+#= For each algorithm, apply simplification to all curves, multipoints, and
 points, reconstructing everything else around them. =#
 function _simplify(alg::Union{SimplifyAlg, GEOS}, data; prefilter_alg=nothing, kw...)
     simplifier(geom) = _simplify(GI.trait(geom), alg, geom; prefilter_alg)
@@ -208,7 +208,7 @@
 $SIMPLIFY_ALG_KEYWORDS
 - `tol`: the minimum distance between points.
 
-Note: user input `tol` is squared to avoid uneccesary computation in algorithm.
+Note: user input `tol` is squared to avoid unnecessary computation in algorithm.
 """
 @kwdef struct RadialDistance <: SimplifyAlg
     number::Union{Int64,Nothing} = nothing
@@ -241,7 +241,7 @@
 distance from the line between its neighboring points.
 
 $DOUGLAS_PEUCKER_KEYWORDS
-Note: user input `tol` is squared to avoid uneccesary computation in algorithm.
+Note: user input `tol` is squared to avoid unnecessary computation in algorithm.
 """
 @kwdef struct DouglasPeucker <: SimplifyAlg
     number::Union{Int64,Nothing} = nothing
@@ -258,7 +258,7 @@
 (https://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm). =#
 function _simplify(alg::DouglasPeucker, points::Vector, preserve_endpoint)
     npoints = length(points)
-    npoints <= MIN_POINTS && return points

Determine stopping critetia

julia
    max_points = if !isnothing(alg.tol)
+    npoints <= MIN_POINTS && return points

Determine stopping criteria

julia
    max_points = if !isnothing(alg.tol)
         npoints
     else
         npts = !isnothing(alg.number) ? alg.number : max(3, round(Int, alg.ratio * npoints))
@@ -324,7 +324,7 @@
 end
 
 #= find maximum distance of any point between the start_idx and end_idx to the line formed
-by conencting the points at start_idx and end_idx. Note that the first index of maximum
+by connecting the points at start_idx and end_idx. Note that the first index of maximum
 value will be used, which might cause differences in results from other algorithms.=#
 function _find_max_squared_dist(points, start_idx, end_idx)
     max_idx = start_idx
@@ -348,7 +348,7 @@
 $SIMPLIFY_ALG_KEYWORDS
 - `tol`: the minimum area of a triangle made with a point and
     its neighboring points.
-Note: user input `tol` is doubled to avoid uneccesary computation in algorithm.
+Note: user input `tol` is doubled to avoid unnecessary computation in algorithm.
 """
 @kwdef struct VisvalingamWhyatt <: SimplifyAlg
     number::Union{Int,Nothing} = nothing
@@ -507,7 +507,7 @@
     end
     return nothing
 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/transform.html b/dev/source/transformations/transform.html index 5243162b9..c83255441 100644 --- a/dev/source/transformations/transform.html +++ b/dev/source/transformations/transform.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -49,7 +49,7 @@ rraysCore.SVector{2, Float64}[[6.5, 5.5], [8.5, 7.5], [9.5, 8.5], [6.5, 5.5]], nothing, nothing)], nothing, nothing) ``` -With Rotations.jl you need to actuall multiply the Rotation +With Rotations.jl you need to actually multiply the Rotation by the `SVector` point, which is easy using an anonymous function. ```julia @@ -73,7 +73,7 @@ end end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/transformations/tuples.html b/dev/source/transformations/tuples.html index 80bbd788c..d51fcf35a 100644 --- a/dev/source/transformations/tuples.html +++ b/dev/source/transformations/tuples.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -37,7 +37,7 @@ end end end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/source/types.html b/dev/source/types.html index 5e9f9d637..35baed4e9 100644 --- a/dev/source/types.html +++ b/dev/source/types.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -85,7 +85,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/dev/source/utils.html b/dev/source/utils.html index d315e1eba..2c0460b99 100644 --- a/dev/source/utils.html +++ b/dev/source/utils.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -138,7 +138,7 @@ (x1, x2), (y1, y2) = extent.X, extent.Y return x1 ≤ GI.x(p) ≤ x2 && y1 ≤ GI.y(p) ≤ y2 end

This page was generated using Literate.jl.

- + \ No newline at end of file diff --git a/dev/tutorials/creating_geometry.html b/dev/tutorials/creating_geometry.html index 09c3ba1ab..eb245e6d5 100644 --- a/dev/tutorials/creating_geometry.html +++ b/dev/tutorials/creating_geometry.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -28,37 +28,37 @@ import Proj # Plotting using CairoMakie -using GeoMakie

Creating and plotting geometries

Let's start by making a single Point.

julia
point = GI.Point(0, 0)
GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}((0, 0), nothing)

Now, let's plot our point.

julia
fig, ax, plt = plot(point)

Let's create a set of points, and have a bit more fun with plotting.

julia
x = [-5, 0, 5, 0];
+using GeoMakie

Creating and plotting geometries

Let's start by making a single Point.

julia
point = GI.Point(0, 0)
GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}((0, 0), nothing)

Now, let's plot our point.

julia
fig, ax, plt = plot(point)

Let's create a set of points, and have a bit more fun with plotting.

julia
x = [-5, 0, 5, 0];
 y = [0, -5, 0, 5];
 points = GI.Point.(zip(x,y));
 plot!(ax, points; marker = '✈', markersize = 30)
-fig

Points can be combined into a single MultiPoint geometry.

julia
x = [-5, -5, 5, 5];
+fig

Points can be combined into a single MultiPoint geometry.

julia
x = [-5, -5, 5, 5];
 y = [-5, 5, 5, -5];
 multipoint = GI.MultiPoint(GI.Point.(zip(x, y)));
 plot!(ax, multipoint; marker = '☁', markersize = 30)
-fig

Let's create a LineString connecting two points.

julia
p1 = GI.Point.(-5, 0);
+fig

Let's create a LineString connecting two points.

julia
p1 = GI.Point.(-5, 0);
 p2 = GI.Point.(5, 0);
 line = GI.LineString([p1,p2])
 plot!(ax, line; color = :red)
-fig

Now, let's create a line connecting multiple points (i.e. a LineString). This time we get a bit more fancy with point creation.

julia
r = 2;
+fig

Now, let's create a line connecting multiple points (i.e. a LineString). This time we get a bit more fancy with point creation.

julia
r = 2;
 k = 10;
 ϴ = 0:0.01:2pi;
 x = r .* (k + 1) .* cos.(ϴ) .- r .* cos.((k + 1) .* ϴ);
 y = r .* (k + 1) .* sin.(ϴ) .- r .* sin.((k + 1) .* ϴ);
 lines = GI.LineString(GI.Point.(zip(x,y)));
 plot!(ax, lines; linewidth = 5)
-fig

We can also create a single LinearRing trait, the building block of a polygon. A LinearRing is simply a LineString with the same beginning and endpoint, i.e., an arbitrary closed shape composed of point pairs.

A LinearRing is composed of a series of points.

julia
ring1 = GI.LinearRing(GI.getpoint(lines));
GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}[GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.0, 0.0), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.010987813253244, 0.0004397316773170068), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.043805248003498, 0.0035114210915891397), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.098016055420953, 0.011814947665167774), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.172899020101585, 0.027886421973952302), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.267456684570245, 0.05416726609360478), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.380427415579764, 0.09297443860091348), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.51030066635026, 0.1464721641710074), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.655335250260467, 0.21664550952386064), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.813580405100698, 0.30527612515520186), nothing)  …  GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.866418416586406, -0.3376428491230612), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.704405820024185, -0.24279488312757858), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.55494217175954, -0.16692537029320365), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.420040147662014, -0.10832215707812454), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.30151010318639, -0.0650624499034016), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.200938172182195, -0.03503632062070827), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.119667078681967, -0.01597247419241532), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.058779893613323, -0.005465967083412071), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.019086932781654, -0.0010075412835199304), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.001115954499138, -1.4219350464667047e-5), nothing)], nothing, nothing)

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

julia
polygon1 = GI.Polygon([ring1]);
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}[GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.0, 0.0), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.010987813253244, 0.0004397316773170068), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.043805248003498, 0.0035114210915891397), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.098016055420953, 0.011814947665167774), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.172899020101585, 0.027886421973952302), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.267456684570245, 0.05416726609360478), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.380427415579764, 0.09297443860091348), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.51030066635026, 0.1464721641710074), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.655335250260467, 0.21664550952386064), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.813580405100698, 0.30527612515520186), nothing)  …  GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.866418416586406, -0.3376428491230612), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.704405820024185, -0.24279488312757858), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.55494217175954, -0.16692537029320365), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.420040147662014, -0.10832215707812454), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.30151010318639, -0.0650624499034016), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.200938172182195, -0.03503632062070827), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.119667078681967, -0.01597247419241532), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.058779893613323, -0.005465967083412071), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.019086932781654, -0.0010075412835199304), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.001115954499138, -1.4219350464667047e-5), nothing)], nothing, nothing)], nothing, nothing)

Now, we can use GeometryOps and CoordinateTransformations to shift polygon1 up, to avoid plotting over our earlier results. This is done through the GeometryOps.transform function.

julia
xoffset = 0.;
+fig

We can also create a single LinearRing trait, the building block of a polygon. A LinearRing is simply a LineString with the same beginning and endpoint, i.e., an arbitrary closed shape composed of point pairs.

A LinearRing is composed of a series of points.

julia
ring1 = GI.LinearRing(GI.getpoint(lines));
GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}[GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.0, 0.0), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.010987813253244, 0.0004397316773170068), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.043805248003498, 0.0035114210915891397), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.098016055420953, 0.011814947665167774), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.172899020101585, 0.027886421973952302), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.267456684570245, 0.05416726609360478), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.380427415579764, 0.09297443860091348), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.51030066635026, 0.1464721641710074), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.655335250260467, 0.21664550952386064), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.813580405100698, 0.30527612515520186), nothing)  …  GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.866418416586406, -0.3376428491230612), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.704405820024185, -0.24279488312757858), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.55494217175954, -0.16692537029320365), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.420040147662014, -0.10832215707812454), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.30151010318639, -0.0650624499034016), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.200938172182195, -0.03503632062070827), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.119667078681967, -0.01597247419241532), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.058779893613323, -0.005465967083412071), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.019086932781654, -0.0010075412835199304), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.001115954499138, -1.4219350464667047e-5), nothing)], nothing, nothing)

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

julia
polygon1 = GI.Polygon([ring1]);
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}[GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.0, 0.0), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.010987813253244, 0.0004397316773170068), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.043805248003498, 0.0035114210915891397), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.098016055420953, 0.011814947665167774), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.172899020101585, 0.027886421973952302), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.267456684570245, 0.05416726609360478), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.380427415579764, 0.09297443860091348), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.51030066635026, 0.1464721641710074), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.655335250260467, 0.21664550952386064), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.813580405100698, 0.30527612515520186), nothing)  …  GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.866418416586406, -0.3376428491230612), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.704405820024185, -0.24279488312757858), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.55494217175954, -0.16692537029320365), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.420040147662014, -0.10832215707812454), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.30151010318639, -0.0650624499034016), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.200938172182195, -0.03503632062070827), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.119667078681967, -0.01597247419241532), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.058779893613323, -0.005465967083412071), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.019086932781654, -0.0010075412835199304), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.001115954499138, -1.4219350464667047e-5), nothing)], nothing, nothing)], nothing, nothing)

Now, we can use GeometryOps and CoordinateTransformations to shift polygon1 up, to avoid plotting over our earlier results. This is done through the GeometryOps.transform function.

julia
xoffset = 0.;
 yoffset = 50.;
 f = CoordinateTransformations.Translation(xoffset, yoffset);
 polygon1 = GO.transform(f, polygon1);
 plot!(polygon1)
-fig

Polygons can contain "holes". The first LinearRing in a polygon is the exterior, and all subsequent LinearRings are treated as holes in the leading LinearRing.

GeoInterface offers the GI.getexterior(poly) and GI.gethole(poly) methods to get the exterior ring and an iterable of holes, respectively.

julia
hole = GI.LinearRing(GI.getpoint(multipoint))
+fig

Polygons can contain "holes". The first LinearRing in a polygon is the exterior, and all subsequent LinearRings are treated as holes in the leading LinearRing.

GeoInterface offers the GI.getexterior(poly) and GI.gethole(poly) methods to get the exterior ring and an iterable of holes, respectively.

julia
hole = GI.LinearRing(GI.getpoint(multipoint))
 polygon2 = GI.Polygon([ring1, hole])
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, T, Nothing, Nothing} where T}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, T, Nothing, Nothing} where T[GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}[GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.0, 0.0), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.010987813253244, 0.0004397316773170068), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.043805248003498, 0.0035114210915891397), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.098016055420953, 0.011814947665167774), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.172899020101585, 0.027886421973952302), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.267456684570245, 0.05416726609360478), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.380427415579764, 0.09297443860091348), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.51030066635026, 0.1464721641710074), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.655335250260467, 0.21664550952386064), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.813580405100698, 0.30527612515520186), nothing)  …  GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.866418416586406, -0.3376428491230612), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.704405820024185, -0.24279488312757858), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.55494217175954, -0.16692537029320365), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.420040147662014, -0.10832215707812454), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.30151010318639, -0.0650624499034016), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.200938172182195, -0.03503632062070827), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.119667078681967, -0.01597247419241532), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.058779893613323, -0.005465967083412071), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.019086932781654, -0.0010075412835199304), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Float64, Float64}, Nothing}((20.001115954499138, -1.4219350464667047e-5), nothing)], nothing, nothing), GeoInterface.Wrappers.LinearRing{false, false, Vector{GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}[GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}((-5, -5), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}((-5, 5), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}((5, 5), nothing), GeoInterface.Wrappers.Point{false, false, Tuple{Int64, Int64}, Nothing}((5, -5), nothing)], nothing, nothing)], nothing, nothing)

Shift polygon2 to the right, to avoid plotting over our earlier results.

julia
xoffset = 50.;
 yoffset = 0.;
 f = CoordinateTransformations.Translation(xoffset, yoffset);
 polygon2 = GO.transform(f, polygon2);
 plot!(polygon2)
-fig

Polygons can also be grouped together as a MultiPolygon.

julia
r = 5;
+fig

Polygons can also be grouped together as a MultiPolygon.

julia
r = 5;
 x = cos.(reverse(ϴ)) .* r .+ xoffset;
 y = sin.(reverse(ϴ)) .* r .+ yoffset;
 ring2 =  GI.LinearRing(GI.Point.(zip(x,y)));
@@ -68,7 +68,7 @@
 f = CoordinateTransformations.Translation(xoffset, yoffset);
 multipolygon = GO.transform(f, multipolygon);
 plot!(multipolygon)
-fig

Great, now we can make Points, MultiPoints, Lines, LineStrings, Polygons (with holes), and MultiPolygons and modify them using [CoordinateTransformations] and [GeometryOps].

Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

In geospatial sciences we often have data in one Coordinate Reference System (CRS) (source) and would like to display it in different (destination) CRS. GeoMakie allows us to do this by automatically projecting from source to destination CRS.

Here, our source CRS is common geographic (i.e. coordinates of latitude and longitude), WGS84.

julia
source_crs1 = GFT.EPSG(4326)
GeoFormatTypes.EPSG{1}((4326,))

Now let's pick a destination CRS for displaying our map. Here we'll pick natearth2.

julia
destination_crs = "+proj=natearth2"
"+proj=natearth2"

Let's add land area for context. First, download and open the Natural Earth global land polygons at 110 m resolution.GeoMakie ships with this particular dataset, so we will access it from there.

julia
land_path = GeoMakie.assetpath("ne_110m_land.geojson")
"/home/runner/.julia/packages/GeoMakie/nOel0/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 destinaton CRS. For GeoMakie, source is the CRS of the input and dest is the CRS you want to visualize in.

julia
fig = Figure(size=(1000, 500));
+fig

Great, now we can make Points, MultiPoints, Lines, LineStrings, Polygons (with holes), and MultiPolygons and modify them using [CoordinateTransformations] and [GeometryOps].

Plot geometries on a map using GeoMakie and coordinate reference system (CRS)

In geospatial sciences we often have data in one Coordinate Reference System (CRS) (source) and would like to display it in different (destination) CRS. GeoMakie allows us to do this by automatically projecting from source to destination CRS.

Here, our source CRS is common geographic (i.e. coordinates of latitude and longitude), WGS84.

julia
source_crs1 = GFT.EPSG(4326)
GeoFormatTypes.EPSG{1}((4326,))

Now let's pick a destination CRS for displaying our map. Here we'll pick natearth2.

julia
destination_crs = "+proj=natearth2"
"+proj=natearth2"

Let's add land area for context. First, download and open the Natural Earth global land polygons at 110 m resolution.GeoMakie ships with this particular dataset, so we will access it from there.

julia
land_path = GeoMakie.assetpath("ne_110m_land.geojson")
"/home/runner/.julia/packages/GeoMakie/HExpB/assets/ne_110m_land.geojson"

Note

Natural Earth has lots of other datasets, and there is a Julia package that provides an interface to it called NaturalEarth.jl.

Read the land MultiPolygons as a GeoJSON.FeatureCollection.

julia
land_geo = GeoJSON.read(land_path)
FeatureCollection with 127 Features

We then need to create a figure with a GeoAxis that can handle the projection between source and destination CRS. For GeoMakie, source is the CRS of the input and dest is the CRS you want to visualize in.

julia
fig = Figure(size=(1000, 500));
 ga = GeoAxis(
     fig[1, 1];
     source = source_crs1,
@@ -76,8 +76,8 @@
     xticklabelsvisible = false,
     yticklabelsvisible = false,
 );

Plot land for context.

julia
poly!(ga, land_geo, color=:black)
-fig

Now let's plot a Polygon like before, but this time with a CRS that differs from our source data

julia
plot!(multipolygon; color = :green)
-fig

But what if we want to plot geometries with a different source CRS on the same figure?

To show how to do this let's create a geometry with coordinates in UTM (Universal Transverse Mercator) zone 10N EPSG:32610.

julia
source_crs2 = GFT.EPSG(32610)
GeoFormatTypes.EPSG{1}((32610,))

Create a polygon (we're working in meters now, not latitude and longitude)

julia
r = 1000000;
+fig

Now let's plot a Polygon like before, but this time with a CRS that differs from our source data

julia
plot!(multipolygon; color = :green)
+fig

But what if we want to plot geometries with a different source CRS on the same figure?

To show how to do this let's create a geometry with coordinates in UTM (Universal Transverse Mercator) zone 10N EPSG:32610.

julia
source_crs2 = GFT.EPSG(32610)
GeoFormatTypes.EPSG{1}((32610,))

Create a polygon (we're working in meters now, not latitude and longitude)

julia
r = 1000000;
 ϴ = 0:0.01:2pi;
 x = r .* cos.(ϴ).^3 .+ 500000;
 y = r .* sin.(ϴ) .^ 3 .+5000000;
629-element Vector{Float64}:
@@ -87,12 +87,12 @@
 
  5.0e6
  5.0e6

Now create a LinearRing from Points

julia
ring3 = GI.LinearRing(Point.(zip(x, y)))
GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}(Point{2, Float64}[[1.5e6, 5.0e6], [1.4998500087497458e6, 5.000000999950001e6], [1.4994001399837343e6, 5.000007998400139e6], [1.4986507085647392e6, 5.000026987852369e6], [1.4976022389592e6, 5.000063948817746e6], [1.4962554647802354e6, 5.000124843834609e6], [1.4946113281484335e6, 5.000215611503127e6], [1.4926709788709967e6, 5.000342160541625e6], [1.4904357734399722e6, 5.000510363870095e6], [1.4879072738504685e6, 5.0007260527263e6]  …  [1.4870405593989636e6, 4.999194331880103e6], [1.4896621210021754e6, 4.999426363321033e6], [1.491990928929295e6, 4.999609061508909e6], [1.4940253560034204e6, 4.999748243174828e6], [1.4957639801366436e6, 4.999849768598615e6], [1.497205585568957e6, 4.999919535736425e6], [1.4983491639274692e6, 4.999963474314044e6], [1.4991939151049731e6, 4.999987539891298e6], [1.4997392479570867e6, 4.999997707902938e6], [1.499984780817334e6, 4.999999967681458e6]], nothing, nothing)

Now create a Polygon from the LineRing

julia
polygon3 = GI.Polygon([ring3])
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}}, Nothing, Nothing}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}(Point{2, Float64}[[1.5e6, 5.0e6], [1.4998500087497458e6, 5.000000999950001e6], [1.4994001399837343e6, 5.000007998400139e6], [1.4986507085647392e6, 5.000026987852369e6], [1.4976022389592e6, 5.000063948817746e6], [1.4962554647802354e6, 5.000124843834609e6], [1.4946113281484335e6, 5.000215611503127e6], [1.4926709788709967e6, 5.000342160541625e6], [1.4904357734399722e6, 5.000510363870095e6], [1.4879072738504685e6, 5.0007260527263e6]  …  [1.4870405593989636e6, 4.999194331880103e6], [1.4896621210021754e6, 4.999426363321033e6], [1.491990928929295e6, 4.999609061508909e6], [1.4940253560034204e6, 4.999748243174828e6], [1.4957639801366436e6, 4.999849768598615e6], [1.497205585568957e6, 4.999919535736425e6], [1.4983491639274692e6, 4.999963474314044e6], [1.4991939151049731e6, 4.999987539891298e6], [1.4997392479570867e6, 4.999997707902938e6], [1.499984780817334e6, 4.999999967681458e6]], nothing, nothing)], nothing, nothing)

Now plot on the existing GeoAxis.

Note

The keyword argument source is used to specify the source CRS of that particular plot, when plotting on an existing GeoAxis.

julia
plot!(ga,polygon3; color=:red, source = source_crs2)
-fig

Create geospatial geometries with embedded coordinate reference system information

Great, we can make geometries and plot them on a map... now let's export the data to common geospatial data formats. To do this we now need to create geometries with embedded CRS information, making it a geospatial geometry. All that's needed is to include ; crs = crs as a keyword argument when constructing the geometry.

Let's do this for a new Polygon

julia
r = 3;
+fig

Create geospatial geometries with embedded coordinate reference system information

Great, we can make geometries and plot them on a map... now let's export the data to common geospatial data formats. To do this we now need to create geometries with embedded CRS information, making it a geospatial geometry. All that's needed is to include ; crs = crs as a keyword argument when constructing the geometry.

Let's do this for a new Polygon

julia
r = 3;
 k = 7;
 ϴ = 0:0.01:2pi;
 x = r .* (k + 1) .* cos.(ϴ) .- r .* cos.((k + 1) .* ϴ);
 y = r .* (k + 1) .* sin.(ϴ) .- r .* sin.((k + 1) .* ϴ);
-ring4 = GI.LinearRing(Point.(zip(x, y)))
GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}(Point{2, Float64}[[21.0, 0.0], [21.00839489109211, 0.00025191811248184703], [21.033518309870985, 0.0020133807972559925], [21.075186885419612, 0.006784125578492062], [21.13309630561615, 0.016044338630866517], [21.206823267470536, 0.031245035570328428], [21.29582819010705, 0.053798628882221644], [21.39945867303846, 0.08506974233813636], [21.516953677609987, 0.12636633117296836], [21.64744840486518, 0.17893116483784577]  …  [21.69159119078359, -0.19823293781563178], [21.557153362189904, -0.14182952335952814], [21.43541888381864, -0.09707519809793252], [21.327284472232776, -0.06274967861547665], [21.233544778745394, -0.03756486776283019], [21.15488729606723, -0.020173244847778715], [21.091887951911644, -0.0091766360295773], [21.045007417743918, -0.0031353088009582475], [21.01458815628695, -0.0005773323690041465], [21.00085222666982, -8.14404531208901e-6]], nothing, nothing)

But this time when we create the Polygon we beed to specify the CRS at the time of creation, making it a geospatial polygon

julia
geopoly1 = GI.Polygon([ring4], crs = source_crs1)
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}}, Nothing, GeoFormatTypes.EPSG{1}}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}(Point{2, Float64}[[21.0, 0.0], [21.00839489109211, 0.00025191811248184703], [21.033518309870985, 0.0020133807972559925], [21.075186885419612, 0.006784125578492062], [21.13309630561615, 0.016044338630866517], [21.206823267470536, 0.031245035570328428], [21.29582819010705, 0.053798628882221644], [21.39945867303846, 0.08506974233813636], [21.516953677609987, 0.12636633117296836], [21.64744840486518, 0.17893116483784577]  …  [21.69159119078359, -0.19823293781563178], [21.557153362189904, -0.14182952335952814], [21.43541888381864, -0.09707519809793252], [21.327284472232776, -0.06274967861547665], [21.233544778745394, -0.03756486776283019], [21.15488729606723, -0.020173244847778715], [21.091887951911644, -0.0091766360295773], [21.045007417743918, -0.0031353088009582475], [21.01458815628695, -0.0005773323690041465], [21.00085222666982, -8.14404531208901e-6]], nothing, nothing)], nothing, GeoFormatTypes.EPSG{1}((4326,)))

Note

It is good practice to only include CRS information with the highest-level geometry. Not doing so can bloat the memory footprint of the geometry. CRS information can be included at the individual Point level but is discouraged.

And let's create second Polygon by shifting the first using CoordinateTransformations

julia
xoffset = 20.;
+ring4 = GI.LinearRing(Point.(zip(x, y)))
GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}(Point{2, Float64}[[21.0, 0.0], [21.00839489109211, 0.00025191811248184703], [21.033518309870985, 0.0020133807972559925], [21.075186885419612, 0.006784125578492062], [21.13309630561615, 0.016044338630866517], [21.206823267470536, 0.031245035570328428], [21.29582819010705, 0.053798628882221644], [21.39945867303846, 0.08506974233813636], [21.516953677609987, 0.12636633117296836], [21.64744840486518, 0.17893116483784577]  …  [21.69159119078359, -0.19823293781563178], [21.557153362189904, -0.14182952335952814], [21.43541888381864, -0.09707519809793252], [21.327284472232776, -0.06274967861547665], [21.233544778745394, -0.03756486776283019], [21.15488729606723, -0.020173244847778715], [21.091887951911644, -0.0091766360295773], [21.045007417743918, -0.0031353088009582475], [21.01458815628695, -0.0005773323690041465], [21.00085222666982, -8.14404531208901e-6]], nothing, nothing)

But this time when we create the Polygon we need to specify the CRS at the time of creation, making it a geospatial polygon

julia
geopoly1 = GI.Polygon([ring4], crs = source_crs1)
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}}, Nothing, GeoFormatTypes.EPSG{1}}(GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}[GeoInterface.Wrappers.LinearRing{false, false, Vector{Point{2, Float64}}, Nothing, Nothing}(Point{2, Float64}[[21.0, 0.0], [21.00839489109211, 0.00025191811248184703], [21.033518309870985, 0.0020133807972559925], [21.075186885419612, 0.006784125578492062], [21.13309630561615, 0.016044338630866517], [21.206823267470536, 0.031245035570328428], [21.29582819010705, 0.053798628882221644], [21.39945867303846, 0.08506974233813636], [21.516953677609987, 0.12636633117296836], [21.64744840486518, 0.17893116483784577]  …  [21.69159119078359, -0.19823293781563178], [21.557153362189904, -0.14182952335952814], [21.43541888381864, -0.09707519809793252], [21.327284472232776, -0.06274967861547665], [21.233544778745394, -0.03756486776283019], [21.15488729606723, -0.020173244847778715], [21.091887951911644, -0.0091766360295773], [21.045007417743918, -0.0031353088009582475], [21.01458815628695, -0.0005773323690041465], [21.00085222666982, -8.14404531208901e-6]], nothing, nothing)], nothing, GeoFormatTypes.EPSG{1}((4326,)))

Note

It is good practice to only include CRS information with the highest-level geometry. Not doing so can bloat the memory footprint of the geometry. CRS information can be included at the individual Point level but is discouraged.

And let's create second Polygon by shifting the first using CoordinateTransformations

julia
xoffset = 20.;
 yoffset = -25.;
 f = CoordinateTransformations.Translation(xoffset, yoffset);
 geopoly2 = GO.transform(f, geopoly1);
GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Float64}}, Nothing, GeoFormatTypes.EPSG{1}}}, Nothing, GeoFormatTypes.EPSG{1}}(GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Float64}}, Nothing, GeoFormatTypes.EPSG{1}}[GeoInterface.Wrappers.LinearRing{false, false, Vector{StaticArraysCore.SVector{2, Float64}}, Nothing, GeoFormatTypes.EPSG{1}}(StaticArraysCore.SVector{2, Float64}[[41.0, -25.0], [41.00839489109211, -24.999748081887518], [41.033518309870985, -24.997986619202745], [41.07518688541961, -24.99321587442151], [41.13309630561615, -24.983955661369134], [41.20682326747054, -24.96875496442967], [41.295828190107045, -24.946201371117777], [41.39945867303846, -24.914930257661865], [41.51695367760999, -24.873633668827033], [41.64744840486518, -24.821068835162155]  …  [41.69159119078359, -25.198232937815632], [41.55715336218991, -25.14182952335953], [41.43541888381864, -25.097075198097933], [41.327284472232776, -25.062749678615475], [41.2335447787454, -25.037564867762832], [41.15488729606723, -25.02017324484778], [41.091887951911644, -25.009176636029576], [41.04500741774392, -25.003135308800957], [41.01458815628695, -25.000577332369005], [41.00085222666982, -25.000008144045314]], nothing, GeoFormatTypes.EPSG{1}((4326,)))], nothing, GeoFormatTypes.EPSG{1}((4326,)))

Creating a table with attributes and geometry

Typically, you'll also want to include attributes with your geometries. Attributes are simply data that are attributed to each geometry. The easiest way to do this is to create a table with a :geometry column. Let's do this using DataFrames.

julia
using DataFrames
@@ -107,7 +107,7 @@
 GeoParquet.write(fn, df, (:geometry,))
"shapes.parquet"

Finally, if there's no Julia-native package that can write data to your desired format (e.g. .gpkg, .gml, etc), you can use GeoDataFrames. This package uses the GDAL library under the hood which supports writing to nearly all geospatial formats.

julia
import GeoDataFrames
 fn = "shapes.gpkg"
 GeoDataFrames.write(fn, df)
"shapes.gpkg"

And there we go, you can now create mapped geometries from scratch, manipulate them, plot them on a map, and save them in multiple geospatial data formats.

- + \ No newline at end of file diff --git a/dev/tutorials/spatial_joins.html b/dev/tutorials/spatial_joins.html index 84ab9e4a2..94f24547c 100644 --- a/dev/tutorials/spatial_joins.html +++ b/dev/tutorials/spatial_joins.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -28,14 +28,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
@@ -60,7 +60,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