import datetime
import unittest
from decimal import Decimal
from pathlib import Path

import factory
import pytest
from django.contrib.gis.geos import GEOSGeometry
from django.core.management import call_command
from django.utils import timezone
from pytest_factoryboy import register

from leasing.enums import (
    AreaType,
    ContactType,
    IndexType,
    InvoiceState,
    InvoiceType,
    LandUseContractType,
    RentAdjustmentType,
    RentCycle,
    RentType,
    TenantContactType,
)
from leasing.models import (
    Area,
    AreaSource,
    Condition,
    Contract,
    ContractRent,
    DecisionMaker,
    District,
    FixedInitialYearRent,
    Invoice,
    LeaseBasisOfRent,
    LeaseType,
    Municipality,
    NoticePeriod,
    Plot,
    RelatedLease,
    Rent,
    RentAdjustment,
    UiData,
)
from leasing.models.invoice import (
    InvoiceNote,
    InvoicePayment,
    InvoiceRow,
    InvoiceSet,
    ReceivableType,
)
from leasing.models.land_use_agreement import (
    LandUseAgreement,
    LandUseAgreementAddress,
    LandUseAgreementCompensations,
    LandUseAgreementCompensationsUnitPrice,
    LandUseAgreementCondition,
    LandUseAgreementConditionFormOfManagement,
    LandUseAgreementDecision,
    LandUseAgreementDefinition,
    LandUseAgreementIdentifier,
    LandUseAgreementInvoice,
    LandUseAgreementInvoiceRow,
    LandUseAgreementInvoiceSet,
    LandUseAgreementLitigant,
    LandUseAgreementLitigantContact,
    LandUseAgreementReceivableType,
    LandUseAgreementStatus,
    LandUseAgreementType,
)
from leasing.models.tenant import TenantRentShare


@pytest.fixture
def assert_count_equal():
    def do_test(a, b):
        tc = unittest.TestCase()
        tc.assertCountEqual(a, b)

    return do_test


@pytest.fixture(scope="session")
def django_db_setup(django_db_setup, django_db_blocker):
    """Loads all the database fixtures in the leasing/fixtures folder"""
    fixture_path = Path(__file__).parents[1] / "fixtures"
    fixture_filenames = [path for path in fixture_path.glob("*") if not path.is_dir()]

    with django_db_blocker.unblock():
        call_command("loaddata", *fixture_filenames)


@register
class AreaFactory(factory.DjangoModelFactory):
    class Meta:
        model = Area


@register
class AreaSourceFactory(factory.DjangoModelFactory):
    class Meta:
        model = AreaSource


@register
class PlotFactory(factory.DjangoModelFactory):
    class Meta:
        model = Plot


@register
class RelatedLeaseFactory(factory.DjangoModelFactory):
    class Meta:
        model = RelatedLease


@register
class TenantRentShareFactory(factory.DjangoModelFactory):
    class Meta:
        model = TenantRentShare


@register
class LeaseTypeFactory(factory.DjangoModelFactory):
    class Meta:
        model = LeaseType


@register
class MunicipalityFactory(factory.DjangoModelFactory):
    class Meta:
        model = Municipality


@register
class DistrictFactory(factory.DjangoModelFactory):
    class Meta:
        model = District


@register
class NoticePeriodFactory(factory.DjangoModelFactory):
    class Meta:
        model = NoticePeriod


@register
class RentFactory(factory.DjangoModelFactory):
    type = RentType.INDEX
    cycle = RentCycle.JANUARY_TO_DECEMBER
    index_type = IndexType.TYPE_7

    class Meta:
        model = Rent


@register
class ContractRentFactory(factory.DjangoModelFactory):
    class Meta:
        model = ContractRent


@register
class RentAdjustmentFactory(factory.DjangoModelFactory):
    type = RentAdjustmentType.DISCOUNT

    class Meta:
        model = RentAdjustment


@register
class FixedInitialYearRentFactory(factory.DjangoModelFactory):
    class Meta:
        model = FixedInitialYearRent


@register
class InvoiceFactory(factory.DjangoModelFactory):
    state = InvoiceState.OPEN
    due_date = timezone.now().date()
    type = InvoiceType.CHARGE

    class Meta:
        model = Invoice


@register
class InvoiceNoteFactory(factory.DjangoModelFactory):
    class Meta:
        model = InvoiceNote


@register
class InvoiceRowFactory(factory.DjangoModelFactory):
    class Meta:
        model = InvoiceRow


@register
class InvoiceSetFactory(factory.DjangoModelFactory):
    class Meta:
        model = InvoiceSet


@register
class InvoicePaymentFactory(factory.DjangoModelFactory):
    class Meta:
        model = InvoicePayment


@register
class ConditionFactory(factory.DjangoModelFactory):
    class Meta:
        model = Condition


@register
class UiDataFactory(factory.DjangoModelFactory):
    class Meta:
        model = UiData


@register
class LeaseBasisOfRentFactory(factory.DjangoModelFactory):
    class Meta:
        model = LeaseBasisOfRent


@register
class LandUseAgreementFactory(factory.DjangoModelFactory):
    class Meta:
        model = LandUseAgreement


@register
class LandUseAgreementTypeFactory(factory.DjangoModelFactory):
    class Meta:
        model = LandUseAgreementType


@register
class LandUseAgreementStatusFactory(factory.DjangoModelFactory):
    class Meta:
        model = LandUseAgreementStatus


@register
class LandUseAgreementDefinitionFactory(factory.DjangoModelFactory):
    class Meta:
        model = LandUseAgreementDefinition


@register
class LandUseAgreementIdentifierFactory(factory.DjangoModelFactory):
    class Meta:
        model = LandUseAgreementIdentifier


@register
class LandUseAgreementAddressFactory(factory.DjangoModelFactory):
    class Meta:
        model = LandUseAgreementAddress


@register
class LandUseAgreementDecisionFactory(factory.DjangoModelFactory):
    class Meta:
        model = LandUseAgreementDecision


@register
class LandUseAgreementLitigantFactory(factory.DjangoModelFactory):
    class Meta:
        model = LandUseAgreementLitigant


@register
class LandUseAgreementLitigantContactFactory(factory.DjangoModelFactory):
    class Meta:
        model = LandUseAgreementLitigantContact


@register
class LandUseAgreementCompensationsFactory(factory.DjangoModelFactory):
    class Meta:
        model = LandUseAgreementCompensations


@register
class LandUseAgreementCompensationsUnitPriceFactory(factory.DjangoModelFactory):
    class Meta:
        model = LandUseAgreementCompensationsUnitPrice


@register
class LandUseAgreementConditionFactory(factory.DjangoModelFactory):
    class Meta:
        model = LandUseAgreementCondition


@register
class LandUseAgreementConditionFormOfManagementFactory(factory.DjangoModelFactory):
    class Meta:
        model = LandUseAgreementConditionFormOfManagement


@register
class LandUseAgreementInvoiceFactory(factory.DjangoModelFactory):
    due_date = timezone.now().date()

    class Meta:
        model = LandUseAgreementInvoice


@register
class LandUseAgreementInvoiceRowFactory(factory.DjangoModelFactory):
    class Meta:
        model = LandUseAgreementInvoiceRow


@register
class LandUseAgreementInvoiceSetFactory(factory.DjangoModelFactory):
    class Meta:
        model = LandUseAgreementInvoiceSet


@register
class LandUseAgreementReceivableTypeFactory(factory.DjangoModelFactory):
    class Meta:
        model = LandUseAgreementReceivableType


@register
class ContractFactory(factory.DjangoModelFactory):
    class Meta:
        model = Contract


@register
class DecisionMakerFactory(factory.DjangoModelFactory):
    class Meta:
        model = DecisionMaker


@pytest.fixture
def area_test_data(
    area_factory, area_source_factory,
):
    area_source = area_source_factory(
        name="Tonttiosasto: vuokrausalue_paa",
        identifier="tonttiosasto.vuokrausalue_paa",
    )

    area = area_factory(
        type=AreaType.LEASE_AREA,
        identifier="A1128-1",
        external_id="65691",
        geometry=GEOSGeometry(
            "MULTIPOLYGON (((24.9343459932647 60.2296072821234, 24.9343417466265 60.2296066573017, 24.9343375667474 60.2296059295982, 24.9343334636973 60.2296051007661, 24.9343294473607 60.2296041728021, 24.9343255274133 60.2296031479417, 24.9343217132989 60.229602028654, 24.9343180142057 60.2296008176354, 24.9343144390455 60.2295995178034, 24.9343109964309 60.2295981322893, 24.9343076946556 60.2295966644311, 24.9343045416738 60.2295951177648, 24.9343015450815 60.2295934960167, 24.9342987120975 60.2295918030936, 24.9342960495468 60.229590043074, 24.9342935638438 60.2295882201979, 24.9342912609766 60.2295863388567, 24.9342891464932 60.2295844035829, 24.9342872254873 60.2295824190386, 24.9342855025868 60.2295803900048, 24.9342839819425 60.2295783213697, 24.9342826672176 60.2295762181167, 24.9342815615792 60.2295740853128, 24.934280667691 60.2295719280962, 24.9342799877065 60.2295697516637, 24.9342795232635 60.2295675612585, 24.9342792754812 60.2295653621576, 24.934279259344 60.229565078365, 24.9341903407263 60.2278081926, 24.9341599424874 60.2272075175174, 24.9355725044419 60.2279667321537, 24.9367039545191 60.2285748197339, 24.9364731573586 60.2289593826589, 24.9360564344451 60.2293621331358, 24.9357279251935 60.22979239053, 24.9343459932647 60.2296072821234)))"  # noqa: E501
        ),
        metadata={
            "unit": 3,
            "group": 239,
            "district": 28,
            "mvj_unit": None,
            "state_name": "Voimassa",
            "municipality": 91,
            "contract_number": "6546",
            "lease_identifier": "A1128-90",
        },
        source=area_source,
    )

    return {"area_source": area_source, "area": area}


@pytest.fixture
def area_with_intersects_test_data(
    area_test_data, area_factory,
):
    area_source = area_test_data["area_source"]
    intersect_areas = [
        area_factory(
            type=AreaType.DETAILED_PLAN,
            identifier="12025",
            external_id="1660",
            geometry=GEOSGeometry(
                "MULTIPOLYGON (((24.9277753139783 60.2292931169049, 24.9278229581668 60.2293167737933, 24.9278728789573 60.229339239456, 24.9279249560853 60.2293604597689, 24.9279790640903 60.2293803836078, 24.9279966171371 60.229386420249, 24.9281537999632 60.229405304326, 24.9289596045416 60.2296778530833, 24.9289787792364 60.2296843381706, 24.9288046404959 60.2298116922939, 24.9284129237164 60.2300981608676, 24.9273955680622 60.229795858404, 24.9272729180474 60.2297579798522, 24.9268419512086 60.2296267826066, 24.9264874971251 60.2291634329862, 24.9261350718619 60.2287027159858, 24.9260398266434 60.2285782042873, 24.9266158609816 60.2283899768226, 24.9265668680234 60.2283615446444, 24.9265151292047 60.2283343423552, 24.9264607691697 60.2283084354846, 24.9264039188759 60.2282838864415, 24.9263447152789 60.2282607543635, 24.9262833010022 60.2282390949747, 24.9262198239942 60.2282189604516, 24.9261544371712 60.2282003992972, 24.9260872980493 60.2281834562243, 24.9260185683651 60.2281681720476, 24.9260147520967 60.2281673816872, 24.9259701379458 60.2281588087151, 24.9259247317998 60.2281513348585, 24.9258786430421 60.2281449781218, 24.9258319827 60.2281397538182, 24.925784863178 60.228135674533, 24.9257373979861 60.2281327500933, 24.9256897014674 60.2281309875438, 24.9256418885217 60.2281303911305, 24.9255940743298 60.2281309622903, 24.9255463740748 60.228132699647, 24.9254989026661 60.2281355990156, 24.9254517744614 60.2281396534115, 24.9254051029918 60.2281448530677, 24.9253590006885 60.2281511854583, 24.9253135786114 60.2281586353286, 24.9252689461823 60.2281671847321, 24.9252252109209 60.2281768130733, 24.9252144024076 60.228179392694, 24.9250681299235 60.2282170928083, 24.9249257525414 60.228258317119, 24.9247876132313 60.2283029663261, 24.9246540447581 60.2283509328795, 24.924525368881 60.2284021012378, 24.924401895578 60.2284563481464, 24.9243319306174 60.2284895872242, 24.9242173268501 60.2285484451457, 24.9241086673391 60.2286100289423, 24.9240263659975 60.2286610494062, 24.9239558689153 60.2287331763288, 24.9227708145935 60.2296130979669, 24.9221612368253 60.2300373751509, 24.9220645285224 60.2300914523868, 24.9216834503734 60.2303510737223, 24.9215714249193 60.2303028098852, 24.9214226206379 60.230238699725, 24.9217138839613 60.2300281348717, 24.9217177553545 60.230025183242, 24.9217213308778 60.2300221406919, 24.9217246019174 60.2300190145513, 24.9217275605933 60.2300158123512, 24.9217301997775 60.2300125418063, 24.9217325131125 60.2300092107953, 24.921734495025 60.2300058273432, 24.9217361407407 60.2300023996008, 24.921737446295 60.2299989358261, 24.9217384085427 60.2299954443634, 24.921739025166 60.2299919336241, 24.9217392946792 60.2299884120659, 24.9217392164334 60.2299848881724, 24.921738790617 60.2299813704331, 24.9217380182561 60.2299778673225, 24.9217369012114 60.2299743872799, 24.9217354421741 60.229970938689, 24.9217336446594 60.2299675298578, 24.9217315129974 60.2299641689984, 24.9217290523239 60.2299608642073, 24.9217262685668 60.2299576234462, 24.9217231684326 60.2299544545223, 24.9217217344569 60.2299531108716, 24.9217144558481 60.2299460551453, 24.9217078821219 60.2299388302934, 24.9217020291145 60.2299314537215, 24.9216969109258 60.2299239432004, 24.9216925398858 60.2299163168237, 24.9216889265239 60.2299085929641, 24.9216860795447 60.229900790229, 24.9216840058062 60.2298929274161, 24.9216827103038 60.2298850234676, 24.9216821961578 60.2298770974247, 24.9216824646064 60.2298691683821, 24.9216832729185 60.2298626497526, 24.9209218630555 60.2296144702168, 24.9210073606983 60.2291632121251, 24.921015821732 60.2291185342188, 24.9211030147059 60.2286583456582, 24.921213082359 60.2280775300398, 24.9213028120083 60.2276039407697, 24.9220932936945 60.2276409934401, 24.922765796727 60.2271036365481, 24.9220611224603 60.2268854570948, 24.9224616241098 60.2265654309265, 24.9230490593446 60.2258064021534, 24.9233984512792 60.2254517838185, 24.9234541588221 60.2253952406357, 24.9237912287551 60.2250531168265, 24.9242994049478 60.2245373087923, 24.9245441322871 60.2242888942011, 24.9252855901996 60.2240972749529, 24.9260854071246 60.2238905713526, 24.9274382809783 60.2242100369185, 24.9271287974424 60.2245343556009, 24.9276474784604 60.2246568237787, 24.927687934885 60.2246657781862, 24.9277292258901 60.2246737343537, 24.9277712519989 60.2246806731134, 24.9278139119631 60.2246865777486, 24.9278571030075 60.224691434034, 24.9279007210772 60.2246952302699, 24.9279446610882 60.2246979573104, 24.9279888171811 60.2246996085856, 24.9280330829755 60.2247001801172, 24.928077351827 60.2246996705284, 24.9281215170837 60.2246980810468, 24.9281431232042 60.2246969069186, 24.9283515386152 60.2246843113855, 24.9284061932072 60.2246816842419, 24.92846104111 60.2246803942228, 24.928515950197 60.2246804444356, 24.9285707881938 60.2246818347595, 24.9286254229978 60.2246845618452, 24.9286797229955 60.2246886191232, 24.9287335573799 60.2246939968197, 24.9287867964653 60.2247006819799, 24.9288393120001 60.2247086584997, 24.9288909774754 60.2247179071636, 24.9289416684297 60.224728405692, 24.9289912627487 60.2247401287942, 24.9290396409596 60.2247530482295, 24.9290866865188 60.2247671328751, 24.9291322860926 60.2247823488015, 24.9291763298301 60.2247986593537, 24.9292187116281 60.2248160252397, 24.9292307230967 60.2248212733568, 24.929270788968 60.2248399306425, 24.9293089661998 60.2248595433471, 24.9293272142506 60.2248696346916, 24.93022343598 60.2253775205285, 24.930227038328 60.2253794636129, 24.9302308280136 60.2253813164342, 24.9302347959069 60.2253830745287, 24.9302389324492 60.2253847336611, 24.9302432276749 60.2253862898343, 24.9302476712366 60.2253877392994, 24.9302522524293 60.2253890785645, 24.9302569602164 60.2253903044031, 24.9302617832564 60.225391413862, 24.9302667099302 60.2253924042686, 24.930271728369 60.2253932732367, 24.9302768264828 60.225394018673, 24.9302819919898 60.2253946387816, 24.9302872124457 60.2253951320687, 24.930292475274 60.2253954973458, 24.930297767796 60.225395733733, 24.9303030772615 60.2253958406607, 24.9303083908795 60.2253958178714, 24.9303136958488 60.2253956654201, 24.9303189793894 60.2253953836738, 24.9303242287726 60.2253949733115, 24.9303294313522 60.2253944353217, 24.9303345745946 60.2253937710005, 24.9303396461093 60.2253929819483, 24.9303446336785 60.225392070066, 24.9303495252866 60.2253910375504, 24.9303543091493 60.225389886889, 24.9303589737418 60.2253886208538, 24.9303635078267 60.2253872424947, 24.9303679004809 60.2253857551325, 24.9303721411221 60.2253841623503, 24.9303762195342 60.2253824679853, 24.930380125892 60.2253806761194, 24.9303834056943 60.2253790262418, 24.9309438731481 60.2250846622875, 24.9311492769493 60.2249247606672, 24.9313449058512 60.2250058341877, 24.9314799048349 60.225061780105, 24.9334995943141 60.2260142690243, 24.9337632460662 60.2261386010807, 24.933818351935 60.226164588021, 24.9338157864245 60.2261267869928, 24.9338927483051 60.226109481358, 24.9341019812378 60.2260624333412, 24.9346116804935 60.2259478205358, 24.9380966718863 60.2273153439199, 24.9383702130947 60.2277146432983, 24.9382265882778 60.2282711207616, 24.9381392978166 60.2286093094113, 24.9384032947399 60.2289240805279, 24.9383378519653 60.2290407944473, 24.9382113952431 60.2293030450244, 24.9384889631233 60.2294313681294, 24.938799962067 60.229159950719, 24.9394874223171 60.2293198478512, 24.9396900119737 60.2294841550461, 24.9390948607793 60.2296588803352, 24.9387914632488 60.2297479558305, 24.9383874013375 60.2298665739024, 24.9372095679121 60.2302092575693, 24.9371249463398 60.2302350611558, 24.9370683442711 60.230189152294, 24.9368848107175 60.2300402940762, 24.9356635452658 60.2298767088686, 24.9355825594403 60.2298658605598, 24.934379059859 60.2297046515136, 24.9339948778353 60.2296531874643, 24.9339919064033 60.2295944476404, 24.9339865207418 60.2294879657768, 24.9331467439544 60.2294792162818, 24.9330671109783 60.229477414347, 24.9329877517143 60.2294736711778, 24.9329088573596 60.2294679957925, 24.9328306179914 60.2294604018645, 24.9327532221081 60.2294509076897, 24.9326768561757 60.2294395361419, 24.9326017041784 60.2294263146182, 24.9325279471747 60.2294112749725, 24.9324557628621 60.2293944534391, 24.9323853251477 60.2293758905454, 24.9323208952348 60.2293569051354, 24.9315339726876 60.2291126301885, 24.9325999661542 60.2282630924284, 24.9312079020712 60.2278309845408, 24.9313368581088 60.2277282134113, 24.9299591210016 60.227300521052, 24.9297601184794 60.227238742562, 24.9296930117233 60.2272922199406, 24.9292256570319 60.2276646519495, 24.9284831194396 60.2274341327472, 24.9279177290487 60.2278087376594, 24.9277054735462 60.2278909379512, 24.9275697385973 60.2279969132392, 24.9276458337081 60.228021025773, 24.9274544054548 60.2281704831243, 24.9279408678184 60.228806389578, 24.9282827349743 60.2289220248337, 24.928238466007 60.2289544010617, 24.9277753139783 60.2292931169049), (24.9322140697331 60.2264591835492, 24.932023458066 60.2264031460676, 24.9318386046904 60.2263425237164, 24.9317181912374 60.2262994119744, 24.9304098788808 60.2273291023801, 24.9304741680556 60.2273594041884, 24.9305413692221 60.2273881004526, 24.9306113204842 60.2274151220367, 24.930683853319 60.2274404038389, 24.9307274500755 60.2274543743202, 24.9317178872309 60.2277618261751, 24.9327573873027 60.2266100800325, 24.9322140697331 60.2264591835492)))"  # noqa: E501
            ),
            metadata={
                "area": "359050.248315417000000",
                "type_name": "Kaava",
                "final_date": "2012-07-06",
                "state_name": "Voimassa",
                "ratify_date": "2012-05-23",
                "effective_date": "2012-07-06",
                "date_of_approval": "23.05.2012",
                "detailed_plan_identifier": "12025",
            },
            source=area_source,
        ),
        area_factory(
            type=AreaType.REAL_PROPERTY,
            identifier="09142200050002",
            external_id="2031",
            geometry=GEOSGeometry(
                "MULTIPOLYGON (((24.9625863828207 60.2242186495431, 24.9625998044844 60.2240752027534, 24.9629178951043 60.22408656149, 24.9629197255021 60.2240944386174, 24.9629223307078 60.2241022615801, 24.9629257044458 60.2241100115318, 24.9629298385888 60.2241176698024, 24.962934723178 60.2241252179421, 24.9629403464464 60.2241326377668, 24.9629466948475 60.2241399114014, 24.9629537530877 60.224147021323, 24.9629615041635 60.224153950403, 24.9629699294023 60.2241606819485, 24.962979008507 60.2241671997426, 24.9629887196056 60.2241734880832, 24.9629990393032 60.224179531821, 24.963009942739 60.2241853163959, 24.9630214036457 60.2241908278722, 24.9630333944128 60.2241960529723, 24.9630458861535 60.2242009791082, 24.9630588487741 60.2242055944123, 24.9630722510461 60.2242098877658, 24.9630860606822 60.2242138488255, 24.9631002444134 60.2242174680487, 24.9631102134537 60.224219757457, 24.9634176859326 60.224287242182, 24.9634586233292 60.2242956381233, 24.9635003396275 60.2243030247464, 24.9635427343259 60.2243093842557, 24.963585705288 60.2243147013299, 24.9636291489893 60.2243189631591, 24.9636729607662 60.224322159476, 24.9637170350679 60.2243242825799, 24.9637612657113 60.2243253273559, 24.9638055461366 60.224325291287, 24.963849769664 60.22432417446, 24.9638938297507 60.2243219795656, 24.963937620248 60.2243187118916, 24.9639810356565 60.2243143793107, 24.9640239713806 60.2243089922606, 24.9640663239806 60.2243025637198, 24.9641079914217 60.2242951091758, 24.9641096879692 60.2242947810685, 24.9654716074011 60.2240305719862, 24.965553291538 60.2240135667587, 24.9656331997748 60.2239945882192, 24.9656988407247 60.223977145816, 24.9660667223801 60.2238744787439, 24.9660705296799 60.2238733541517, 24.9660742214628 60.223872137985, 24.9660777888348 60.2238708331736, 24.9660812232017 60.2238694428611, 24.9660845162899 60.2238679703967, 24.9660876601662 60.2238664193278, 24.9660906472564 60.2238647933911, 24.9660934703646 60.2238630965035, 24.9660961226896 60.2238613327531, 24.9660985978417 60.2238595063889, 24.9661008898582 60.2238576218108, 24.9661029932173 60.2238556835588, 24.9661049028519 60.2238536963025, 24.9661066141615 60.2238516648293, 24.9661081230235 60.2238495940332, 24.9661094258029 60.2238474889029, 24.9661105193613 60.22384535451, 24.9661114010643 60.2238431959963, 24.9661120687876 60.2238410185618, 24.966112520923 60.2238388274524, 24.966112756381 60.2238366279464, 24.9661127745945 60.2238344253427, 24.9661125755197 60.2238322249476, 24.9661121596362 60.223830032062, 24.966111527946 60.2238278519688, 24.9661106819709 60.22382568992, 24.9661096237489 60.2238235511241, 24.9661083558295 60.2238214407337, 24.9661068812672 60.223819363833, 24.9661052036144 60.2238173254253, 24.9661033269127 60.2238153304214, 24.9661012623793 60.2238133895649, 24.9659685668124 60.2236957352277, 24.9658797340879 60.2236169706339, 24.9660102330055 60.2236807489677, 24.9667059302304 60.224427250303, 24.9673804225461 60.2241972481679, 24.9680755086549 60.2244909412567, 24.9686911101658 60.2247128575132, 24.9688341269643 60.2248886036788, 24.9694322444403 60.2256235755629, 24.9695015997075 60.2261530903518, 24.9673218003161 60.2260911809166, 24.9670875295441 60.2263289746141, 24.9669286471948 60.2263040500259, 24.9669649643326 60.2261688272865, 24.9670366558339 60.2259019402667, 24.9660676822533 60.2258719570778, 24.9661024398851 60.2258100880133, 24.9670534202878 60.2258395118057, 24.9671059952768 60.225643797311, 24.9671054870233 60.225284787136, 24.9671050167628 60.2249527021458, 24.9668316668747 60.2246392834938, 24.9662670003234 60.2239918602719, 24.9659632910613 60.2240507876713, 24.9655239999347 60.2241007792482, 24.9655169495052 60.224101140403, 24.9655099431929 60.2241016732089, 24.9655029978767 60.2241023763823, 24.965496130288 60.2241032482292, 24.9654893569716 60.2241042866493, 24.9654828075255 60.2241054671439, 24.9650663900112 60.2241862495539, 24.9646293190557 60.2242710407316, 24.9641529569123 60.2243634543068, 24.9640101450272 60.224391154018, 24.9640019756068 60.2243928544897, 24.9639939837644 60.2243947523095, 24.9639861887531 60.2243968429056, 24.9639786093517 60.2243991212416, 24.9639712638194 60.2244015818286, 24.9639641698523 60.2244042187392, 24.9639573445402 60.2244070256206, 24.963950804326 60.224409995711, 24.9639445649655 60.2244131218551, 24.9639386414901 60.224416396522, 24.9639330481697 60.2244198118226, 24.9639277984792 60.2244233595292, 24.9639229050657 60.2244270310951, 24.9639183797179 60.2244308176754, 24.9639142333378 60.2244347101477, 24.9639104759146 60.2244386991348, 24.9639071165003 60.224442775027, 24.9639041631882 60.224446928005, 24.9639036208611 60.2244477686138, 24.9637589416547 60.2246758596186, 24.9635162340032 60.2248975483426, 24.963489663564 60.2249260423045, 24.9632929202055 60.225137023973, 24.9631470763882 60.2252934017068, 24.9631442534975 60.2252966341338, 24.9631417528697 60.2252999315656, 24.9631395805292 60.2253032860584, 24.9631377417094 60.2253066895309, 24.9631362408402 60.225310133784, 24.9631350815375 60.22531361052, 24.9631342665943 60.2253171113633, 24.9631337979739 60.2253206278801, 24.9631336768055 60.2253241515987, 24.9631339033809 60.2253276740301, 24.9631344771546 60.2253311866886, 24.9631353967443 60.2253346811119, 24.9631366599347 60.2253381488815, 24.9631382636828 60.2253415816432, 24.9631402041253 60.2253449711274, 24.9631424765874 60.2253483091683, 24.9631450755947 60.2253515877243, 24.963147994886 60.2253547988971, 24.9631512274286 60.2253579349506, 24.9631547654351 60.2253609883299, 24.9631586003821 60.2253639516789, 24.963162723031 60.2253668178588, 24.96316712345 60.2253695799646, 24.9631717910381 60.2253722313422, 24.9631767145508 60.2253747656041, 24.9631818821268 60.225377176645, 24.963187281317 60.2253794586565, 24.9631928991142 60.225381606141, 24.9631957853224 60.2253826276478, 24.9629352607246 60.2252927512393, 24.9629382204832 60.225293719516, 24.9629412721925 60.2252946143873, 24.9629444085008 60.2252954336974, 24.9629476218524 60.2252961754725, 24.9629509045059 60.2252968379255, 24.9629542485532 60.2252974194606, 24.9629576459383 60.2252979186768, 24.9629610884763 60.2252983343715, 24.9629645678739 60.2252986655431, 24.9629680757491 60.2252989113939, 24.9629716036509 60.2252990713316, 24.9629751430801 60.2252991449708, 24.9629786855103 60.2252991321343, 24.962982222407 60.2252990328528, 24.9629857452498 60.2252988473656, 24.9629892455517 60.2252985761196, 24.9629927148802 60.2252982197681, 24.9629961448773 60.2252977791697, 24.9629995272798 60.2252972553859, 24.9630028539392 60.2252966496784, 24.9630061168412 60.2252959635065, 24.9630093081254 60.2252951985232, 24.9630124201035 60.2252943565714, 24.9630154452784 60.2252934396796, 24.9630183763623 60.2252924500565, 24.9630212062939 60.2252913900862, 24.9630239282557 60.2252902623224, 24.9630265356901 60.2252890694819, 24.9630290223157 60.2252878144384, 24.9630313821421 60.2252865002153, 24.963033609484 60.2252851299789, 24.9630356989758 60.2252837070301, 24.9630376455835 60.2252822347969, 24.9630394446177 60.225280716826, 24.9630410917444 60.2252791567745, 24.9630418446099 60.2252783755064, 24.9632794217025 60.2250239674496, 24.9635455525007 60.224738997611, 24.9636140571586 60.2246656652445, 24.9637327364532 60.2244785829168, 24.9637339649429 60.2244764667621, 24.9637349832095 60.2244743231718, 24.9637357888001 60.22447215731, 24.9637363797739 60.2244699743945, 24.9637367547073 60.2244677796841, 24.963736912697 60.2244655784662, 24.9637368533625 60.2244633760435, 24.9637365768467 60.2244611777219, 24.963736083816 60.2244589887974, 24.963735375458 60.2244568145433, 24.9637344534793 60.2244546601976, 24.9637333201011 60.2244525309502, 24.9637319780537 60.2244504319307, 24.9637304305705 60.2244483681958, 24.9637286813793 60.2244463447173, 24.9637267346943 60.2244443663698, 24.9637245952051 60.2244424379193, 24.963722268066 60.2244405640117, 24.9637197588833 60.2244387491613, 24.9637170737019 60.2244369977403, 24.9637142189906 60.224435313968, 24.9637112016266 60.2244337019008, 24.9637080288792 60.2244321654221, 24.9637047083915 60.2244307082336, 24.9637012481632 60.2244293338457, 24.96369765653 60.2244280455694, 24.9636939421446 60.2244268465084, 24.9636901139552 60.2244257395511, 24.9636861811842 60.2244247273644, 24.9636831175616 60.2244240206689, 24.9631062000116 60.2242973681196, 24.9627666224634 60.2242228199292, 24.9625863828207 60.2242186495431)), ((24.960433138711 60.2250295092804, 24.9605757297745 60.2249155394591, 24.9613861776855 60.2253025854339, 24.9613024849614 60.2253540787464, 24.9611604349736 60.2253909834359, 24.960433138711 60.2250295092804)), ((24.983256803036 60.2317563918688, 24.9832973482192 60.231537240363, 24.9833072835504 60.2314835420663, 24.9833782342748 60.231100038543, 24.9894279706557 60.2312326884816, 24.9894331914178 60.2312504502271, 24.9894662279386 60.2312922106916, 24.9895288531635 60.2314185697933, 24.989559574452 60.2315342438903, 24.9895624495794 60.2315790966552, 24.9895875000809 60.2316452487796, 24.9895766929503 60.2316575917361, 24.9895286087378 60.2316699694524, 24.9895215098363 60.2316782199353, 24.9895756146988 60.231677215366, 24.9895897278594 60.231682809017, 24.9895974302223 60.2317634953626, 24.9895693300572 60.231781050745, 24.9895061654403 60.2317811759086, 24.989504766067 60.2317946208784, 24.9895751001963 60.2318027069328, 24.9896093785286 60.2318235494954, 24.9896075376416 60.2318863687517, 24.9896182644272 60.2319399560444, 24.9896148085275 60.2320476447621, 24.989569406722 60.2320623123151, 24.989506666363 60.2320659612361, 24.9895065075898 60.2320883987103, 24.9895951960156 60.2321105712261, 24.9896209787195 60.2321342475351, 24.989618800103 60.2321578812659, 24.983256803036 60.2317563918688)), ((24.9820213808334 60.2346373937676, 24.9827360600768 60.2339382702225, 24.9887661409545 60.2342955917328, 24.9883153848857 60.2350322289201, 24.9820213808334 60.2346373937676)), ((24.9677085133043 60.227918955323, 24.9685331249497 60.2264962975062, 24.9695219897968 60.2265536753196, 24.9697351327161 60.2265661442044, 24.9688496136864 60.2272130099063, 24.9688191634025 60.2272363174886, 24.9687910490706 60.2272603401475, 24.9687653384242 60.2272850200116, 24.9687420934063 60.2273102976265, 24.968721370021 60.2273361120975, 24.9687032181976 60.2273624012364, 24.9686936228252 60.2273783011419, 24.9683584416228 60.2279647120846, 24.9679813739628 60.2277806572827, 24.9677085133043 60.227918955323)), ((24.9553465976442 60.2307878167998, 24.9553612287468 60.230792784804, 24.9553753520783 60.2307981038644, 24.9553889336146 60.2308037611672, 24.9554019406367 60.2308097430837, 24.9554143418096 60.230816035203, 24.9554261072578 60.2308226223671, 24.9554372086371 60.230829488707, 24.9554476192033 60.2308366176814, 24.9554573138761 60.230843992116, 24.9554662693 60.2308515942454, 24.9554744639002 60.2308594057555, 24.9554818779348 60.2308674078278, 24.9554884935424 60.2308755811849, 24.9554942947847 60.2308839061364, 24.9554969968019 60.2308883087377, 24.9554986110364 60.230890827055, 24.9555004717892 60.2308933029469, 24.9555025745773 60.2308957304488, 24.9555049143351 60.2308981037126, 24.955507485426 60.2309004170207, 24.955510281656 60.2309026648004, 24.9555132962888 60.2309048416364, 24.9555165220618 60.2309069422846, 24.9555199512039 60.2309089616843, 24.9555235754541 60.2309108949706, 24.9555273860812 60.2309127374859, 24.955531373905 60.2309144847916, 24.9555355293186 60.2309161326781, 24.9555398423112 60.2309176771757, 24.9555443024922 60.2309191145633, 24.9555488991169 60.2309204413782, 24.9555536211115 60.230921654424, 24.9555584571002 60.2309227507783, 24.9555633954327 60.2309237278, 24.955568424212 60.2309245831352, 24.9555735313234 60.2309253147234, 24.9555787044633 60.2309259208021, 24.9555839311691 60.2309263999112, 24.9555891988491 60.2309267508966, 24.9555944948131 60.2309269729125, 24.9555998063023 60.2309270654242, 24.9556051205212 60.2309270282088, 24.9556104246669 60.230926861356, 24.9556157059615 60.2309265652677, 24.9556209516817 60.2309261406572, 24.9556261491901 60.2309255885474, 24.9556312859652 60.2309249102686, 24.9556363496323 60.2309241074546, 24.9556413279924 60.2309231820395, 24.955646209052 60.2309221362528, 24.9556509810524 60.2309209726138, 24.9556556324973 60.230919693926, 24.9556601521809 60.2309183032697, 24.9556645292148 60.2309168039952, 24.9556687530544 60.2309151997144, 24.9556728135241 60.2309134942922, 24.9556767008419 60.230911691837, 24.9556804056428 60.2309097966912, 24.9556839190016 60.2309078134204, 24.9556872324544 60.2309057468024, 24.9556903380188 60.230903601816, 24.9556932282133 60.2309013836285, 24.955695896075 60.2308990975839, 24.9556983351771 60.2308967491894, 24.9557005396433 60.2308943441026, 24.9557009679211 60.2308938375818, 24.9557543365398 60.2308296600431, 24.9557579219276 60.2308256318978, 24.95576190042 60.2308216960983, 24.9557662624322 60.2308178621263, 24.9557709974557 60.2308141392182, 24.9557760940833 60.2308105363428, 24.9557815400368 60.2308070621797, 24.9557873221963 60.2308037250983, 24.9557934266321 60.230800533138, 24.9557998386381 60.2307974939884, 24.9558065427671 60.230794614971, 24.9558135228684 60.2307919030217, 24.955816494004 60.2307908291235, 24.9558238352065 60.230788364321, 24.9558314107467 60.230786081634, 24.9558392023747 60.2307839865617, 24.9558471913196 60.2307820841513, 24.9558553583358 60.2307803789857, 24.9558636837482 60.2307788751729, 24.9558721475002 60.2307775763356, 24.9558807292022 60.2307764856028, 24.9558894081802 60.2307756056023, 24.9558981635259 60.2307749384539, 24.9559007625465 60.2307747822862, 24.9559621828274 60.230770555687, 24.9560231121018 60.2307648353142, 24.9560834035775 60.2307576349493, 24.9561429119997 60.2307489719397, 24.956201494 60.2307388671564, 24.9562590084427 60.2307273449441, 24.956315316764 60.2307144330623, 24.9563702833069 60.2307001626184, 24.9564237756472 60.2306845679929, 24.956475664913 60.2306676867564, 24.956525826095 60.2306495595794, 24.9565409742686 60.2306437064334, 24.957076798684 60.230433387143, 24.9573449342354 60.2304640813531, 24.9574632860714 60.2305386596779, 24.9571792011402 60.2312140689179, 24.9569730450196 60.2315052211303, 24.9574744312551 60.2317622421423, 24.9582339801155 60.2318979950414, 24.9584687017089 60.2317611595262, 24.9588196182317 60.2315565805045, 24.9592864433318 60.2317546364979, 24.9584313772804 60.2322531076895, 24.9584219162711 60.2322583560535, 24.9584119488191 60.2322633672287, 24.9584014989369 60.2322681291427, 24.9583905917992 60.2322726303235, 24.9583792536823 60.2322768599271, 24.958367511901 60.2322808077641, 24.9583553947423 60.2322844643237, 24.9583429313978 60.2322878207968, 24.9583301518929 60.2322908690971, 24.9583170870148 60.2322936018812, 24.9583037682384 60.2322960125653, 24.9582902276502 60.2322980953418, 24.9582764978709 60.232299845193, 24.958262611977 60.2323012579035, 24.9582486034216 60.2323023300697, 24.9582345059526 60.2323030591088, 24.9582203535328 60.2323034432643, 24.9582061802568 60.2323034816108, 24.9581920202698 60.2323031740559, 24.9581779076849 60.2323025213406, 24.9581638765011 60.2323015250373, 24.958149960521 60.2323001875462, 24.95813619327 60.2322985120895, 24.9581226079148 60.2322965027036, 24.9581092371843 60.2322941642293, 24.95809611329 60.2322915023003, 24.9580946704324 60.2322911865567, 24.9588029867671 60.2324473335458, 24.9587981821943 60.2324462033928, 24.9587934949176 60.2324449573612, 24.9587889362291 60.2324435984528, 24.9587845171112 60.2324421299412, 24.9587802482099 60.2324405553644, 24.9587761398095 60.2324388785155, 24.9587722018074 60.2324371034344, 24.9587684436905 60.2324352343973, 24.9587648745126 60.232433275907, 24.9587615028721 60.2324312326815, 24.9587583368916 60.2324291096433, 24.9587553841981 60.232426911907, 24.958752651905 60.232424644767, 24.9587501465945 60.2324223136852, 24.9587478743021 60.2324199242774, 24.958745840502 60.2324174822998, 24.9587440500936 60.2324149936354, 24.9587425073902 60.2324124642796, 24.9587412161083 60.2324099003259, 24.9587401793586 60.232407307951, 24.9587393996387 60.2324046934003, 24.9587388788269 60.2324020629724, 24.9587386181778 60.2323994230042, 24.9587386183194 60.2323967798557, 24.9587388792511 60.2323941398944, 24.9587394003444 60.2323915094803, 24.9587401803438 60.2323888949502, 24.9587412173701 60.2323863026028, 24.958742508925 60.2323837386832, 24.9587440518971 60.2323812093682, 24.958745842569 60.232378720751, 24.9587478766269 60.232376278827, 24.9587501491705 60.232373889479, 24.958752654725 60.232371558463, 24.9587553872541 60.2323692913948, 24.9587583401752 60.2323670937358, 24.9587615063741 60.2323649707805, 24.9587644826261 60.2323631569982, 24.9595155808243 60.2319252814178, 24.9596099319435 60.2322875931779, 24.9594035644672 60.2325544007099, 24.9597173325711 60.2326318369364, 24.959829292588 60.2326678826821, 24.9600060492913 60.2327125354925, 24.9608034595664 60.23287692452, 24.9592944465933 60.2326954742159, 24.9582028876444 60.2325642087763, 24.9581922193686 60.2325586353114, 24.957325522111 60.2323542338902, 24.9571867399062 60.2322944366701, 24.9566707393149 60.2321760296921, 24.9565400366933 60.2323129212532, 24.9562641435106 60.2322462308026, 24.9561904829386 60.2323221810919, 24.9552692882121 60.2322113737497, 24.9548695203344 60.2326121773819, 24.9546032651285 60.2325458556456, 24.9550342684231 60.232120345269, 24.9546298454414 60.232020160253, 24.9542350301555 60.2319223584775, 24.9538398184979 60.2318244656341, 24.9534367753617 60.2317236123825, 24.9526504982048 60.2315268519981, 24.9525740031041 60.2314789600102, 24.9526407756899 60.2314032740322, 24.9526430291331 60.2314008801287, 24.9526455160526 60.2313985440984, 24.9526482304573 60.2313962715689, 24.9526511658077 60.231394068015, 24.9526543150325 60.2313919387451, 24.9526576705447 60.2313898888889, 24.9526612242607 60.2313879233846, 24.9526649676193 60.2313860469674, 24.9526688916022 60.2313842641575, 24.9526729867565 60.23138257925, 24.9526772432164 60.2313809963039, 24.9526816507279 60.2313795191327, 24.9526861986728 60.231378151295, 24.9526908760947 60.231376896086, 24.9526956717255 60.2313757565297, 24.952700574012 60.2313747353712, 24.9527055711443 60.2313738350706, 24.9527106510839 60.2313730577969, 24.9527158015927 60.2313724054226, 24.9527210102629 60.2313718795192, 24.9527262645463 60.2313714813537, 24.952731551785 60.2313712118853, 24.9527368592416 60.2313710717632, 24.9527421741301 60.231371061325, 24.9527474836465 60.2313711805958, 24.9527527749997 60.2313714292882, 24.9527580354425 60.2313718068032, 24.952763252302 60.2313723122313, 24.9527684130105 60.2313729443548, 24.9527735051356 60.231373701651, 24.9527785164096 60.2313745822954, 24.9527834347602 60.2313755841666, 24.9527851052116 60.2313759569011, 24.9524278037412 60.2312917383032, 24.9524325378104 60.2312929397243, 24.9524371476415 60.2312942552214, 24.952441622129 60.2312956816256, 24.9524459504935 60.2312972155005, 24.9524501223077 60.2312988531508, 24.9524541275213 60.2313005906313, 24.9524579564853 60.2313024237564, 24.9524615999756 60.2313043481098, 24.9524650492145 60.2313063590557, 24.9524682958926 60.2313084517495, 24.9524713321883 60.2313106211497, 24.9524741507868 60.2313128620302, 24.9524767448981 60.2313151689923, 24.9524791082724 60.2313175364785, 24.9524812352162 60.2313199587853, 24.9524831206056 60.2313224300771, 24.9524847598983 60.2313249444005, 24.9524861491451 60.2313274956981, 24.9524872849992 60.2313300778238, 24.952488164724 60.2313326845569, 24.9524887862003 60.2313353096176, 24.9524891479308 60.2313379466818, 24.9524892490439 60.2313405893968, 24.9524890892961 60.2313432313959, 24.9524886690721 60.2313458663144, 24.9524879893841 60.2313484878044, 24.9524870518696 60.2313510895507, 24.9524858587871 60.2313536652852, 24.9524844130107 60.231356208803, 24.9524827180234 60.2313587139763, 24.9524807779085 60.2313611747701, 24.9524801348848 60.231361919205, 24.9523918194924 60.2314620767631, 24.9515283513202 60.2312684242811, 24.9513479820421 60.231472697529, 24.9511658439665 60.2316791975585, 24.9511306752247 60.2317189391574, 24.9506850710514 60.2316651501751, 24.9509882522696 60.2313219694686, 24.9509916150075 60.2313178938632, 24.9509945715812 60.2313137411076, 24.9509971148685 60.2313095212061, 24.9509992387422 60.231305244325, 24.9510009380861 60.2313009207676, 24.9510022088063 60.2312965609497, 24.9510030478419 60.2312921753745, 24.9510034531716 60.2312877746074, 24.9510034238192 60.2312833692501, 24.9510029598556 60.2312789699154, 24.9510020623986 60.2312745872019, 24.9510007336104 60.2312702316678, 24.9509989766926 60.231265913806, 24.9509967958776 60.2312616440186, 24.9509941964194 60.2312574325917, 24.9509911845807 60.2312532896712, 24.9509877676171 60.2312492252377, 24.9509839537608 60.2312452490826, 24.9509797521995 60.2312413707849, 24.9509751730555 60.2312375996877, 24.9509702273603 60.2312339448758, 24.9509649270286 60.231230415154, 24.9509592848295 60.2312270190256, 24.9509533143554 60.2312237646722, 24.9509470299899 60.2312206599337, 24.9509404468724 60.2312177122897, 24.9509335808624 60.2312149288413, 24.9509264485005 60.231212316294, 24.9509190669692 60.2312098809416, 24.9509114540513 60.2312076286511, 24.9509036280867 60.2312055648484, 24.9508956174014 60.231203696575, 24.9495738168098 60.2309148721053, 24.9485659644049 60.23069463757, 24.9485577699145 60.2306929648962, 24.948549420267 60.230691494207, 24.9485409355775 60.2306902290454, 24.9485323362861 60.2306891724592, 24.9485236431091 60.2306883269939, 24.948514876989 60.2306876946862, 24.948506059044 60.2306872770594, 24.948497210517 60.2306870751196, 24.9484883527248 60.2306870893533, 24.9484795070065 60.2306873197261, 24.9484706946719 60.2306877656832, 24.9484619369506 60.2306884261501, 24.9484532549405 60.2306892995358, 24.9484446695572 60.2306903837361, 24.9484362014834 60.2306916761393, 24.9484278711194 60.2306931736317, 24.9484196985336 60.2306948726059, 24.9484117034144 60.2306967689689, 24.9484039050225 60.2306988581522, 24.9483963221449 60.2307011351229, 24.9483889730494 60.2307035943955, 24.9483818754405 60.2307062300455, 24.9483750464167 60.2307090357234, 24.94836850243 60.2307120046701, 24.9483622592453 60.2307151297333, 24.948356331903 60.2307184033844, 24.9483507346825 60.2307218177369, 24.9483454810681 60.2307253645654, 24.9483405837164 60.2307290353254, 24.9483360544254 60.2307328211737, 24.9483319041068 60.2307367129899, 24.948328148689 60.2307406946873, 24.948211984082 60.2308721707054, 24.9479806722313 60.2308216252751, 24.9481072729624 60.2306783311983, 24.9480591868809 60.230564286754, 24.9481541948354 60.2304567506502, 24.9479435480509 60.2304174054935, 24.9473792242004 60.2303198793003, 24.9467347466041 60.2310493214715, 24.9468999693124 60.2310854282235, 24.9468019558994 60.231196354901, 24.9458758973803 60.2310845352727, 24.946188839276 60.2307649217032, 24.9463013109091 60.2303119567177, 24.9466233952303 60.2297932229697, 24.9454605809312 60.2295827313032, 24.9440470997373 60.2293754053859, 24.944173464954 60.2289529372563, 24.9452145589635 60.2290722694932, 24.9455087426976 60.2294100364535, 24.948294099007 60.230005401265, 24.949089948606 60.2301754966813, 24.9496025581644 60.2302850534704, 24.9506816725458 60.230515676777, 24.9510653101406 60.2300716543546, 24.9530541850429 60.2307123579402, 24.9527996825353 60.2310003191869, 24.953025415641 60.231057185457, 24.9532690275348 60.2307815673447, 24.9545887049977 60.2312066630231, 24.9553465976442 60.2307878167998)), ((24.934279259344 60.229565078365, 24.9342794791474 60.2295672782015, 24.9342799157176 60.2295694700243, 24.9342805680028 60.2295716485528, 24.9342814344319 60.229573808539, 24.9342825129174 60.2295759447791, 24.9342838008613 60.2295780521269, 24.9342852951607 60.2295801255054, 24.934286992216 60.2295821599198, 24.9342888879386 60.2295841504689, 24.9342909777618 60.2295860923574, 24.9342932566509 60.229587980907, 24.934295719116 60.229589811568, 24.9342983592246 60.2295915799303, 24.9343011706168 60.2295932817336, 24.9343041465194 60.2295949128783, 24.9343072797634 60.2295964694346, 24.9343105628004 60.2295979476527, 24.9343139877213 60.2295993439714, 24.9343175462753 60.2296006550269, 24.9343212298894 60.2296018776607, 24.9343250296894 60.2296030089274, 24.9343289365213 60.2296040461016, 24.9343329409732 60.2296049866846, 24.9343370333979 60.2296058284106, 24.9343412039364 60.2296065692518, 24.9343454425415 60.2296072074233, 24.9343459932647 60.2296072821234, 24.9357279251935 60.22979239053, 24.9360564344451 60.2293621331358, 24.9364731573586 60.2289593826589, 24.9371026813645 60.229007207033, 24.9372497893731 60.2290947604058, 24.9372505010432 60.2290916970778, 24.9372515140733 60.2290886548076, 24.9372528260229 60.2290856409241, 24.9372544337313 60.229082662688, 24.9372563333255 60.2290797272742, 24.9372585202289 60.2290768417543, 24.937260989173 60.2290740130798, 24.9372637342101 60.2290712480651, 24.9372667487268 60.2290685533715, 24.937270025461 60.2290659354907, 24.9372735565187 60.2290634007293, 24.9372773333932 60.2290609551938, 24.9372813469857 60.2290586047757, 24.9372855876271 60.2290563551374, 24.9372900451012 60.2290542116982, 24.9372947086697 60.2290521796221, 24.9372995670977 60.2290502638044, 24.9373046086806 60.2290484688605, 24.937309821273 60.2290467991145, 24.9373151923174 60.229045258589, 24.9373207088743 60.2290438509952, 24.9373263576541 60.2290425797241, 24.9373321250483 60.2290414478383, 24.937337997163 60.2290404580646, 24.9373439598516 60.2290396127875, 24.9373499987496 60.2290389140432, 24.937356099309 60.2290383635151, 24.937362246833 60.2290379625295, 24.9373684265116 60.2290377120524, 24.9373746234577 60.2290376126871, 24.9373808227423 60.2290376646731, 24.9373870094309 60.2290378678852, 24.9373931686194 60.2290382218337, 24.9373992854697 60.229038725666, 24.9374053452459 60.2290393781683, 24.9374113333496 60.2290401777687, 24.937417235355 60.2290411225409, 24.9374230370436 60.2290422102088, 24.9374287244389 60.2290434381523, 24.9374342838394 60.229044803413, 24.937439701852 60.229046302702, 24.9374449654244 60.2290479324074, 24.9374500618762 60.2290496886031, 24.9374549789295 60.2290515670582, 24.937459704739 60.2290535632475, 24.9374616079214 60.2290544254912, 24.9388070334687 60.2296764392684, 24.9388102023065 60.2296779779929, 24.9388132155195 60.2296795921955, 24.9388160658487 60.2296812779873, 24.9388187464274 60.2296830313074, 24.9388212507978 60.2296848479316, 24.9388235729266 60.2296867234838, 24.9388257072197 60.2296886534454, 24.9388276485352 60.229690633167, 24.9388293921964 60.2296926578793, 24.9388309340026 60.2296947227048, 24.9388322702395 60.2296968226688, 24.9388333976878 60.2296989527126, 24.9388343136314 60.2297011077047, 24.9388350158637 60.2297032824534, 24.938835502693 60.2297054717197, 24.9388357729463 60.2297076702293, 24.9388358259725 60.2297098726859, 24.9388356616439 60.2297120737837, 24.9388352803563 60.2297142682198, 24.9388346830282 60.2297164507078, 24.9388338710986 60.2297186159899, 24.9388328465234 60.2297207588497, 24.9388316117709 60.2297228741247, 24.9388301698158 60.2297249567193, 24.9388285241316 60.2297270016162, 24.9388266786831 60.229729003889, 24.9388246379161 60.2297309587141, 24.9388224067468 60.2297328613821, 24.9388199905504 60.2297347073094, 24.9388173951477 60.229736492049, 24.9388146267911 60.2297382113011, 24.93881169215 60.229739860924, 24.9388085982942 60.2297414369436, 24.9388053526769 60.2297429355632, 24.9388019631171 60.2297443531723, 24.9387984377807 60.2297456863559, 24.9387947851604 60.2297469319021, 24.9387914632488 60.2297479558305, 24.9390948607793 60.2296588803352, 24.9396900119737 60.2294841550461, 24.9394874223171 60.2293198478512, 24.938799962067 60.229159950719, 24.9384889631233 60.2294313681294, 24.9382113952431 60.2293030450244, 24.9375163915131 60.2289817266412, 24.9375037161273 60.2289755715908, 24.9374916632483 60.2289691146194, 24.9374802619127 60.2289623712825, 24.9374695395872 60.2289553578256, 24.9374595221026 60.2289480911449, 24.9374502335915 60.2289405887467, 24.9374416964307 60.228932868705, 24.9374339311863 60.2289249496182, 24.9374269565652 60.2289168505643, 24.9374207893694 60.2289085910547, 24.9374154444556 60.2289001909873, 24.9374109346997 60.2288916705989, 24.9374072709653 60.2288830504157, 24.9374044620782 60.2288743512048, 24.9374025148045 60.2288655939233, 24.9374014338347 60.2288567996683, 24.9374014330738 60.2288567892998, 24.9376966678846 60.2288712107176, 24.9378974810495 60.2289743913417, 24.9383378519653 60.2290407944473, 24.9384032947399 60.2289240805279, 24.9381392978166 60.2286093094113, 24.9382265882778 60.2282711207616, 24.9401949065977 60.2284968237265, 24.9401179621003 60.2285142371326, 24.9398252508735 60.2289977519195, 24.9399872467414 60.229909683225, 24.9398374423068 60.2298763796469, 24.93938748826 60.2299931130746, 24.9394047190421 60.2300175949517, 24.9394239192635 60.2300492240256, 24.9394399758837 60.2300812835514, 24.9394528502122 60.2301136962961, 24.9394625112248 60.2301463841754, 24.9394689356375 60.2301792684422, 24.939472107964 60.2302122698758, 24.9394720205519 60.2302453089731, 24.9394696519488 60.2302713427181, 24.9394637387903 60.230304245328, 24.9394623855745 60.2303099253681, 24.939250244921 60.2302842962319, 24.9392544474078 60.2302566215825, 24.939255914444 60.2302288777136, 24.9392546425023 60.2302011314628, 24.9392506346538 60.2301734496729, 24.9392439005606 60.2301458990318, 24.9392344564525 60.2301185459107, 24.9392223250876 60.2300914562054, 24.939207535698 60.2300646951765, 24.9391901239183 60.2300383272927, 24.939184524812 60.2300306763451, 24.9391812339971 60.2300265874595, 24.9391775437399 60.2300225838065, 24.9391734629307 60.2300186750313, 24.9391690014007 60.2300148705503, 24.9391641698981 60.2300111795288, 24.939163595193 60.2300107656894, 24.9391583643623 60.23000721056, 24.9391527890869 60.2300037873636, 24.9391468827978 60.2300005043466, 24.9391406597241 60.2299973694183, 24.9391341348577 60.2299943901308, 24.9391273239174 60.2299915736615, 24.9391202433115 60.2299889267954, 24.9391129100976 60.2299864559091, 24.9391053419421 60.2299841669552, 24.9390975570772 60.2299820654477, 24.9390895742573 60.2299801564495, 24.9390814127134 60.2299784445594, 24.9390730921076 60.2299769339016, 24.9390646324845 60.2299756281151, 24.9390560542241 60.229974530346, 24.9390473779921 60.2299736432386, 24.9390386246899 60.2299729689301, 24.939029815405 60.229972509045, 24.9390223277376 60.2299722881175, 24.9384153854996 60.2301573768574, 24.9383541795219 60.2301760432174, 24.934042870136 60.2296550961494, 24.9339869280171 60.2277848597475, 24.9341903407263 60.2278081926, 24.934279259344 60.229565078365)), ((24.9399913701077 60.229926609924, 24.9412256485359 60.2298293209761, 24.9423443845132 60.2298338523999, 24.942274146169 60.2306495670681, 24.9400963863843 60.2303865134615, 24.9401017038283 60.2303791165759, 24.9400670954993 60.2302367921547, 24.9399913701077 60.229926609924)))"  # noqa: E501
            ),
            metadata={
                "area": "217661.932557",
                "type_name": "Maarekisterikiinteistö",
                "state_name": "Voimassa",
                "repeal_date": None,
                "type_identifier": "M",
                "state_identifier": "1",
                "intended_use_name": None,
                "registration_date": "1826-09-23",
                "property_identifier": "09142200050002",
                "intended_use_identifier": "_",
            },
            source=area_source,
        ),
        area_factory(
            type=AreaType.REAL_PROPERTY,
            identifier="09102802390003",
            external_id="13985",
            geometry=GEOSGeometry(
                "MULTIPOLYGON (((24.9341599424874 60.2272075175174, 24.9355725044419 60.2279667321537, 24.9367039545191 60.2285748197339, 24.9364731573586 60.2289593826589, 24.9360564344451 60.2293621331358, 24.9357279251935 60.22979239053, 24.9343459932647 60.2296072821234, 24.9343417466265 60.2296066573017, 24.9343375667474 60.2296059295982, 24.9343334636973 60.2296051007661, 24.9343294473607 60.2296041728021, 24.9343255274133 60.2296031479417, 24.9343217132989 60.229602028654, 24.9343180142057 60.2296008176354, 24.9343144390455 60.2295995178034, 24.9343109964309 60.2295981322893, 24.9343076946556 60.2295966644311, 24.9343045416738 60.2295951177648, 24.9343015450815 60.2295934960167, 24.9342987120975 60.2295918030936, 24.9342960495468 60.229590043074, 24.9342935638438 60.2295882201979, 24.9342912609766 60.2295863388567, 24.9342891464932 60.2295844035829, 24.9342872254873 60.2295824190386, 24.9342855025868 60.2295803900048, 24.9342839819425 60.2295783213697, 24.9342826672176 60.2295762181167, 24.9342815615792 60.2295740853128, 24.934280667691 60.2295719280962, 24.9342799877065 60.2295697516637, 24.9342795232635 60.2295675612585, 24.9342792754812 60.2295653621576, 24.934279259344 60.229565078365, 24.9341903407263 60.2278081926, 24.9341599424874 60.2272075175174)))"  # noqa: E501
            ),
            metadata={
                "area": "24433.269171",
                "type_name": "Tontti",
                "state_name": "Voimassa",
                "repeal_date": None,
                "type_identifier": "T",
                "state_identifier": "1",
                "intended_use_name": "ASUNTO-TAI LIIKE",
                "registration_date": "1962-09-28",
                "property_identifier": "09102802390003",
                "intended_use_identifier": "AL",
            },
            source=area_source,
        ),
        area_factory(
            type=AreaType.PLAN_UNIT,
            identifier="09102802390003",
            external_id="23061",
            geometry=GEOSGeometry(
                "MULTIPOLYGON (((24.9364731573586 60.2289593826589, 24.9360564344451 60.2293621331358, 24.9357279251935 60.22979239053, 24.9343459932647 60.2296072821234, 24.9343417466265 60.2296066573017, 24.9343375667474 60.2296059295982, 24.9343334636973 60.2296051007661, 24.9343294473607 60.2296041728021, 24.9343255274133 60.2296031479417, 24.9343217132989 60.229602028654, 24.9343180142057 60.2296008176354, 24.9343144390455 60.2295995178034, 24.9343109964309 60.2295981322893, 24.9343076946556 60.2295966644311, 24.9343045416738 60.2295951177648, 24.9343015450815 60.2295934960167, 24.9342987120975 60.2295918030936, 24.9342960495468 60.229590043074, 24.9342935638438 60.2295882201979, 24.9342912609766 60.2295863388567, 24.9342891464932 60.2295844035829, 24.9342872254873 60.2295824190386, 24.9342855025868 60.2295803900048, 24.9342839819425 60.2295783213697, 24.9342826672176 60.2295762181167, 24.9342815615792 60.2295740853128, 24.934280667691 60.2295719280962, 24.9342799877065 60.2295697516637, 24.9342795232635 60.2295675612585, 24.9342792754812 60.2295653621576, 24.934279259344 60.229565078365, 24.9341599424874 60.2272075175174, 24.9367039545191 60.2285748197339, 24.9364731573586 60.2289593826589)))"  # noqa: E501
            ),
            metadata={
                "area": "24434.000000",
                "type_name": "Tonttirekisteritontti",
                "state_name": "Voimassa",
                "intended_use_name": "AK-1/s Asuinkerrostalojen korttelialue, joka on asemakaavahistoriallisesti, rakennustaiteellisesti ja puutarhakulttuurin kannalta arvokas kulttuurihistoriallinen kokonaisuus",  # noqa: E501
                "plan_unit_identifier": "09102802390003",
                "detailed_plan_identifier": "12025",
            },
            source=area_source,
        ),
        area_factory(
            type=AreaType.PLOT_DIVISION,
            identifier="2009",
            external_id="1974",
            geometry=GEOSGeometry(
                "MULTIPOLYGON (((24.9341599424874 60.2272075175174, 24.9341382758887 60.2267793011452, 24.9341382740147 60.2267779796496, 24.934138402508 60.2267766597001, 24.934138661059 60.2267753444766, 24.9341390490448 60.2267740371474, 24.9341395655307 60.2267727408622, 24.9341402092724 60.2267714587437, 24.9341409787192 60.2267701938807, 24.9341418720172 60.2267689493203, 24.9341428870144 60.2267677280609, 24.9341440212657 60.2267665330445, 24.9341452720385 60.22676536715, 24.9341466363195 60.2267642331862, 24.9341481108222 60.2267631338848, 24.9341496919942 60.2267620718943, 24.9341513760265 60.2267610497729, 24.934153158862 60.2267600699831, 24.9341550362057 60.2267591348853, 24.9341570035348 60.2267582467322, 24.93415905611 60.2267574076635, 24.9341611889865 60.2267566197005, 24.9341633970259 60.2267558847415, 24.934165674909 60.226755204557, 24.9341680171479 60.2267545807858, 24.9341704181002 60.2267540149305, 24.9341728719817 60.2267535083542, 24.9341753728809 60.2267530622775, 24.9341779147728 60.2267526777749, 24.9341804915338 60.2267523557727, 24.9341830969563 60.2267520970467, 24.9341857247636 60.2267519022201, 24.9341883686252 60.2267517717623, 24.9341910221717 60.2267517059876, 24.9341936790105 60.2267517050544, 24.9341963327412 60.226751768965, 24.9341989769705 60.2267518975655, 24.9342016053284 60.2267520905459, 24.934204211483 60.2267523474414, 24.9342067891557 60.2267526676332, 24.9342093321368 60.2267530503498, 24.9342118343001 60.2267534946693, 24.9342142896176 60.2267539995212, 24.9342166921742 60.2267545636894, 24.934219036182 60.2267551858146, 24.934221315994 60.2267558643983, 24.934223526118 60.2267565978055, 24.934225566448 60.2267573476155, 24.9347104133888 60.2269443320401, 24.9357916684439 60.2273760755206, 24.9358255052863 60.2273902788396, 24.9358579002227 60.2274052908468, 24.9358887752111 60.2274210753779, 24.9359180558707 60.2274375944079, 24.9359203031199 60.2274389320253, 24.93657832174 60.2278321060162, 24.9366058018382 60.2278493716192, 24.9366315455636 60.2278672870758, 24.9366428002595 60.2278757445087, 24.9369689072858 60.2281268886084, 24.9370514285703 60.2281904383326, 24.9370745345671 60.2282092293308, 24.9370957589519 60.22822856159, 24.9371150505909 60.2282483885379, 24.9371323630064 60.2282686624106, 24.9371476544881 60.2282893343673, 24.9371608881941 60.2283103546081, 24.9371720322397 60.2283316724941, 24.9371810597741 60.2283532366691, 24.9371879490452 60.2283749951837, 24.9371926834519 60.2283968956198, 24.9371952515844 60.2284188852178, 24.9371956472515 60.2284409110028, 24.9371941592707 60.2284606024067, 24.9371883719478 60.2285087381205, 24.9367039545191 60.2285748197339, 24.9364731573586 60.2289593826589, 24.9360564344451 60.2293621331358, 24.9357279251935 60.22979239053, 24.9343459932647 60.2296072821234, 24.9343417466265 60.2296066573017, 24.9343375667474 60.2296059295982, 24.9343334636973 60.2296051007661, 24.9343294473607 60.2296041728021, 24.9343255274133 60.2296031479417, 24.9343217132989 60.229602028654, 24.9343180142057 60.2296008176354, 24.9343144390455 60.2295995178034, 24.9343109964309 60.2295981322893, 24.9343076946556 60.2295966644311, 24.9343045416738 60.2295951177648, 24.9343015450815 60.2295934960167, 24.9342987120975 60.2295918030936, 24.9342960495468 60.229590043074, 24.9342935638438 60.2295882201979, 24.9342912609766 60.2295863388567, 24.9342891464932 60.2295844035829, 24.9342872254873 60.2295824190386, 24.9342855025868 60.2295803900048, 24.9342839819425 60.2295783213697, 24.9342826672176 60.2295762181167, 24.9342815615792 60.2295740853128, 24.934280667691 60.2295719280962, 24.9342799877065 60.2295697516637, 24.9342795232635 60.2295675612585, 24.9342792754812 60.2295653621576, 24.934279259344 60.229565078365, 24.9341599424874 60.2272075175174)))"  # noqa: E501
            ),
            metadata={
                "type_name": "Tonttijako",
                "state_name": "kumottu osittain",
                "effective_date": None,
                "type_identifier": "1",
                "date_of_approval": "1962-04-10",
                "state_identifier": "4",
                "plot_division_identifier": "2009",
            },
            source=area_source,
        ),
        # Invalid area data
        # Intersection area too small
        area_factory(
            type=AreaType.REAL_PROPERTY,
            identifier="09142200050002",
            external_id="2032",
            geometry=GEOSGeometry(
                "MULTIPOLYGON (((24.9625863828207 60.2242186495431, 24.9625998044844 60.2240752027534, 24.9629178951043 60.22408656149, 24.9629197255021 60.2240944386174, 24.9629223307078 60.2241022615801, 24.9629257044458 60.2241100115318, 24.9629298385888 60.2241176698024, 24.962934723178 60.2241252179421, 24.9629403464464 60.2241326377668, 24.9629466948475 60.2241399114014, 24.9629537530877 60.224147021323, 24.9629615041635 60.224153950403, 24.9629699294023 60.2241606819485, 24.962979008507 60.2241671997426, 24.9629887196056 60.2241734880832, 24.9629990393032 60.224179531821, 24.963009942739 60.2241853163959, 24.9630214036457 60.2241908278722, 24.9630333944128 60.2241960529723, 24.9630458861535 60.2242009791082, 24.9630588487741 60.2242055944123, 24.9630722510461 60.2242098877658, 24.9630860606822 60.2242138488255, 24.9631002444134 60.2242174680487, 24.9631102134537 60.224219757457, 24.9634176859326 60.224287242182, 24.9634586233292 60.2242956381233, 24.9635003396275 60.2243030247464, 24.9635427343259 60.2243093842557, 24.963585705288 60.2243147013299, 24.9636291489893 60.2243189631591, 24.9636729607662 60.224322159476, 24.9637170350679 60.2243242825799, 24.9637612657113 60.2243253273559, 24.9638055461366 60.224325291287, 24.963849769664 60.22432417446, 24.9638938297507 60.2243219795656, 24.963937620248 60.2243187118916, 24.9639810356565 60.2243143793107, 24.9640239713806 60.2243089922606, 24.9640663239806 60.2243025637198, 24.9641079914217 60.2242951091758, 24.9641096879692 60.2242947810685, 24.9654716074011 60.2240305719862, 24.965553291538 60.2240135667587, 24.9656331997748 60.2239945882192, 24.9656988407247 60.223977145816, 24.9660667223801 60.2238744787439, 24.9660705296799 60.2238733541517, 24.9660742214628 60.223872137985, 24.9660777888348 60.2238708331736, 24.9660812232017 60.2238694428611, 24.9660845162899 60.2238679703967, 24.9660876601662 60.2238664193278, 24.9660906472564 60.2238647933911, 24.9660934703646 60.2238630965035, 24.9660961226896 60.2238613327531, 24.9660985978417 60.2238595063889, 24.9661008898582 60.2238576218108, 24.9661029932173 60.2238556835588, 24.9661049028519 60.2238536963025, 24.9661066141615 60.2238516648293, 24.9661081230235 60.2238495940332, 24.9661094258029 60.2238474889029, 24.9661105193613 60.22384535451, 24.9661114010643 60.2238431959963, 24.9661120687876 60.2238410185618, 24.966112520923 60.2238388274524, 24.966112756381 60.2238366279464, 24.9661127745945 60.2238344253427, 24.9661125755197 60.2238322249476, 24.9661121596362 60.223830032062, 24.966111527946 60.2238278519688, 24.9661106819709 60.22382568992, 24.9661096237489 60.2238235511241, 24.9661083558295 60.2238214407337, 24.9661068812672 60.223819363833, 24.9661052036144 60.2238173254253, 24.9661033269127 60.2238153304214, 24.9661012623793 60.2238133895649, 24.9659685668124 60.2236957352277, 24.9658797340879 60.2236169706339, 24.9660102330055 60.2236807489677, 24.9667059302304 60.224427250303, 24.9673804225461 60.2241972481679, 24.9680755086549 60.2244909412567, 24.9686911101658 60.2247128575132, 24.9688341269643 60.2248886036788, 24.9694322444403 60.2256235755629, 24.9695015997075 60.2261530903518, 24.9673218003161 60.2260911809166, 24.9670875295441 60.2263289746141, 24.9669286471948 60.2263040500259, 24.9669649643326 60.2261688272865, 24.9670366558339 60.2259019402667, 24.9660676822533 60.2258719570778, 24.9661024398851 60.2258100880133, 24.9670534202878 60.2258395118057, 24.9671059952768 60.225643797311, 24.9671054870233 60.225284787136, 24.9671050167628 60.2249527021458, 24.9668316668747 60.2246392834938, 24.9662670003234 60.2239918602719, 24.9659632910613 60.2240507876713, 24.9655239999347 60.2241007792482, 24.9655169495052 60.224101140403, 24.9655099431929 60.2241016732089, 24.9655029978767 60.2241023763823, 24.965496130288 60.2241032482292, 24.9654893569716 60.2241042866493, 24.9654828075255 60.2241054671439, 24.9650663900112 60.2241862495539, 24.9646293190557 60.2242710407316, 24.9641529569123 60.2243634543068, 24.9640101450272 60.224391154018, 24.9640019756068 60.2243928544897, 24.9639939837644 60.2243947523095, 24.9639861887531 60.2243968429056, 24.9639786093517 60.2243991212416, 24.9639712638194 60.2244015818286, 24.9639641698523 60.2244042187392, 24.9639573445402 60.2244070256206, 24.963950804326 60.224409995711, 24.9639445649655 60.2244131218551, 24.9639386414901 60.224416396522, 24.9639330481697 60.2244198118226, 24.9639277984792 60.2244233595292, 24.9639229050657 60.2244270310951, 24.9639183797179 60.2244308176754, 24.9639142333378 60.2244347101477, 24.9639104759146 60.2244386991348, 24.9639071165003 60.224442775027, 24.9639041631882 60.224446928005, 24.9639036208611 60.2244477686138, 24.9637589416547 60.2246758596186, 24.9635162340032 60.2248975483426, 24.963489663564 60.2249260423045, 24.9632929202055 60.225137023973, 24.9631470763882 60.2252934017068, 24.9631442534975 60.2252966341338, 24.9631417528697 60.2252999315656, 24.9631395805292 60.2253032860584, 24.9631377417094 60.2253066895309, 24.9631362408402 60.225310133784, 24.9631350815375 60.22531361052, 24.9631342665943 60.2253171113633, 24.9631337979739 60.2253206278801, 24.9631336768055 60.2253241515987, 24.9631339033809 60.2253276740301, 24.9631344771546 60.2253311866886, 24.9631353967443 60.2253346811119, 24.9631366599347 60.2253381488815, 24.9631382636828 60.2253415816432, 24.9631402041253 60.2253449711274, 24.9631424765874 60.2253483091683, 24.9631450755947 60.2253515877243, 24.963147994886 60.2253547988971, 24.9631512274286 60.2253579349506, 24.9631547654351 60.2253609883299, 24.9631586003821 60.2253639516789, 24.963162723031 60.2253668178588, 24.96316712345 60.2253695799646, 24.9631717910381 60.2253722313422, 24.9631767145508 60.2253747656041, 24.9631818821268 60.225377176645, 24.963187281317 60.2253794586565, 24.9631928991142 60.225381606141, 24.9631957853224 60.2253826276478, 24.9629352607246 60.2252927512393, 24.9629382204832 60.225293719516, 24.9629412721925 60.2252946143873, 24.9629444085008 60.2252954336974, 24.9629476218524 60.2252961754725, 24.9629509045059 60.2252968379255, 24.9629542485532 60.2252974194606, 24.9629576459383 60.2252979186768, 24.9629610884763 60.2252983343715, 24.9629645678739 60.2252986655431, 24.9629680757491 60.2252989113939, 24.9629716036509 60.2252990713316, 24.9629751430801 60.2252991449708, 24.9629786855103 60.2252991321343, 24.962982222407 60.2252990328528, 24.9629857452498 60.2252988473656, 24.9629892455517 60.2252985761196, 24.9629927148802 60.2252982197681, 24.9629961448773 60.2252977791697, 24.9629995272798 60.2252972553859, 24.9630028539392 60.2252966496784, 24.9630061168412 60.2252959635065, 24.9630093081254 60.2252951985232, 24.9630124201035 60.2252943565714, 24.9630154452784 60.2252934396796, 24.9630183763623 60.2252924500565, 24.9630212062939 60.2252913900862, 24.9630239282557 60.2252902623224, 24.9630265356901 60.2252890694819, 24.9630290223157 60.2252878144384, 24.9630313821421 60.2252865002153, 24.963033609484 60.2252851299789, 24.9630356989758 60.2252837070301, 24.9630376455835 60.2252822347969, 24.9630394446177 60.225280716826, 24.9630410917444 60.2252791567745, 24.9630418446099 60.2252783755064, 24.9632794217025 60.2250239674496, 24.9635455525007 60.224738997611, 24.9636140571586 60.2246656652445, 24.9637327364532 60.2244785829168, 24.9637339649429 60.2244764667621, 24.9637349832095 60.2244743231718, 24.9637357888001 60.22447215731, 24.9637363797739 60.2244699743945, 24.9637367547073 60.2244677796841, 24.963736912697 60.2244655784662, 24.9637368533625 60.2244633760435, 24.9637365768467 60.2244611777219, 24.963736083816 60.2244589887974, 24.963735375458 60.2244568145433, 24.9637344534793 60.2244546601976, 24.9637333201011 60.2244525309502, 24.9637319780537 60.2244504319307, 24.9637304305705 60.2244483681958, 24.9637286813793 60.2244463447173, 24.9637267346943 60.2244443663698, 24.9637245952051 60.2244424379193, 24.963722268066 60.2244405640117, 24.9637197588833 60.2244387491613, 24.9637170737019 60.2244369977403, 24.9637142189906 60.224435313968, 24.9637112016266 60.2244337019008, 24.9637080288792 60.2244321654221, 24.9637047083915 60.2244307082336, 24.9637012481632 60.2244293338457, 24.96369765653 60.2244280455694, 24.9636939421446 60.2244268465084, 24.9636901139552 60.2244257395511, 24.9636861811842 60.2244247273644, 24.9636831175616 60.2244240206689, 24.9631062000116 60.2242973681196, 24.9627666224634 60.2242228199292, 24.9625863828207 60.2242186495431)), ((24.960433138711 60.2250295092804, 24.9605757297745 60.2249155394591, 24.9613861776855 60.2253025854339, 24.9613024849614 60.2253540787464, 24.9611604349736 60.2253909834359, 24.960433138711 60.2250295092804)), ((24.983256803036 60.2317563918688, 24.9832973482192 60.231537240363, 24.9833072835504 60.2314835420663, 24.9833782342748 60.231100038543, 24.9894279706557 60.2312326884816, 24.9894331914178 60.2312504502271, 24.9894662279386 60.2312922106916, 24.9895288531635 60.2314185697933, 24.989559574452 60.2315342438903, 24.9895624495794 60.2315790966552, 24.9895875000809 60.2316452487796, 24.9895766929503 60.2316575917361, 24.9895286087378 60.2316699694524, 24.9895215098363 60.2316782199353, 24.9895756146988 60.231677215366, 24.9895897278594 60.231682809017, 24.9895974302223 60.2317634953626, 24.9895693300572 60.231781050745, 24.9895061654403 60.2317811759086, 24.989504766067 60.2317946208784, 24.9895751001963 60.2318027069328, 24.9896093785286 60.2318235494954, 24.9896075376416 60.2318863687517, 24.9896182644272 60.2319399560444, 24.9896148085275 60.2320476447621, 24.989569406722 60.2320623123151, 24.989506666363 60.2320659612361, 24.9895065075898 60.2320883987103, 24.9895951960156 60.2321105712261, 24.9896209787195 60.2321342475351, 24.989618800103 60.2321578812659, 24.983256803036 60.2317563918688)), ((24.9820213808334 60.2346373937676, 24.9827360600768 60.2339382702225, 24.9887661409545 60.2342955917328, 24.9883153848857 60.2350322289201, 24.9820213808334 60.2346373937676)), ((24.9677085133043 60.227918955323, 24.9685331249497 60.2264962975062, 24.9695219897968 60.2265536753196, 24.9697351327161 60.2265661442044, 24.9688496136864 60.2272130099063, 24.9688191634025 60.2272363174886, 24.9687910490706 60.2272603401475, 24.9687653384242 60.2272850200116, 24.9687420934063 60.2273102976265, 24.968721370021 60.2273361120975, 24.9687032181976 60.2273624012364, 24.9686936228252 60.2273783011419, 24.9683584416228 60.2279647120846, 24.9679813739628 60.2277806572827, 24.9677085133043 60.227918955323)), ((24.9553465976442 60.2307878167998, 24.9553612287468 60.230792784804, 24.9553753520783 60.2307981038644, 24.9553889336146 60.2308037611672, 24.9554019406367 60.2308097430837, 24.9554143418096 60.230816035203, 24.9554261072578 60.2308226223671, 24.9554372086371 60.230829488707, 24.9554476192033 60.2308366176814, 24.9554573138761 60.230843992116, 24.9554662693 60.2308515942454, 24.9554744639002 60.2308594057555, 24.9554818779348 60.2308674078278, 24.9554884935424 60.2308755811849, 24.9554942947847 60.2308839061364, 24.9554969968019 60.2308883087377, 24.9554986110364 60.230890827055, 24.9555004717892 60.2308933029469, 24.9555025745773 60.2308957304488, 24.9555049143351 60.2308981037126, 24.955507485426 60.2309004170207, 24.955510281656 60.2309026648004, 24.9555132962888 60.2309048416364, 24.9555165220618 60.2309069422846, 24.9555199512039 60.2309089616843, 24.9555235754541 60.2309108949706, 24.9555273860812 60.2309127374859, 24.955531373905 60.2309144847916, 24.9555355293186 60.2309161326781, 24.9555398423112 60.2309176771757, 24.9555443024922 60.2309191145633, 24.9555488991169 60.2309204413782, 24.9555536211115 60.230921654424, 24.9555584571002 60.2309227507783, 24.9555633954327 60.2309237278, 24.955568424212 60.2309245831352, 24.9555735313234 60.2309253147234, 24.9555787044633 60.2309259208021, 24.9555839311691 60.2309263999112, 24.9555891988491 60.2309267508966, 24.9555944948131 60.2309269729125, 24.9555998063023 60.2309270654242, 24.9556051205212 60.2309270282088, 24.9556104246669 60.230926861356, 24.9556157059615 60.2309265652677, 24.9556209516817 60.2309261406572, 24.9556261491901 60.2309255885474, 24.9556312859652 60.2309249102686, 24.9556363496323 60.2309241074546, 24.9556413279924 60.2309231820395, 24.955646209052 60.2309221362528, 24.9556509810524 60.2309209726138, 24.9556556324973 60.230919693926, 24.9556601521809 60.2309183032697, 24.9556645292148 60.2309168039952, 24.9556687530544 60.2309151997144, 24.9556728135241 60.2309134942922, 24.9556767008419 60.230911691837, 24.9556804056428 60.2309097966912, 24.9556839190016 60.2309078134204, 24.9556872324544 60.2309057468024, 24.9556903380188 60.230903601816, 24.9556932282133 60.2309013836285, 24.955695896075 60.2308990975839, 24.9556983351771 60.2308967491894, 24.9557005396433 60.2308943441026, 24.9557009679211 60.2308938375818, 24.9557543365398 60.2308296600431, 24.9557579219276 60.2308256318978, 24.95576190042 60.2308216960983, 24.9557662624322 60.2308178621263, 24.9557709974557 60.2308141392182, 24.9557760940833 60.2308105363428, 24.9557815400368 60.2308070621797, 24.9557873221963 60.2308037250983, 24.9557934266321 60.230800533138, 24.9557998386381 60.2307974939884, 24.9558065427671 60.230794614971, 24.9558135228684 60.2307919030217, 24.955816494004 60.2307908291235, 24.9558238352065 60.230788364321, 24.9558314107467 60.230786081634, 24.9558392023747 60.2307839865617, 24.9558471913196 60.2307820841513, 24.9558553583358 60.2307803789857, 24.9558636837482 60.2307788751729, 24.9558721475002 60.2307775763356, 24.9558807292022 60.2307764856028, 24.9558894081802 60.2307756056023, 24.9558981635259 60.2307749384539, 24.9559007625465 60.2307747822862, 24.9559621828274 60.230770555687, 24.9560231121018 60.2307648353142, 24.9560834035775 60.2307576349493, 24.9561429119997 60.2307489719397, 24.956201494 60.2307388671564, 24.9562590084427 60.2307273449441, 24.956315316764 60.2307144330623, 24.9563702833069 60.2307001626184, 24.9564237756472 60.2306845679929, 24.956475664913 60.2306676867564, 24.956525826095 60.2306495595794, 24.9565409742686 60.2306437064334, 24.957076798684 60.230433387143, 24.9573449342354 60.2304640813531, 24.9574632860714 60.2305386596779, 24.9571792011402 60.2312140689179, 24.9569730450196 60.2315052211303, 24.9574744312551 60.2317622421423, 24.9582339801155 60.2318979950414, 24.9584687017089 60.2317611595262, 24.9588196182317 60.2315565805045, 24.9592864433318 60.2317546364979, 24.9584313772804 60.2322531076895, 24.9584219162711 60.2322583560535, 24.9584119488191 60.2322633672287, 24.9584014989369 60.2322681291427, 24.9583905917992 60.2322726303235, 24.9583792536823 60.2322768599271, 24.958367511901 60.2322808077641, 24.9583553947423 60.2322844643237, 24.9583429313978 60.2322878207968, 24.9583301518929 60.2322908690971, 24.9583170870148 60.2322936018812, 24.9583037682384 60.2322960125653, 24.9582902276502 60.2322980953418, 24.9582764978709 60.232299845193, 24.958262611977 60.2323012579035, 24.9582486034216 60.2323023300697, 24.9582345059526 60.2323030591088, 24.9582203535328 60.2323034432643, 24.9582061802568 60.2323034816108, 24.9581920202698 60.2323031740559, 24.9581779076849 60.2323025213406, 24.9581638765011 60.2323015250373, 24.958149960521 60.2323001875462, 24.95813619327 60.2322985120895, 24.9581226079148 60.2322965027036, 24.9581092371843 60.2322941642293, 24.95809611329 60.2322915023003, 24.9580946704324 60.2322911865567, 24.9588029867671 60.2324473335458, 24.9587981821943 60.2324462033928, 24.9587934949176 60.2324449573612, 24.9587889362291 60.2324435984528, 24.9587845171112 60.2324421299412, 24.9587802482099 60.2324405553644, 24.9587761398095 60.2324388785155, 24.9587722018074 60.2324371034344, 24.9587684436905 60.2324352343973, 24.9587648745126 60.232433275907, 24.9587615028721 60.2324312326815, 24.9587583368916 60.2324291096433, 24.9587553841981 60.232426911907, 24.958752651905 60.232424644767, 24.9587501465945 60.2324223136852, 24.9587478743021 60.2324199242774, 24.958745840502 60.2324174822998, 24.9587440500936 60.2324149936354, 24.9587425073902 60.2324124642796, 24.9587412161083 60.2324099003259, 24.9587401793586 60.232407307951, 24.9587393996387 60.2324046934003, 24.9587388788269 60.2324020629724, 24.9587386181778 60.2323994230042, 24.9587386183194 60.2323967798557, 24.9587388792511 60.2323941398944, 24.9587394003444 60.2323915094803, 24.9587401803438 60.2323888949502, 24.9587412173701 60.2323863026028, 24.958742508925 60.2323837386832, 24.9587440518971 60.2323812093682, 24.958745842569 60.232378720751, 24.9587478766269 60.232376278827, 24.9587501491705 60.232373889479, 24.958752654725 60.232371558463, 24.9587553872541 60.2323692913948, 24.9587583401752 60.2323670937358, 24.9587615063741 60.2323649707805, 24.9587644826261 60.2323631569982, 24.9595155808243 60.2319252814178, 24.9596099319435 60.2322875931779, 24.9594035644672 60.2325544007099, 24.9597173325711 60.2326318369364, 24.959829292588 60.2326678826821, 24.9600060492913 60.2327125354925, 24.9608034595664 60.23287692452, 24.9592944465933 60.2326954742159, 24.9582028876444 60.2325642087763, 24.9581922193686 60.2325586353114, 24.957325522111 60.2323542338902, 24.9571867399062 60.2322944366701, 24.9566707393149 60.2321760296921, 24.9565400366933 60.2323129212532, 24.9562641435106 60.2322462308026, 24.9561904829386 60.2323221810919, 24.9552692882121 60.2322113737497, 24.9548695203344 60.2326121773819, 24.9546032651285 60.2325458556456, 24.9550342684231 60.232120345269, 24.9546298454414 60.232020160253, 24.9542350301555 60.2319223584775, 24.9538398184979 60.2318244656341, 24.9534367753617 60.2317236123825, 24.9526504982048 60.2315268519981, 24.9525740031041 60.2314789600102, 24.9526407756899 60.2314032740322, 24.9526430291331 60.2314008801287, 24.9526455160526 60.2313985440984, 24.9526482304573 60.2313962715689, 24.9526511658077 60.231394068015, 24.9526543150325 60.2313919387451, 24.9526576705447 60.2313898888889, 24.9526612242607 60.2313879233846, 24.9526649676193 60.2313860469674, 24.9526688916022 60.2313842641575, 24.9526729867565 60.23138257925, 24.9526772432164 60.2313809963039, 24.9526816507279 60.2313795191327, 24.9526861986728 60.231378151295, 24.9526908760947 60.231376896086, 24.9526956717255 60.2313757565297, 24.952700574012 60.2313747353712, 24.9527055711443 60.2313738350706, 24.9527106510839 60.2313730577969, 24.9527158015927 60.2313724054226, 24.9527210102629 60.2313718795192, 24.9527262645463 60.2313714813537, 24.952731551785 60.2313712118853, 24.9527368592416 60.2313710717632, 24.9527421741301 60.231371061325, 24.9527474836465 60.2313711805958, 24.9527527749997 60.2313714292882, 24.9527580354425 60.2313718068032, 24.952763252302 60.2313723122313, 24.9527684130105 60.2313729443548, 24.9527735051356 60.231373701651, 24.9527785164096 60.2313745822954, 24.9527834347602 60.2313755841666, 24.9527851052116 60.2313759569011, 24.9524278037412 60.2312917383032, 24.9524325378104 60.2312929397243, 24.9524371476415 60.2312942552214, 24.952441622129 60.2312956816256, 24.9524459504935 60.2312972155005, 24.9524501223077 60.2312988531508, 24.9524541275213 60.2313005906313, 24.9524579564853 60.2313024237564, 24.9524615999756 60.2313043481098, 24.9524650492145 60.2313063590557, 24.9524682958926 60.2313084517495, 24.9524713321883 60.2313106211497, 24.9524741507868 60.2313128620302, 24.9524767448981 60.2313151689923, 24.9524791082724 60.2313175364785, 24.9524812352162 60.2313199587853, 24.9524831206056 60.2313224300771, 24.9524847598983 60.2313249444005, 24.9524861491451 60.2313274956981, 24.9524872849992 60.2313300778238, 24.952488164724 60.2313326845569, 24.9524887862003 60.2313353096176, 24.9524891479308 60.2313379466818, 24.9524892490439 60.2313405893968, 24.9524890892961 60.2313432313959, 24.9524886690721 60.2313458663144, 24.9524879893841 60.2313484878044, 24.9524870518696 60.2313510895507, 24.9524858587871 60.2313536652852, 24.9524844130107 60.231356208803, 24.9524827180234 60.2313587139763, 24.9524807779085 60.2313611747701, 24.9524801348848 60.231361919205, 24.9523918194924 60.2314620767631, 24.9515283513202 60.2312684242811, 24.9513479820421 60.231472697529, 24.9511658439665 60.2316791975585, 24.9511306752247 60.2317189391574, 24.9506850710514 60.2316651501751, 24.9509882522696 60.2313219694686, 24.9509916150075 60.2313178938632, 24.9509945715812 60.2313137411076, 24.9509971148685 60.2313095212061, 24.9509992387422 60.231305244325, 24.9510009380861 60.2313009207676, 24.9510022088063 60.2312965609497, 24.9510030478419 60.2312921753745, 24.9510034531716 60.2312877746074, 24.9510034238192 60.2312833692501, 24.9510029598556 60.2312789699154, 24.9510020623986 60.2312745872019, 24.9510007336104 60.2312702316678, 24.9509989766926 60.231265913806, 24.9509967958776 60.2312616440186, 24.9509941964194 60.2312574325917, 24.9509911845807 60.2312532896712, 24.9509877676171 60.2312492252377, 24.9509839537608 60.2312452490826, 24.9509797521995 60.2312413707849, 24.9509751730555 60.2312375996877, 24.9509702273603 60.2312339448758, 24.9509649270286 60.231230415154, 24.9509592848295 60.2312270190256, 24.9509533143554 60.2312237646722, 24.9509470299899 60.2312206599337, 24.9509404468724 60.2312177122897, 24.9509335808624 60.2312149288413, 24.9509264485005 60.231212316294, 24.9509190669692 60.2312098809416, 24.9509114540513 60.2312076286511, 24.9509036280867 60.2312055648484, 24.9508956174014 60.231203696575, 24.9495738168098 60.2309148721053, 24.9485659644049 60.23069463757, 24.9485577699145 60.2306929648962, 24.948549420267 60.230691494207, 24.9485409355775 60.2306902290454, 24.9485323362861 60.2306891724592, 24.9485236431091 60.2306883269939, 24.948514876989 60.2306876946862, 24.948506059044 60.2306872770594, 24.948497210517 60.2306870751196, 24.9484883527248 60.2306870893533, 24.9484795070065 60.2306873197261, 24.9484706946719 60.2306877656832, 24.9484619369506 60.2306884261501, 24.9484532549405 60.2306892995358, 24.9484446695572 60.2306903837361, 24.9484362014834 60.2306916761393, 24.9484278711194 60.2306931736317, 24.9484196985336 60.2306948726059, 24.9484117034144 60.2306967689689, 24.9484039050225 60.2306988581522, 24.9483963221449 60.2307011351229, 24.9483889730494 60.2307035943955, 24.9483818754405 60.2307062300455, 24.9483750464167 60.2307090357234, 24.94836850243 60.2307120046701, 24.9483622592453 60.2307151297333, 24.948356331903 60.2307184033844, 24.9483507346825 60.2307218177369, 24.9483454810681 60.2307253645654, 24.9483405837164 60.2307290353254, 24.9483360544254 60.2307328211737, 24.9483319041068 60.2307367129899, 24.948328148689 60.2307406946873, 24.948211984082 60.2308721707054, 24.9479806722313 60.2308216252751, 24.9481072729624 60.2306783311983, 24.9480591868809 60.230564286754, 24.9481541948354 60.2304567506502, 24.9479435480509 60.2304174054935, 24.9473792242004 60.2303198793003, 24.9467347466041 60.2310493214715, 24.9468999693124 60.2310854282235, 24.9468019558994 60.231196354901, 24.9458758973803 60.2310845352727, 24.946188839276 60.2307649217032, 24.9463013109091 60.2303119567177, 24.9466233952303 60.2297932229697, 24.9454605809312 60.2295827313032, 24.9440470997373 60.2293754053859, 24.944173464954 60.2289529372563, 24.9452145589635 60.2290722694932, 24.9455087426976 60.2294100364535, 24.948294099007 60.230005401265, 24.949089948606 60.2301754966813, 24.9496025581644 60.2302850534704, 24.9506816725458 60.230515676777, 24.9510653101406 60.2300716543546, 24.9530541850429 60.2307123579402, 24.9527996825353 60.2310003191869, 24.953025415641 60.231057185457, 24.9532690275348 60.2307815673447, 24.9545887049977 60.2312066630231, 24.9553465976442 60.2307878167998)), ((24.934279259344 60.229565078365, 24.9342794791474 60.2295672782015, 24.9342799157176 60.2295694700243, 24.9342805680028 60.2295716485528, 24.9342814344319 60.229573808539, 24.9342825129174 60.2295759447791, 24.9342838008613 60.2295780521269, 24.9342852951607 60.2295801255054, 24.934286992216 60.2295821599198, 24.9342888879386 60.2295841504689, 24.9342909777618 60.2295860923574, 24.9342932566509 60.229587980907, 24.934295719116 60.229589811568, 24.9342983592246 60.2295915799303, 24.9343011706168 60.2295932817336, 24.9343041465194 60.2295949128783, 24.9343072797634 60.2295964694346, 24.9343105628004 60.2295979476527, 24.9343139877213 60.2295993439714, 24.9343175462753 60.2296006550269, 24.9343212298894 60.2296018776607, 24.9343250296894 60.2296030089274, 24.9343289365213 60.2296040461016, 24.9343329409732 60.2296049866846, 24.9343370333979 60.2296058284106, 24.9343412039364 60.2296065692518, 24.9343454425415 60.2296072074233, 24.9343459932647 60.2296072821234, 24.9357279251935 60.22979239053, 24.9360564344451 60.2293621331358, 24.9364731573586 60.2289593826589, 24.9371026813645 60.229007207033, 24.9372497893731 60.2290947604058, 24.9372505010432 60.2290916970778, 24.9372515140733 60.2290886548076, 24.9372528260229 60.2290856409241, 24.9372544337313 60.229082662688, 24.9372563333255 60.2290797272742, 24.9372585202289 60.2290768417543, 24.937260989173 60.2290740130798, 24.9372637342101 60.2290712480651, 24.9372667487268 60.2290685533715, 24.937270025461 60.2290659354907, 24.9372735565187 60.2290634007293, 24.9372773333932 60.2290609551938, 24.9372813469857 60.2290586047757, 24.9372855876271 60.2290563551374, 24.9372900451012 60.2290542116982, 24.9372947086697 60.2290521796221, 24.9372995670977 60.2290502638044, 24.9373046086806 60.2290484688605, 24.937309821273 60.2290467991145, 24.9373151923174 60.229045258589, 24.9373207088743 60.2290438509952, 24.9373263576541 60.2290425797241, 24.9373321250483 60.2290414478383, 24.937337997163 60.2290404580646, 24.9373439598516 60.2290396127875, 24.9373499987496 60.2290389140432, 24.937356099309 60.2290383635151, 24.937362246833 60.2290379625295, 24.9373684265116 60.2290377120524, 24.9373746234577 60.2290376126871, 24.9373808227423 60.2290376646731, 24.9373870094309 60.2290378678852, 24.9373931686194 60.2290382218337, 24.9373992854697 60.229038725666, 24.9374053452459 60.2290393781683, 24.9374113333496 60.2290401777687, 24.937417235355 60.2290411225409, 24.9374230370436 60.2290422102088, 24.9374287244389 60.2290434381523, 24.9374342838394 60.229044803413, 24.937439701852 60.229046302702, 24.9374449654244 60.2290479324074, 24.9374500618762 60.2290496886031, 24.9374549789295 60.2290515670582, 24.937459704739 60.2290535632475, 24.9374616079214 60.2290544254912, 24.9388070334687 60.2296764392684, 24.9388102023065 60.2296779779929, 24.9388132155195 60.2296795921955, 24.9388160658487 60.2296812779873, 24.9388187464274 60.2296830313074, 24.9388212507978 60.2296848479316, 24.9388235729266 60.2296867234838, 24.9388257072197 60.2296886534454, 24.9388276485352 60.229690633167, 24.9388293921964 60.2296926578793, 24.9388309340026 60.2296947227048, 24.9388322702395 60.2296968226688, 24.9388333976878 60.2296989527126, 24.9388343136314 60.2297011077047, 24.9388350158637 60.2297032824534, 24.938835502693 60.2297054717197, 24.9388357729463 60.2297076702293, 24.9388358259725 60.2297098726859, 24.9388356616439 60.2297120737837, 24.9388352803563 60.2297142682198, 24.9388346830282 60.2297164507078, 24.9388338710986 60.2297186159899, 24.9388328465234 60.2297207588497, 24.9388316117709 60.2297228741247, 24.9388301698158 60.2297249567193, 24.9388285241316 60.2297270016162, 24.9388266786831 60.229729003889, 24.9388246379161 60.2297309587141, 24.9388224067468 60.2297328613821, 24.9388199905504 60.2297347073094, 24.9388173951477 60.229736492049, 24.9388146267911 60.2297382113011, 24.93881169215 60.229739860924, 24.9388085982942 60.2297414369436, 24.9388053526769 60.2297429355632, 24.9388019631171 60.2297443531723, 24.9387984377807 60.2297456863559, 24.9387947851604 60.2297469319021, 24.9387914632488 60.2297479558305, 24.9390948607793 60.2296588803352, 24.9396900119737 60.2294841550461, 24.9394874223171 60.2293198478512, 24.938799962067 60.229159950719, 24.9384889631233 60.2294313681294, 24.9382113952431 60.2293030450244, 24.9375163915131 60.2289817266412, 24.9375037161273 60.2289755715908, 24.9374916632483 60.2289691146194, 24.9374802619127 60.2289623712825, 24.9374695395872 60.2289553578256, 24.9374595221026 60.2289480911449, 24.9374502335915 60.2289405887467, 24.9374416964307 60.228932868705, 24.9374339311863 60.2289249496182, 24.9374269565652 60.2289168505643, 24.9374207893694 60.2289085910547, 24.9374154444556 60.2289001909873, 24.9374109346997 60.2288916705989, 24.9374072709653 60.2288830504157, 24.9374044620782 60.2288743512048, 24.9374025148045 60.2288655939233, 24.9374014338347 60.2288567996683, 24.9374014330738 60.2288567892998, 24.9376966678846 60.2288712107176, 24.9378974810495 60.2289743913417, 24.9383378519653 60.2290407944473, 24.9384032947399 60.2289240805279, 24.9381392978166 60.2286093094113, 24.9382265882778 60.2282711207616, 24.9401949065977 60.2284968237265, 24.9401179621003 60.2285142371326, 24.9398252508735 60.2289977519195, 24.9399872467414 60.229909683225, 24.9398374423068 60.2298763796469, 24.93938748826 60.2299931130746, 24.9394047190421 60.2300175949517, 24.9394239192635 60.2300492240256, 24.9394399758837 60.2300812835514, 24.9394528502122 60.2301136962961, 24.9394625112248 60.2301463841754, 24.9394689356375 60.2301792684422, 24.939472107964 60.2302122698758, 24.9394720205519 60.2302453089731, 24.9394696519488 60.2302713427181, 24.9394637387903 60.230304245328, 24.9394623855745 60.2303099253681, 24.939250244921 60.2302842962319, 24.9392544474078 60.2302566215825, 24.939255914444 60.2302288777136, 24.9392546425023 60.2302011314628, 24.9392506346538 60.2301734496729, 24.9392439005606 60.2301458990318, 24.9392344564525 60.2301185459107, 24.9392223250876 60.2300914562054, 24.939207535698 60.2300646951765, 24.9391901239183 60.2300383272927, 24.939184524812 60.2300306763451, 24.9391812339971 60.2300265874595, 24.9391775437399 60.2300225838065, 24.9391734629307 60.2300186750313, 24.9391690014007 60.2300148705503, 24.9391641698981 60.2300111795288, 24.939163595193 60.2300107656894, 24.9391583643623 60.23000721056, 24.9391527890869 60.2300037873636, 24.9391468827978 60.2300005043466, 24.9391406597241 60.2299973694183, 24.9391341348577 60.2299943901308, 24.9391273239174 60.2299915736615, 24.9391202433115 60.2299889267954, 24.9391129100976 60.2299864559091, 24.9391053419421 60.2299841669552, 24.9390975570772 60.2299820654477, 24.9390895742573 60.2299801564495, 24.9390814127134 60.2299784445594, 24.9390730921076 60.2299769339016, 24.9390646324845 60.2299756281151, 24.9390560542241 60.229974530346, 24.9390473779921 60.2299736432386, 24.9390386246899 60.2299729689301, 24.939029815405 60.229972509045, 24.9390223277376 60.2299722881175, 24.9384153854996 60.2301573768574, 24.9383541795219 60.2301760432174, 24.934042870136 60.2296550961494, 24.9339869280171 60.2277848597475, 24.9341903407263 60.2278081926, 24.934279259344 60.229565078365)), ((24.9399913701077 60.229926609924, 24.9412256485359 60.2298293209761, 24.9423443845132 60.2298338523999, 24.942274146169 60.2306495670681, 24.9400963863843 60.2303865134615, 24.9401017038283 60.2303791165759, 24.9400670954993 60.2302367921547, 24.9399913701077 60.229926609924)))"  # noqa: E501
            ),
            metadata={
                "area": "217661.932557",
                "type_name": "Maarekisterikiinteistö",
                "state_name": "Voimassa",
                "repeal_date": None,
                "type_identifier": "M",
                "state_identifier": "1",
                "intended_use_name": None,
                "registration_date": "1826-09-23",
                "property_identifier": "09142200050002",
                "intended_use_identifier": "_",
            },
            source=area_source,
        ),
        # No 'area' value in metadata
        area_factory(
            type=AreaType.REAL_PROPERTY,
            identifier="09102802390004",
            external_id="13986",
            geometry=GEOSGeometry(
                "MULTIPOLYGON (((24.9341599424874 60.2272075175174, 24.9355725044419 60.2279667321537, 24.9367039545191 60.2285748197339, 24.9364731573586 60.2289593826589, 24.9360564344451 60.2293621331358, 24.9357279251935 60.22979239053, 24.9343459932647 60.2296072821234, 24.9343417466265 60.2296066573017, 24.9343375667474 60.2296059295982, 24.9343334636973 60.2296051007661, 24.9343294473607 60.2296041728021, 24.9343255274133 60.2296031479417, 24.9343217132989 60.229602028654, 24.9343180142057 60.2296008176354, 24.9343144390455 60.2295995178034, 24.9343109964309 60.2295981322893, 24.9343076946556 60.2295966644311, 24.9343045416738 60.2295951177648, 24.9343015450815 60.2295934960167, 24.9342987120975 60.2295918030936, 24.9342960495468 60.229590043074, 24.9342935638438 60.2295882201979, 24.9342912609766 60.2295863388567, 24.9342891464932 60.2295844035829, 24.9342872254873 60.2295824190386, 24.9342855025868 60.2295803900048, 24.9342839819425 60.2295783213697, 24.9342826672176 60.2295762181167, 24.9342815615792 60.2295740853128, 24.934280667691 60.2295719280962, 24.9342799877065 60.2295697516637, 24.9342795232635 60.2295675612585, 24.9342792754812 60.2295653621576, 24.934279259344 60.229565078365, 24.9341903407263 60.2278081926, 24.9341599424874 60.2272075175174)))"  # noqa: E501
            ),
            metadata={
                "area": None,  # Area missing
                "type_name": "Tontti",
                "state_name": "Voimassa",
                "repeal_date": None,
                "type_identifier": "T",
                "state_identifier": "1",
                "intended_use_name": "ASUNTO-TAI LIIKE",
                "registration_date": "1962-09-28",
                "property_identifier": "09102802390004",
                "intended_use_identifier": "AL",
            },
            source=area_source,
        ),
    ]

    return {**area_test_data, "intersect_areas": intersect_areas}


@pytest.fixture
def invoices_test_data(
    lease_factory, contact_factory, tenant_factory, invoice_factory, invoice_row_factory
):
    receivable_type = ReceivableType.objects.get(pk=1)

    lease = lease_factory(
        type_id=1, municipality_id=1, district_id=5, notice_period_id=1
    )

    tenant1 = tenant_factory(lease=lease, share_numerator=1, share_denominator=2)
    tenant2 = tenant_factory(lease=lease, share_numerator=1, share_denominator=2)

    contact1 = contact_factory(
        first_name="First name", last_name="Last name", type=ContactType.PERSON
    )
    contact2 = contact_factory(
        first_name="First name 2", last_name="Last name 2", type=ContactType.PERSON
    )

    billing_period_start_date = datetime.date(year=2018, month=1, day=1)
    billing_period_end_date = datetime.date(year=2018, month=12, day=31)

    # Same recipients and tenants
    invoice1 = invoice_factory(
        lease=lease,
        total_amount=Decimal(500),
        billed_amount=Decimal(500),
        outstanding_amount=Decimal(500),
        due_date=datetime.date(year=2018, month=10, day=15),
        recipient=contact1,
        billing_period_start_date=billing_period_start_date,
        billing_period_end_date=billing_period_end_date,
    )

    invoice_row_factory(
        invoice=invoice1,
        tenant=tenant1,
        receivable_type=receivable_type,
        billing_period_start_date=billing_period_start_date,
        billing_period_end_date=billing_period_end_date,
        amount=Decimal(500),
    )

    invoice2 = invoice_factory(
        lease=lease,
        total_amount=Decimal(100),
        billed_amount=Decimal(100),
        outstanding_amount=Decimal(100),
        due_date=datetime.date(year=2018, month=10, day=1),
        recipient=contact1,
        billing_period_start_date=billing_period_start_date,
        billing_period_end_date=billing_period_end_date,
    )

    invoice_row_factory(
        invoice=invoice2,
        tenant=tenant1,
        receivable_type=receivable_type,
        billing_period_start_date=billing_period_start_date,
        billing_period_end_date=billing_period_end_date,
        amount=Decimal(100),
    )

    return {
        "lease": lease,
        "tenant1": tenant1,
        "tenant2": tenant2,
        "contact1": contact1,
        "contact2": contact2,
        "invoice1": invoice1,
        "invoice2": invoice2,
    }


@pytest.fixture
def lease_data_dict_with_contacts(contact_factory):
    test_contacts = [
        contact_factory(
            first_name="First name",
            last_name="Last name",
            is_lessor=True,
            type=ContactType.PERSON,
        )
    ]
    for i in range(3):
        test_contacts.append(
            contact_factory(
                first_name="First name " + str(i),
                last_name="Last name " + str(i),
                type=ContactType.PERSON,
            )
        )

    data = {
        "state": "lease",
        "classification": "public",
        "intended_use_note": "Intended use note...",
        "transferable": True,
        "regulated": False,
        "notice_note": "Notice note...",
        "type": 1,
        "municipality": 1,
        "district": 31,
        "intended_use": 1,
        "supportive_housing": 5,
        "statistical_use": 1,
        "financing": 1,
        "management": 1,
        "regulation": 1,
        "hitas": 1,
        "notice_period": 1,
        "lessor": test_contacts[0].id,
        "tenants": [
            {
                "share_numerator": 1,
                "share_denominator": 2,
                "reference": "123",
                "tenantcontact_set": [
                    {
                        "type": "tenant",
                        "contact": test_contacts[1].id,
                        "start_date": timezone.now().date(),
                    },
                    {
                        "type": "billing",
                        "contact": test_contacts[3].id,
                        "start_date": timezone.now().date(),
                    },
                ],
            },
            {
                "share_numerator": 1,
                "share_denominator": 2,
                "reference": "345",
                "tenantcontact_set": [
                    {
                        "type": "tenant",
                        "contact": test_contacts[2].id,
                        "start_date": timezone.now().date(),
                    }
                ],
            },
        ],
        "lease_areas": [
            {
                "identifier": "12345",
                "area": 100,
                "section_area": 100,
                "address": "Testaddress 1",
                "postal_code": "00100",
                "city": "Helsinki",
                "type": "real_property",
                "location": "surface",
                "plots": [
                    {
                        "identifier": "plot-1",
                        "area": 100,
                        "section_area": 100,
                        "address": "Test plotaddress 1",
                        "postal_code": "00100",
                        "city": "Helsinki",
                        "type": "real_property",
                        "registration_date": None,
                        "in_contract": True,
                    }
                ],
            }
        ],
    }
    return data


@pytest.fixture
def land_use_agreement_test_data(
    land_use_agreement_factory,
    land_use_agreement_invoice_factory,
    land_use_agreement_invoice_row_factory,
    land_use_agreement_type_factory,
    land_use_agreement_status_factory,
    land_use_agreement_definition_factory,
    land_use_agreement_address_factory,
    land_use_agreement_decision_factory,
    land_use_agreement_litigant_factory,
    land_use_agreement_litigant_contact_factory,
    land_use_agreement_condition_factory,
    land_use_agreement_condition_form_of_management_factory,
    land_use_agreement_receivable_type_factory,
    user_factory,
    decision_maker_factory,
    contract_factory,
    municipality_factory,
    district_factory,
    contact_factory,
):
    municipality = municipality_factory(name="Helsinki", identifier=10)
    district = district_factory(
        name="Alppila", identifier=22, municipality=municipality
    )
    land_use_agreement_type = land_use_agreement_type_factory(name="Test type")
    land_use_agreement_status = land_use_agreement_status_factory(name="Test status")
    land_use_agreement_definition = land_use_agreement_definition_factory(
        name="Test definition"
    )
    preparer = user_factory(username="test_preparer")
    plan_acceptor = decision_maker_factory(name="test_plan_acceptor")
    land_use_agreement = land_use_agreement_factory(
        type_id=land_use_agreement_type.id,
        preparer=preparer,
        land_use_contract_type=LandUseContractType.LAND_USE_AGREEMENT,
        municipality=municipality,
        district=district,
        status_id=land_use_agreement_status.id,
        definition_id=land_use_agreement_definition.id,
        estimated_completion_year=2021,
        estimated_introduction_year=2020,
        project_area="test project area",
        plan_reference_number="TESTREFNUM",
        plan_number="TESTPLANNUM",
        plan_lawfulness_date=datetime.date(year=2021, month=1, day=1),
        plan_acceptor=plan_acceptor,
    )
    land_use_agreement_address_factory(
        land_use_agreement=land_use_agreement,
        address="Testikatu 1",
        postal_code="00100",
        city="Helsinki",
    )
    contract_factory(
        land_use_agreement=land_use_agreement, type_id=1, contract_number="A123"
    )
    land_use_agreement_decision_factory(
        land_use_agreement=land_use_agreement,
        reference_number="1234",
        decision_maker=decision_maker_factory(name="test_decision_maker"),
    )
    land_use_agreement_condition_factory(
        land_use_agreement=land_use_agreement,
        form_of_management=land_use_agreement_condition_form_of_management_factory(
            name="ARA"
        ),
        subvention_amount=115000,
        compensation_pc=35,
        obligated_area=1000,
        actualized_area=800,
        supervision_date=datetime.date(year=2021, month=1, day=1),
        supervised_date=datetime.date(year=2020, month=1, day=1),
    )

    contact_1 = contact_factory(
        first_name="Litigant First 1",
        last_name="Litigant Last 1",
        type=ContactType.PERSON,
    )
    contacts = [
        contact_1,
        contact_factory(
            first_name="Litigant First 2",
            last_name="Litigant Last 2",
            type=ContactType.PERSON,
        ),
    ]
    litigants = [
        land_use_agreement_litigant_factory(land_use_agreement=land_use_agreement,),
        land_use_agreement_litigant_factory(land_use_agreement=land_use_agreement,),
    ]

    land_use_agreement_litigant_contact_factory(
        type=TenantContactType.TENANT,
        land_use_agreement_litigant=litigants[0],
        contact=contacts[0],
        start_date=timezone.now().replace(year=2019).date(),
    ),
    land_use_agreement_litigant_contact_factory(
        type=TenantContactType.TENANT,
        land_use_agreement_litigant=litigants[1],
        contact=contacts[1],
        start_date=timezone.now().replace(year=2019).date(),
    ),

    land_use_agreement.litigants.set(litigants)

    invoice = land_use_agreement_invoice_factory(
        land_use_agreement=land_use_agreement,
        total_amount=Decimal("123.45"),
        recipient=contact_1,
    )

    land_use_agreement_invoice_row_factory(
        invoice=invoice,
        litigant=litigants[0],
        receivable_type=LandUseAgreementReceivableType.objects.first(),
        compensation_amount=150000,
        increase_percentage=3,
        plan_lawfulness_date=datetime.date(year=2021, month=1, day=1),
        sign_date=datetime.date(year=2020, month=1, day=1),
    )

    invoice.update_amounts()

    return land_use_agreement
