Skip to content

Instantly share code, notes, and snippets.

@ClashTheBunny
Last active March 4, 2017 19:14
Show Gist options
  • Select an option

  • Save ClashTheBunny/505f2b189c67580473826d19259ba3d6 to your computer and use it in GitHub Desktop.

Select an option

Save ClashTheBunny/505f2b189c67580473826d19259ba3d6 to your computer and use it in GitHub Desktop.

Revisions

  1. ClashTheBunny revised this gist Mar 4, 2017. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion index.html
    Original file line number Diff line number Diff line change
    @@ -231,7 +231,7 @@
    count = svg.append("text")
    .attr("class", "count")
    .attr("x", "450")
    .attr("y", "170")
    .attr("y", "130")
    .style({fill: randomColor,
    "font-family": 'Faster One, cursive'})
    .text("0")
  2. ClashTheBunny revised this gist Mar 4, 2017. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions index.html
    Original file line number Diff line number Diff line change
    @@ -86,15 +86,15 @@
    }

    var width = 960,
    height = 505;
    height = 450;

    var svg = d3.select("body").append("svg")
    .attr("width", width)
    .attr("height", height);

    var projection = d3.geo.mercator()
    .center([148.5, -6.5])
    .scale(2200)
    .scale(3000)
    .translate([width / 2, height / 2]);
    var path = d3.geo.path()
    .projection(projection);
  3. ClashTheBunny revised this gist Mar 4, 2017. 1 changed file with 5 additions and 5 deletions.
    10 changes: 5 additions & 5 deletions index.html
    Original file line number Diff line number Diff line change
    @@ -3,7 +3,7 @@
    <style>

    .count {
    font-size: 300px;
    font-size: 100px;
    pointer-events: none;
    }

    @@ -31,7 +31,7 @@

    text {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 30px;
    font-size: 10px;
    pointer-events: none;
    }

    @@ -94,7 +94,7 @@

    var projection = d3.geo.mercator()
    .center([148.5, -6.5])
    .scale(6200)
    .scale(2200)
    .translate([width / 2, height / 2]);
    var path = d3.geo.path()
    .projection(projection);
    @@ -230,8 +230,8 @@

    count = svg.append("text")
    .attr("class", "count")
    .attr("x", "1350")
    .attr("y", "700")
    .attr("x", "450")
    .attr("y", "170")
    .style({fill: randomColor,
    "font-family": 'Faster One, cursive'})
    .text("0")
  4. ClashTheBunny revised this gist Mar 4, 2017. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions index.html
    Original file line number Diff line number Diff line change
    @@ -85,8 +85,8 @@
    return array;
    }

    var width = 1920,
    height = 1080;
    var width = 960,
    height = 505;

    var svg = d3.select("body").append("svg")
    .attr("width", width)
  5. ClashTheBunny revised this gist Mar 4, 2017. 2 changed files with 0 additions and 80 deletions.
    20 changes: 0 additions & 20 deletions places.json
    Original file line number Diff line number Diff line change
    @@ -1,20 +0,0 @@
    {
    "type": "FeatureCollection",
    "features": [
    { "type": "Feature", "properties": { "SCALERANK": 7, "NATSCALE": 20, "LABELRANK": 8, "FEATURECLA": "Populated place", "NAME": "Sohano", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Sohano", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "North Solomons", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -5.4297422013399999, "LONGITUDE": 154.671137512, "CHANGED": 4.0, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted.", "POP_MAX": 2338, "POP_MIN": 2338, "POP_OTHER": 0, "RANK_MAX": 4, "RANK_MIN": 4, "GEONAMEID": -1.0, "MEGANAME": null, "LS_NAME": "Sohano", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2338.0, "MAX_POP20": 2338.0, "MAX_POP50": 0.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 20.0, "MIN_AREAKM": 3.0, "MAX_AREAKM": 3.0, "MIN_AREAMI": 1.0, "MAX_AREAMI": 1.0, "MIN_PERKM": 9.0, "MAX_PERKM": 9.0, "MIN_PERMI": 6.0, "MAX_PERMI": 6.0, "MIN_BBXMIN": 154.66666667000001, "MAX_BBXMIN": 154.66666667000001, "MIN_BBXMAX": 154.68333333000001, "MAX_BBXMAX": 154.68333333000001, "MIN_BBYMIN": -5.43333333, "MAX_BBYMIN": -5.43333333, "MIN_BBYMAX": -5.40833333, "MAX_BBYMAX": -5.40833333, "MEAN_BBXC": 154.675, "MEAN_BBYC": -5.42083333, "COMPARE": 0, "GN_ASCII": null, "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 0.0, "GN_POP": 0.0, "ELEVATION": 0.0, "GTOPO30": 0.0, "TIMEZONE": null, "GEONAMESNO": "No GeoNames match due to small population, not in GeoNames, or poor NEV placement.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 154.671137512130031, -5.429742201338172 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 7, "NATSCALE": 20, "LABELRANK": 8, "FEATURECLA": "Populated place", "NAME": "Kieta", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Kieta", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "North Solomons", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -6.2162756155699999, "LONGITUDE": 155.63333207100001, "CHANGED": 0.0, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 6958, "POP_MIN": 3611, "POP_OTHER": 6958, "RANK_MAX": 5, "RANK_MIN": 4, "GEONAMEID": 2094027.0, "MEGANAME": null, "LS_NAME": "Kieta", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 6958.0, "MAX_POP20": 6958.0, "MAX_POP50": 0.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 20.0, "MIN_AREAKM": 3.0, "MAX_AREAKM": 3.0, "MIN_AREAMI": 1.0, "MAX_AREAMI": 1.0, "MIN_PERKM": 7.0, "MAX_PERKM": 7.0, "MIN_PERMI": 5.0, "MAX_PERMI": 5.0, "MIN_BBXMIN": 155.60833333, "MAX_BBXMIN": 155.60833333, "MIN_BBXMAX": 155.63333333, "MAX_BBXMAX": 155.63333333, "MIN_BBYMIN": -6.225, "MAX_BBYMIN": -6.225, "MIN_BBYMAX": -6.21666667, "MAX_BBYMAX": -6.21666667, "MEAN_BBXC": 155.62083333000001, "MEAN_BBYC": -6.22083333, "COMPARE": 0, "GN_ASCII": "Kieta", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 7.0, "GN_POP": 3611.0, "ELEVATION": 0.0, "GTOPO30": 64.0, "TIMEZONE": "Pacific\/Port_Moresby", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 155.633332071148175, -6.21627561556835 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 7, "NATSCALE": 20, "LABELRANK": 8, "FEATURECLA": "Admin-1 capital", "NAME": "Mendi", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Mendi", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "Southern Highlands", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -6.14439369825, "LONGITUDE": 143.64522660200001, "CHANGED": 4.0, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 26252, "POP_MIN": 17119, "POP_OTHER": 7999, "RANK_MAX": 7, "RANK_MIN": 6, "GEONAMEID": 2090990.0, "MEGANAME": null, "LS_NAME": "Mendi", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 7999.0, "MAX_POP20": 0.0, "MAX_POP50": 0.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 10.0, "MIN_AREAKM": 5.0, "MAX_AREAKM": 5.0, "MIN_AREAMI": 2.0, "MAX_AREAMI": 2.0, "MIN_PERKM": 11.0, "MAX_PERKM": 11.0, "MIN_PERMI": 7.0, "MAX_PERMI": 7.0, "MIN_BBXMIN": 143.64166667000001, "MAX_BBXMIN": 143.64166667000001, "MIN_BBXMAX": 143.65833333, "MAX_BBXMAX": 143.65833333, "MIN_BBYMIN": -6.15, "MAX_BBYMIN": -6.15, "MIN_BBYMAX": -6.11666667, "MAX_BBYMAX": -6.11666667, "MEAN_BBXC": 143.64861111, "MEAN_BBYC": -6.13611111, "COMPARE": 0, "GN_ASCII": "Mendi", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 5.0, "GN_POP": 26252.0, "ELEVATION": 0.0, "GTOPO30": 1850.0, "TIMEZONE": "Pacific\/Port_Moresby", "GEONAMESNO": "GeoNames match with ascii name + lat + long whole numbers.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 143.645226602350249, -6.144393698250383 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 7, "NATSCALE": 20, "LABELRANK": 8, "FEATURECLA": "Populated place", "NAME": "Abau", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Abau", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "Central", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -10.0426053682, "LONGITUDE": 148.565029662, "CHANGED": 0.0, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 230, "POP_MIN": 230, "POP_OTHER": 230, "RANK_MAX": 2, "RANK_MIN": 2, "GEONAMEID": -1.0, "MEGANAME": null, "LS_NAME": "Abau", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 230.0, "MAX_POP20": 230.0, "MAX_POP50": 0.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 20.0, "MIN_AREAKM": 1.0, "MAX_AREAKM": 1.0, "MIN_AREAMI": 0.0, "MAX_AREAMI": 0.0, "MIN_PERKM": 4.0, "MAX_PERKM": 4.0, "MIN_PERMI": 2.0, "MAX_PERMI": 2.0, "MIN_BBXMIN": 148.55833333000001, "MAX_BBXMIN": 148.55833333000001, "MIN_BBXMAX": 148.56666667, "MAX_BBXMAX": 148.56666667, "MIN_BBYMIN": -10.05, "MAX_BBYMIN": -10.05, "MIN_BBYMAX": -10.04166667, "MAX_BBYMAX": -10.04166667, "MEAN_BBXC": 148.5625, "MEAN_BBYC": -10.04583333, "COMPARE": 0, "GN_ASCII": null, "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 0.0, "GN_POP": 0.0, "ELEVATION": 0.0, "GTOPO30": 0.0, "TIMEZONE": null, "GEONAMESNO": "No GeoNames match due to small population, not in GeoNames, or poor NEV placement.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 148.565029662265601, -10.042605368187822 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 7, "NATSCALE": 20, "LABELRANK": 8, "FEATURECLA": "Admin-1 capital", "NAME": "Alotau", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Alotau", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "Milne Bay", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -10.302072734699999, "LONGITUDE": 150.459074259, "CHANGED": 0.0, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 11624, "POP_MIN": 11624, "POP_OTHER": 0, "RANK_MAX": 6, "RANK_MIN": 6, "GEONAMEID": -1.0, "MEGANAME": null, "LS_NAME": "Alotau", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 11624.0, "MAX_POP20": 11624.0, "MAX_POP50": 0.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 20.0, "MIN_AREAKM": 4.0, "MAX_AREAKM": 4.0, "MIN_AREAMI": 2.0, "MAX_AREAMI": 2.0, "MIN_PERKM": 11.0, "MAX_PERKM": 11.0, "MIN_PERMI": 7.0, "MAX_PERMI": 7.0, "MIN_BBXMIN": 150.43333333000001, "MAX_BBXMIN": 150.43333333000001, "MIN_BBXMAX": 150.45833333, "MAX_BBXMAX": 150.45833333, "MIN_BBYMIN": -10.325, "MAX_BBYMIN": -10.325, "MIN_BBYMAX": -10.3, "MAX_BBYMAX": -10.3, "MEAN_BBXC": 150.44916667000001, "MEAN_BBYC": -10.30916667, "COMPARE": 0, "GN_ASCII": null, "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 0.0, "GN_POP": 0.0, "ELEVATION": 0.0, "GTOPO30": 0.0, "TIMEZONE": null, "GEONAMESNO": "No GeoNames match due to small population, not in GeoNames, or poor NEV placement.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 150.459074258627311, -10.302072734725243 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 7, "NATSCALE": 20, "LABELRANK": 8, "FEATURECLA": "Admin-1 capital", "NAME": "Popondetta", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Popondetta", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "Northern", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -8.7691947236499992, "LONGITUDE": 148.248408162, "CHANGED": 0.0, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 28198, "POP_MIN": 22186, "POP_OTHER": 0, "RANK_MAX": 7, "RANK_MIN": 7, "GEONAMEID": 2088163.0, "MEGANAME": null, "LS_NAME": "Popondetta", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 22186.0, "MAX_POP20": 22186.0, "MAX_POP50": 0.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 20.0, "MIN_AREAKM": 8.0, "MAX_AREAKM": 8.0, "MIN_AREAMI": 3.0, "MAX_AREAMI": 3.0, "MIN_PERKM": 17.0, "MAX_PERKM": 17.0, "MIN_PERMI": 10.0, "MAX_PERMI": 10.0, "MIN_BBXMIN": 148.225, "MAX_BBXMIN": 148.225, "MIN_BBXMAX": 148.25833333, "MAX_BBXMAX": 148.25833333, "MIN_BBYMIN": -8.775, "MAX_BBYMIN": -8.775, "MIN_BBYMAX": -8.73333333, "MAX_BBYMAX": -8.73333333, "MEAN_BBXC": 148.24166667, "MEAN_BBYC": -8.755, "COMPARE": 0, "GN_ASCII": "Popondetta", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 4.0, "GN_POP": 28198.0, "ELEVATION": 0.0, "GTOPO30": 161.0, "TIMEZONE": "Pacific\/Port_Moresby", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 148.24840816161327, -8.769194723651424 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 7, "NATSCALE": 20, "LABELRANK": 8, "FEATURECLA": "Populated place", "NAME": "Hoskins", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Hoskins", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "West New Britain", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -5.4746154593199998, "LONGITUDE": 150.40998164800001, "CHANGED": 0.0, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 871, "POP_MIN": 871, "POP_OTHER": 0, "RANK_MAX": 2, "RANK_MIN": 2, "GEONAMEID": -1.0, "MEGANAME": null, "LS_NAME": "Hoskins", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 871.0, "MAX_POP20": 0.0, "MAX_POP50": 0.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 10.0, "MIN_AREAKM": 2.0, "MAX_AREAKM": 2.0, "MIN_AREAMI": 1.0, "MAX_AREAMI": 1.0, "MIN_PERKM": 6.0, "MAX_PERKM": 6.0, "MIN_PERMI": 3.0, "MAX_PERMI": 3.0, "MIN_BBXMIN": 150.4, "MAX_BBXMIN": 150.4, "MIN_BBXMAX": 150.40833333, "MAX_BBXMAX": 150.40833333, "MIN_BBYMIN": -5.46666667, "MAX_BBYMIN": -5.46666667, "MIN_BBYMAX": -5.45, "MAX_BBYMAX": -5.45, "MEAN_BBXC": 150.40416667, "MEAN_BBYC": -5.45833333, "COMPARE": 0, "GN_ASCII": null, "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 0.0, "GN_POP": 0.0, "ELEVATION": 0.0, "GTOPO30": 0.0, "TIMEZONE": null, "GEONAMESNO": "No GeoNames match due to small population, not in GeoNames, or poor NEV placement.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 150.40998164795019, -5.474615459315373 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 8, "FEATURECLA": "Admin-1 capital", "NAME": "Wewak", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Wewak", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "East Sepik", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -3.5534924124299998, "LONGITUDE": 143.636699991, "CHANGED": 1.0, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 25143, "POP_MIN": 18230, "POP_OTHER": 0, "RANK_MAX": 7, "RANK_MIN": 6, "GEONAMEID": 2083537.0, "MEGANAME": null, "LS_NAME": "Wewak", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 576.0, "MAX_POP20": 576.0, "MAX_POP50": 0.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 20.0, "MIN_AREAKM": 1.0, "MAX_AREAKM": 1.0, "MIN_AREAMI": 0.0, "MAX_AREAMI": 0.0, "MIN_PERKM": 4.0, "MAX_PERKM": 4.0, "MIN_PERMI": 2.0, "MAX_PERMI": 2.0, "MIN_BBXMIN": 143.625, "MAX_BBXMIN": 143.625, "MIN_BBXMAX": 143.63333333, "MAX_BBXMAX": 143.63333333, "MIN_BBYMIN": -3.55833333, "MAX_BBYMIN": -3.55833333, "MIN_BBYMAX": -3.55, "MAX_BBYMAX": -3.55, "MEAN_BBXC": 143.62916667, "MEAN_BBYC": -3.55416667, "COMPARE": 0, "GN_ASCII": "Wewak", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 11.0, "GN_POP": 18230.0, "ELEVATION": 0.0, "GTOPO30": -9999.0, "TIMEZONE": "Pacific\/Port_Moresby", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 143.636699991021942, -3.553492412432718 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 8, "FEATURECLA": "Admin-1 capital", "NAME": "Madang", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Madang", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "Madang", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -5.2248115856200004, "LONGITUDE": 145.78525101599999, "CHANGED": 1.0, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 62023, "POP_MIN": 27419, "POP_OTHER": 62023, "RANK_MAX": 8, "RANK_MIN": 7, "GEONAMEID": 2091996.0, "MEGANAME": null, "LS_NAME": "Madang", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 62023.0, "MAX_POP20": 62023.0, "MAX_POP50": 0.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 20.0, "MIN_AREAKM": 20.0, "MAX_AREAKM": 20.0, "MIN_AREAMI": 8.0, "MAX_AREAMI": 8.0, "MIN_PERKM": 26.0, "MAX_PERKM": 26.0, "MIN_PERMI": 16.0, "MAX_PERMI": 16.0, "MIN_BBXMIN": 145.76666667000001, "MAX_BBXMIN": 145.76666667000001, "MIN_BBXMAX": 145.81666667, "MAX_BBXMAX": 145.81666667, "MIN_BBYMIN": -5.25, "MAX_BBYMIN": -5.25, "MIN_BBYMAX": -5.19166667, "MAX_BBYMAX": -5.19166667, "MEAN_BBXC": 145.78993056, "MEAN_BBYC": -5.22222222, "COMPARE": 0, "GN_ASCII": "Madang", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 12.0, "GN_POP": 27419.0, "ELEVATION": 0.0, "GTOPO30": 1.0, "TIMEZONE": "Pacific\/Port_Moresby", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 145.785251016421171, -5.224811585616408 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 8, "FEATURECLA": "Admin-1 capital", "NAME": "Kavieng", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Kavieng", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "New Ireland", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -2.5812843228700002, "LONGITUDE": 150.81297647700001, "CHANGED": 1.0, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted. Changed scale rank.", "POP_MAX": 19728, "POP_MIN": 14490, "POP_OTHER": 19728, "RANK_MAX": 6, "RANK_MIN": 6, "GEONAMEID": 2094342.0, "MEGANAME": null, "LS_NAME": "Kavieng", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 19728.0, "MAX_POP20": 0.0, "MAX_POP50": 0.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 10.0, "MIN_AREAKM": 6.0, "MAX_AREAKM": 6.0, "MIN_AREAMI": 2.0, "MAX_AREAMI": 2.0, "MIN_PERKM": 13.0, "MAX_PERKM": 13.0, "MIN_PERMI": 8.0, "MAX_PERMI": 8.0, "MIN_BBXMIN": 150.78333333, "MAX_BBXMIN": 150.78333333, "MIN_BBXMAX": 150.80833333000001, "MAX_BBXMAX": 150.80833333000001, "MIN_BBYMIN": -2.6, "MAX_BBYMIN": -2.6, "MIN_BBYMAX": -2.56666667, "MAX_BBYMAX": -2.56666667, "MEAN_BBXC": 150.79583333, "MEAN_BBYC": -2.58392857, "COMPARE": 0, "GN_ASCII": "Kavieng", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 15.0, "GN_POP": 14490.0, "ELEVATION": 0.0, "GTOPO30": 1.0, "TIMEZONE": "Pacific\/Port_Moresby", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 150.812976476799236, -2.581284322871966 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-1 capital", "NAME": "Goroka", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Goroka", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "Eastern Highlands", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -6.0833121552799998, "LONGITUDE": 145.38548213600001, "CHANGED": 0.0, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 39699, "POP_MIN": 18503, "POP_OTHER": 40514, "RANK_MAX": 7, "RANK_MIN": 6, "GEONAMEID": 2096742.0, "MEGANAME": null, "LS_NAME": "Goroka", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 39699.0, "MAX_POP20": 39699.0, "MAX_POP50": 39699.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 50.0, "MIN_AREAKM": 17.0, "MAX_AREAKM": 17.0, "MIN_AREAMI": 7.0, "MAX_AREAMI": 7.0, "MIN_PERKM": 28.0, "MAX_PERKM": 28.0, "MIN_PERMI": 17.0, "MAX_PERMI": 17.0, "MIN_BBXMIN": 145.36666667, "MAX_BBXMIN": 145.36666667, "MIN_BBXMAX": 145.40833333, "MAX_BBXMAX": 145.40833333, "MIN_BBYMIN": -6.1, "MAX_BBYMIN": -6.1, "MIN_BBYMAX": -6.03333333, "MAX_BBYMAX": -6.03333333, "MEAN_BBXC": 145.38625, "MEAN_BBYC": -6.0675, "COMPARE": 0, "GN_ASCII": "Goroka", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 9.0, "GN_POP": 18503.0, "ELEVATION": 0.0, "GTOPO30": 1515.0, "TIMEZONE": "Pacific\/Port_Moresby", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 145.385482136211181, -6.083312155281362 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-1 capital", "NAME": "Mt. Hagen", "NAMEPAR": null, "NAMEALT": "Mount Hagen", "DIFFASCII": 0, "NAMEASCII": "Mt. Hagen", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "Western Highlands", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -5.8632222301499999, "LONGITUDE": 144.21681962, "CHANGED": 0.0, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 59064, "POP_MIN": 33623, "POP_OTHER": 59064, "RANK_MAX": 8, "RANK_MIN": 7, "GEONAMEID": 2090409.0, "MEGANAME": null, "LS_NAME": "Mt. Hagen", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 59064.0, "MAX_POP20": 59064.0, "MAX_POP50": 59064.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 50.0, "MIN_AREAKM": 38.0, "MAX_AREAKM": 38.0, "MIN_AREAMI": 15.0, "MAX_AREAMI": 15.0, "MIN_PERKM": 63.0, "MAX_PERKM": 63.0, "MIN_PERMI": 39.0, "MAX_PERMI": 39.0, "MIN_BBXMIN": 144.20833333, "MAX_BBXMIN": 144.20833333, "MIN_BBXMAX": 144.30833333000001, "MAX_BBXMAX": 144.30833333000001, "MIN_BBYMIN": -5.875, "MAX_BBYMIN": -5.875, "MIN_BBYMAX": -5.8, "MAX_BBYMAX": -5.8, "MEAN_BBXC": 144.24601852000001, "MEAN_BBYC": -5.83805556, "COMPARE": 0, "GN_ASCII": "Mount Hagen", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 16.0, "GN_POP": 33623.0, "ELEVATION": 0.0, "GTOPO30": 1997.0, "TIMEZONE": "Pacific\/Port_Moresby", "GEONAMESNO": "GeoNames spatial join with similar names only.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 144.216819619930561, -5.863222230150257 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-1 capital", "NAME": "Rabaul", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Rabaul", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "East New Britain", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -4.2054903852500001, "LONGITUDE": 152.143430725, "CHANGED": 0.0, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 8074, "POP_MIN": 3714, "POP_OTHER": 3876, "RANK_MAX": 5, "RANK_MIN": 4, "GEONAMEID": 2087894.0, "MEGANAME": null, "LS_NAME": "Rabaul", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3714.0, "MAX_POP20": 3714.0, "MAX_POP50": 3714.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 50.0, "MIN_AREAKM": 6.0, "MAX_AREAKM": 6.0, "MIN_AREAMI": 2.0, "MAX_AREAMI": 2.0, "MIN_PERKM": 15.0, "MAX_PERKM": 15.0, "MIN_PERMI": 9.0, "MAX_PERMI": 9.0, "MIN_BBXMIN": 152.13333333, "MAX_BBXMIN": 152.13333333, "MIN_BBXMAX": 152.15, "MAX_BBXMAX": 152.15, "MIN_BBYMIN": -4.20833333, "MAX_BBYMIN": -4.20833333, "MIN_BBYMAX": -4.15833333, "MAX_BBYMAX": -4.15833333, "MEAN_BBXC": 152.1422619, "MEAN_BBYC": -4.18392857, "COMPARE": 0, "GN_ASCII": "Rabaul", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 10.0, "GN_POP": 8074.0, "ELEVATION": 0.0, "GTOPO30": 12.0, "TIMEZONE": "Pacific\/Port_Moresby", "GEONAMESNO": "GeoNames match with ascii name + lat + long whole numbers.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 152.143430725242979, -4.205490385246037 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-1 capital", "NAME": "Lae", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Lae", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "Morobe", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -6.7329882620500001, "LONGITUDE": 146.99003535899999, "CHANGED": 0.0, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 131052, "POP_MIN": 76255, "POP_OTHER": 131221, "RANK_MAX": 9, "RANK_MIN": 8, "GEONAMEID": 2092740.0, "MEGANAME": null, "LS_NAME": "Lae", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 131052.0, "MAX_POP20": 131052.0, "MAX_POP50": 131052.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 50.0, "MIN_AREAKM": 58.0, "MAX_AREAKM": 58.0, "MIN_AREAMI": 22.0, "MAX_AREAMI": 22.0, "MIN_PERKM": 72.0, "MAX_PERKM": 72.0, "MIN_PERMI": 45.0, "MAX_PERMI": 45.0, "MIN_BBXMIN": 146.95, "MAX_BBXMIN": 146.95, "MIN_BBXMAX": 147.05, "MAX_BBXMAX": 147.05, "MIN_BBYMIN": -6.74166667, "MAX_BBYMIN": -6.74166667, "MIN_BBYMAX": -6.64166667, "MAX_BBYMAX": -6.64166667, "MEAN_BBXC": 147.00098039, "MEAN_BBYC": -6.70134804, "COMPARE": 0, "GN_ASCII": "Lae", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 14.0, "GN_POP": 76255.0, "ELEVATION": 0.0, "GTOPO30": 5.0, "TIMEZONE": "Pacific\/Port_Moresby", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 146.990035358873911, -6.732988262054789 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Port Moresby", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Port Moresby", "ADM0CAP": 1.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "Central", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -9.4647078258700006, "LONGITUDE": 147.19250362099999, "CHANGED": 0.0, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 283733, "POP_MIN": 251136, "POP_OTHER": 251304, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 2088122.0, "MEGANAME": null, "LS_NAME": "Port Moresby", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 251136.0, "MAX_POP20": 251136.0, "MAX_POP50": 251136.0, "MAX_POP300": 251136.0, "MAX_POP310": 0.0, "MAX_NATSCA": 100.0, "MIN_AREAKM": 89.0, "MAX_AREAKM": 89.0, "MIN_AREAMI": 35.0, "MAX_AREAMI": 35.0, "MIN_PERKM": 92.0, "MAX_PERKM": 92.0, "MIN_PERMI": 57.0, "MAX_PERMI": 57.0, "MIN_BBXMIN": 147.14166667000001, "MAX_BBXMIN": 147.14166667000001, "MIN_BBXMAX": 147.24166667, "MAX_BBXMAX": 147.24166667, "MIN_BBYMIN": -9.50833333, "MAX_BBYMIN": -9.50833333, "MIN_BBYMAX": -9.35833333, "MAX_BBYMAX": -9.35833333, "MEAN_BBXC": 147.18537736, "MEAN_BBYC": -9.43349057, "COMPARE": 0, "GN_ASCII": "Port Moresby", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 20.0, "GN_POP": 283733.0, "ELEVATION": 0.0, "GTOPO30": 50.0, "TIMEZONE": "Pacific\/Port_Moresby", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 147.192503620593584, -9.464707825867777 ] } }
    ]
    }
    60 changes: 0 additions & 60 deletions subunits.json
    0 additions, 60 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
  6. ClashTheBunny revised this gist Mar 4, 2017. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions build_png.json.sh
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,7 @@
    #!/bin/sh

    wget http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_populated_places.zip

    unzip ne_10m_populated_places.zip ne_10m_populated_places.shp

    ogr2ogr -f GeoJSON \
  7. ClashTheBunny revised this gist Mar 4, 2017. 1 changed file with 8 additions and 0 deletions.
    8 changes: 8 additions & 0 deletions build_png.json.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,8 @@
    #!/bin/sh

    unzip ne_10m_populated_places.zip ne_10m_populated_places.shp

    ogr2ogr -f GeoJSON \
    -where "ISO_A2 = 'PG' AND SCALERANK < 10" places.json ne_10m_populated_places.shp

    topojson -o png.json --id-property gn_id --properties -- subunits.json places.json
  8. ClashTheBunny revised this gist Mar 4, 2017. 10 changed files with 671 additions and 3 deletions.
    1 change: 1 addition & 0 deletions .gitignore
    Original file line number Diff line number Diff line change
    @@ -0,0 +1 @@
    ne_10m_*
    26 changes: 26 additions & 0 deletions LICENSE.d3
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,26 @@
    Copyright (c) 2010-2016, Michael Bostock
    All rights reserved.

    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:

    * Redistributions of source code must retain the above copyright notice, this
    list of conditions and the following disclaimer.

    * Redistributions in binary form must reproduce the above copyright notice,
    this list of conditions and the following disclaimer in the documentation
    and/or other materials provided with the distribution.

    * The name Michael Bostock may not be used to endorse or promote products
    derived from this software without specific prior written permission.

    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT,
    INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
    BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
    OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    5 changes: 5 additions & 0 deletions README.topoJSON.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,5 @@
    # TopoJSON

    **TopoJSON** is an extension of GeoJSON that encodes topology. Rather than representing geometries discretely, geometries in TopoJSON files are stitched together from shared line segments called *arcs*. TopoJSON eliminates redundancy, offering much more compact representations of geometry than with GeoJSON; typical TopoJSON files are 80% smaller than their GeoJSON equivalents. In addition, TopoJSON facilitates applications that use topology, such as [topology-preserving shape simplification](http://bost.ocks.org/mike/simplify/), [automatic map coloring](http://bl.ocks.org/4188334), and [cartograms](http://prag.ma/code/d3-cartogram/).

    Want to learn more? [See the wiki.](https://github.com/mbostock/topojson/wiki)
    5 changes: 5 additions & 0 deletions browser-polyfill.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,5 @@
    (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){(function(global){"use strict";if(global._babelPolyfill){throw new Error("only one instance of babel/polyfill is allowed")}global._babelPolyfill=true;require("core-js/shim");require("regenerator/runtime")}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"core-js/shim":72,"regenerator/runtime":73}],2:[function(require,module,exports){"use strict";var $=require("./$");module.exports=function(IS_INCLUDES){return function(el){var O=$.toObject(this),length=$.toLength(O.length),index=$.toIndex(arguments[1],length),value;if(IS_INCLUDES&&el!=el)while(length>index){value=O[index++];if(value!=value)return true}else for(;length>index;index++)if(IS_INCLUDES||index in O){if(O[index]===el)return IS_INCLUDES||index}return!IS_INCLUDES&&-1}}},{"./$":16}],3:[function(require,module,exports){"use strict";var $=require("./$"),ctx=require("./$.ctx");module.exports=function(TYPE){var IS_MAP=TYPE==1,IS_FILTER=TYPE==2,IS_SOME=TYPE==3,IS_EVERY=TYPE==4,IS_FIND_INDEX=TYPE==6,NO_HOLES=TYPE==5||IS_FIND_INDEX;return function(callbackfn){var O=Object($.assertDefined(this)),self=$.ES5Object(O),f=ctx(callbackfn,arguments[1],3),length=$.toLength(self.length),index=0,result=IS_MAP?Array(length):IS_FILTER?[]:undefined,val,res;for(;length>index;index++)if(NO_HOLES||index in self){val=self[index];res=f(val,index,O);if(TYPE){if(IS_MAP)result[index]=res;else if(res)switch(TYPE){case 3:return true;case 5:return val;case 6:return index;case 2:result.push(val)}else if(IS_EVERY)return false}}return IS_FIND_INDEX?-1:IS_SOME||IS_EVERY?IS_EVERY:result}}},{"./$":16,"./$.ctx":10}],4:[function(require,module,exports){var $=require("./$");function assert(condition,msg1,msg2){if(!condition)throw TypeError(msg2?msg1+msg2:msg1)}assert.def=$.assertDefined;assert.fn=function(it){if(!$.isFunction(it))throw TypeError(it+" is not a function!");return it};assert.obj=function(it){if(!$.isObject(it))throw TypeError(it+" is not an object!");return it};assert.inst=function(it,Constructor,name){if(!(it instanceof Constructor))throw TypeError(name+": use the 'new' operator!");return it};module.exports=assert},{"./$":16}],5:[function(require,module,exports){var $=require("./$");module.exports=Object.assign||function assign(target,source){var T=Object($.assertDefined(target)),l=arguments.length,i=1;while(l>i){var S=$.ES5Object(arguments[i++]),keys=$.getKeys(S),length=keys.length,j=0,key;while(length>j)T[key=keys[j++]]=S[key]}return T}},{"./$":16}],6:[function(require,module,exports){var $=require("./$"),TAG=require("./$.wks")("toStringTag"),toString={}.toString;function cof(it){return toString.call(it).slice(8,-1)}cof.classof=function(it){var O,T;return it==undefined?it===undefined?"Undefined":"Null":typeof(T=(O=Object(it))[TAG])=="string"?T:cof(O)};cof.set=function(it,tag,stat){if(it&&!$.has(it=stat?it:it.prototype,TAG))$.hide(it,TAG,tag)};module.exports=cof},{"./$":16,"./$.wks":27}],7:[function(require,module,exports){"use strict";var $=require("./$"),ctx=require("./$.ctx"),safe=require("./$.uid").safe,assert=require("./$.assert"),$iter=require("./$.iter"),has=$.has,set=$.set,isObject=$.isObject,hide=$.hide,step=$iter.step,isFrozen=Object.isFrozen||$.core.Object.isFrozen,ID=safe("id"),O1=safe("O1"),LAST=safe("last"),FIRST=safe("first"),ITER=safe("iter"),SIZE=$.DESC?safe("size"):"size",id=0;function fastKey(it,create){if(!isObject(it))return(typeof it=="string"?"S":"P")+it;if(isFrozen(it))return"F";if(!has(it,ID)){if(!create)return"E";hide(it,ID,++id)}return"O"+it[ID]}function getEntry(that,key){var index=fastKey(key),entry;if(index!="F")return that[O1][index];for(entry=that[FIRST];entry;entry=entry.n){if(entry.k==key)return entry}}module.exports={getConstructor:function(NAME,IS_MAP,ADDER){function C(iterable){var that=assert.inst(this,C,NAME);set(that,O1,$.create(null));set(that,SIZE,0);set(that,LAST,undefined);set(that,FIRST,undefined);if(iterable!=undefined)$iter.forOf(iterable,IS_MAP,that[ADDER],that)}$.mix(C.prototype,{clear:function clear(){for(var that=this,data=that[O1],entry=that[FIRST];entry;entry=entry.n){entry.r=true;if(entry.p)entry.p=entry.p.n=undefined;delete data[entry.i]}that[FIRST]=that[LAST]=undefined;that[SIZE]=0},"delete":function(key){var that=this,entry=getEntry(that,key);if(entry){var next=entry.n,prev=entry.p;delete that[O1][entry.i];entry.r=true;if(prev)prev.n=next;if(next)next.p=prev;if(that[FIRST]==entry)that[FIRST]=next;if(that[LAST]==entry)that[LAST]=prev;that[SIZE]--}return!!entry},forEach:function forEach(callbackfn){var f=ctx(callbackfn,arguments[1],3),entry;while(entry=entry?entry.n:this[FIRST]){f(entry.v,entry.k,this);while(entry&&entry.r)entry=entry.p}},has:function has(key){return!!getEntry(this,key)}});if($.DESC)$.setDesc(C.prototype,"size",{get:function(){return assert.def(this[SIZE])}});return C},def:function(that,key,value){var entry=getEntry(that,key),prev,index;if(entry){entry.v=value}else{that[LAST]=entry={i:index=fastKey(key,true),k:key,v:value,p:prev=that[LAST],n:undefined,r:false};if(!that[FIRST])that[FIRST]=entry;if(prev)prev.n=entry;that[SIZE]++;if(index!="F")that[O1][index]=entry}return that},getEntry:getEntry,getIterConstructor:function(){return function(iterated,kind){set(this,ITER,{o:iterated,k:kind})}},next:function(){var iter=this[ITER],kind=iter.k,entry=iter.l;while(entry&&entry.r)entry=entry.p;if(!iter.o||!(iter.l=entry=entry?entry.n:iter.o[FIRST])){iter.o=undefined;return step(1)}if(kind=="key")return step(0,entry.k);if(kind=="value")return step(0,entry.v);return step(0,[entry.k,entry.v])}}},{"./$":16,"./$.assert":4,"./$.ctx":10,"./$.iter":15,"./$.uid":25}],8:[function(require,module,exports){"use strict";var $=require("./$"),safe=require("./$.uid").safe,assert=require("./$.assert"),forOf=require("./$.iter").forOf,_has=$.has,isObject=$.isObject,hide=$.hide,isFrozen=Object.isFrozen||$.core.Object.isFrozen,id=0,ID=safe("id"),WEAK=safe("weak"),LEAK=safe("leak"),method=require("./$.array-methods"),find=method(5),findIndex=method(6);function findFrozen(store,key){return find.call(store.array,function(it){return it[0]===key})}function leakStore(that){return that[LEAK]||hide(that,LEAK,{array:[],get:function(key){var entry=findFrozen(this,key);if(entry)return entry[1]},has:function(key){return!!findFrozen(this,key)},set:function(key,value){var entry=findFrozen(this,key);if(entry)entry[1]=value;else this.array.push([key,value])},"delete":function(key){var index=findIndex.call(this.array,function(it){return it[0]===key});if(~index)this.array.splice(index,1);return!!~index}})[LEAK]}module.exports={getConstructor:function(NAME,IS_MAP,ADDER){function C(iterable){$.set(assert.inst(this,C,NAME),ID,id++);if(iterable!=undefined)forOf(iterable,IS_MAP,this[ADDER],this)}$.mix(C.prototype,{"delete":function(key){if(!isObject(key))return false;if(isFrozen(key))return leakStore(this)["delete"](key);return _has(key,WEAK)&&_has(key[WEAK],this[ID])&&delete key[WEAK][this[ID]]},has:function has(key){if(!isObject(key))return false;if(isFrozen(key))return leakStore(this).has(key);return _has(key,WEAK)&&_has(key[WEAK],this[ID])}});return C},def:function(that,key,value){if(isFrozen(assert.obj(key))){leakStore(that).set(key,value)}else{_has(key,WEAK)||hide(key,WEAK,{});key[WEAK][that[ID]]=value}return that},leakStore:leakStore,WEAK:WEAK,ID:ID}},{"./$":16,"./$.array-methods":3,"./$.assert":4,"./$.iter":15,"./$.uid":25}],9:[function(require,module,exports){"use strict";var $=require("./$"),$def=require("./$.def"),$iter=require("./$.iter"),assertInstance=require("./$.assert").inst;module.exports=function(NAME,methods,common,IS_MAP,isWeak){var Base=$.g[NAME],C=Base,ADDER=IS_MAP?"set":"add",proto=C&&C.prototype,O={};function fixMethod(KEY,CHAIN){var method=proto[KEY];if($.FW)proto[KEY]=function(a,b){var result=method.call(this,a===0?0:a,b);return CHAIN?this:result}}if(!$.isFunction(C)||!(isWeak||!$iter.BUGGY&&proto.forEach&&proto.entries)){C=common.getConstructor(NAME,IS_MAP,ADDER);$.mix(C.prototype,methods)}else{var inst=new C,chain=inst[ADDER](isWeak?{}:-0,1),buggyZero;if(!require("./$.iter-detect")(function(iter){new C(iter)})){C=function(iterable){assertInstance(this,C,NAME);var that=new Base;if(iterable!=undefined)$iter.forOf(iterable,IS_MAP,that[ADDER],that);return that};C.prototype=proto;if($.FW)proto.constructor=C}isWeak||inst.forEach(function(val,key){buggyZero=1/key===-Infinity});if(buggyZero){fixMethod("delete");fixMethod("has");IS_MAP&&fixMethod("get")}if(buggyZero||chain!==inst)fixMethod(ADDER,true)}require("./$.cof").set(C,NAME);require("./$.species")(C);O[NAME]=C;$def($def.G+$def.W+$def.F*(C!=Base),O);if(!isWeak)$iter.std(C,NAME,common.getIterConstructor(),common.next,IS_MAP?"key+value":"value",!IS_MAP,true);return C}},{"./$":16,"./$.assert":4,"./$.cof":6,"./$.def":11,"./$.iter":15,"./$.iter-detect":14,"./$.species":22}],10:[function(require,module,exports){var assertFunction=require("./$.assert").fn;module.exports=function(fn,that,length){assertFunction(fn);if(~length&&that===undefined)return fn;switch(length){case 1:return function(a){return fn.call(that,a)};case 2:return function(a,b){return fn.call(that,a,b)};case 3:return function(a,b,c){return fn.call(that,a,b,c)}}return function(){return fn.apply(that,arguments)}}},{"./$.assert":4}],11:[function(require,module,exports){var $=require("./$"),global=$.g,core=$.core,isFunction=$.isFunction;function ctx(fn,that){return function(){return fn.apply(that,arguments)}}global.core=core;$def.F=1;$def.G=2;$def.S=4;$def.P=8;$def.B=16;$def.W=32;function $def(type,name,source){var key,own,out,exp,isGlobal=type&$def.G,target=isGlobal?global:type&$def.S?global[name]:(global[name]||{}).prototype,exports=isGlobal?core:core[name]||(core[name]={});if(isGlobal)source=name;for(key in source){own=!(type&$def.F)&&target&&key in target;out=(own?target:source)[key];if(type&$def.B&&own)exp=ctx(out,global);else exp=type&$def.P&&isFunction(out)?ctx(Function.call,out):out;if(target&&!own){if(isGlobal)target[key]=out;else delete target[key]&&$.hide(target,key,out)}if(exports[key]!=out)$.hide(exports,key,exp)}}module.exports=$def},{"./$":16}],12:[function(require,module,exports){module.exports=function($){$.FW=true;$.path=$.g;return $}},{}],13:[function(require,module,exports){module.exports=function(fn,args,that){var un=that===undefined;switch(args.length){case 0:return un?fn():fn.call(that);case 1:return un?fn(args[0]):fn.call(that,args[0]);case 2:return un?fn(args[0],args[1]):fn.call(that,args[0],args[1]);case 3:return un?fn(args[0],args[1],args[2]):fn.call(that,args[0],args[1],args[2]);case 4:return un?fn(args[0],args[1],args[2],args[3]):fn.call(that,args[0],args[1],args[2],args[3]);case 5:return un?fn(args[0],args[1],args[2],args[3],args[4]):fn.call(that,args[0],args[1],args[2],args[3],args[4])}return fn.apply(that,args)}},{}],14:[function(require,module,exports){var SYMBOL_ITERATOR=require("./$.wks")("iterator"),SAFE_CLOSING=false;try{var riter=[7][SYMBOL_ITERATOR]();riter["return"]=function(){SAFE_CLOSING=true};Array.from(riter,function(){throw 2})}catch(e){}module.exports=function(exec){if(!SAFE_CLOSING)return false;var safe=false;try{var arr=[7],iter=arr[SYMBOL_ITERATOR]();iter.next=function(){safe=true};arr[SYMBOL_ITERATOR]=function(){return iter};exec(arr)}catch(e){}return safe}},{"./$.wks":27}],15:[function(require,module,exports){"use strict";var $=require("./$"),ctx=require("./$.ctx"),cof=require("./$.cof"),$def=require("./$.def"),assertObject=require("./$.assert").obj,SYMBOL_ITERATOR=require("./$.wks")("iterator"),FF_ITERATOR="@@iterator",Iterators={},IteratorPrototype={};var BUGGY="keys"in[]&&!("next"in[].keys());setIterator(IteratorPrototype,$.that);function setIterator(O,value){$.hide(O,SYMBOL_ITERATOR,value);if(FF_ITERATOR in[])$.hide(O,FF_ITERATOR,value)}function defineIterator(Constructor,NAME,value,DEFAULT){var proto=Constructor.prototype,iter=proto[SYMBOL_ITERATOR]||proto[FF_ITERATOR]||DEFAULT&&proto[DEFAULT]||value;if($.FW)setIterator(proto,iter);if(iter!==value){var iterProto=$.getProto(iter.call(new Constructor));cof.set(iterProto,NAME+" Iterator",true);if($.FW)$.has(proto,FF_ITERATOR)&&setIterator(iterProto,$.that)}Iterators[NAME]=iter;Iterators[NAME+" Iterator"]=$.that;return iter}function getIterator(it){var Symbol=$.g.Symbol,ext=it[Symbol&&Symbol.iterator||FF_ITERATOR],getIter=ext||it[SYMBOL_ITERATOR]||Iterators[cof.classof(it)];return assertObject(getIter.call(it))}function closeIterator(iterator){var ret=iterator["return"];if(ret!==undefined)assertObject(ret.call(iterator))}function stepCall(iterator,fn,value,entries){try{return entries?fn(assertObject(value)[0],value[1]):fn(value)}catch(e){closeIterator(iterator);throw e}}var $iter=module.exports={BUGGY:BUGGY,Iterators:Iterators,prototype:IteratorPrototype,step:function(done,value){return{value:value,done:!!done}},stepCall:stepCall,close:closeIterator,is:function(it){var O=Object(it),Symbol=$.g.Symbol,SYM=Symbol&&Symbol.iterator||FF_ITERATOR;return SYM in O||SYMBOL_ITERATOR in O||$.has(Iterators,cof.classof(O))},get:getIterator,set:setIterator,create:function(Constructor,NAME,next,proto){Constructor.prototype=$.create(proto||$iter.prototype,{next:$.desc(1,next)});cof.set(Constructor,NAME+" Iterator")},define:defineIterator,std:function(Base,NAME,Constructor,next,DEFAULT,IS_SET,FORCE){function createIter(kind){return function(){return new Constructor(this,kind)}}$iter.create(Constructor,NAME,next);var entries=createIter("key+value"),values=createIter("value"),proto=Base.prototype,methods,key;if(DEFAULT=="value")values=defineIterator(Base,NAME,values,"values");else entries=defineIterator(Base,NAME,entries,"entries");if(DEFAULT){methods={entries:entries,keys:IS_SET?values:createIter("key"),values:values};$def($def.P+$def.F*BUGGY,NAME,methods);if(FORCE)for(key in methods){if(!(key in proto))$.hide(proto,key,methods[key])}}},forOf:function(iterable,entries,fn,that){var iterator=getIterator(iterable),f=ctx(fn,that,entries?2:1),step;while(!(step=iterator.next()).done){if(stepCall(iterator,f,step.value,entries)===false){return closeIterator(iterator)}}}}},{"./$":16,"./$.assert":4,"./$.cof":6,"./$.ctx":10,"./$.def":11,"./$.wks":27}],16:[function(require,module,exports){"use strict";var global=typeof self!="undefined"?self:Function("return this")(),core={},defineProperty=Object.defineProperty,hasOwnProperty={}.hasOwnProperty,ceil=Math.ceil,floor=Math.floor,max=Math.max,min=Math.min;var DESC=!!function(){try{return defineProperty({},"a",{get:function(){return 2}}).a==2}catch(e){}}();var hide=createDefiner(1);function toInteger(it){return isNaN(it=+it)?0:(it>0?floor:ceil)(it)}function desc(bitmap,value){return{enumerable:!(bitmap&1),configurable:!(bitmap&2),writable:!(bitmap&4),value:value}}function simpleSet(object,key,value){object[key]=value;return object}function createDefiner(bitmap){return DESC?function(object,key,value){return $.setDesc(object,key,desc(bitmap,value))}:simpleSet}function isObject(it){return it!==null&&(typeof it=="object"||typeof it=="function")}function isFunction(it){return typeof it=="function"}function assertDefined(it){if(it==undefined)throw TypeError("Can't call method on "+it);return it}var $=module.exports=require("./$.fw")({g:global,core:core,html:global.document&&document.documentElement,isObject:isObject,isFunction:isFunction,it:function(it){return it},that:function(){return this},toInteger:toInteger,toLength:function(it){return it>0?min(toInteger(it),9007199254740991):0},toIndex:function(index,length){index=toInteger(index);return index<0?max(index+length,0):min(index,length)},has:function(it,key){return hasOwnProperty.call(it,key)},create:Object.create,getProto:Object.getPrototypeOf,DESC:DESC,desc:desc,getDesc:Object.getOwnPropertyDescriptor,setDesc:defineProperty,getKeys:Object.keys,getNames:Object.getOwnPropertyNames,getSymbols:Object.getOwnPropertySymbols,assertDefined:assertDefined,ES5Object:Object,toObject:function(it){return $.ES5Object(assertDefined(it))},hide:hide,def:createDefiner(0),set:global.Symbol?simpleSet:hide,mix:function(target,src){for(var key in src)hide(target,key,src[key]);return target},each:[].forEach});if(typeof __e!="undefined")__e=core;if(typeof __g!="undefined")__g=global},{"./$.fw":12}],17:[function(require,module,exports){var $=require("./$");module.exports=function(object,el){var O=$.toObject(object),keys=$.getKeys(O),length=keys.length,index=0,key;while(length>index)if(O[key=keys[index++]]===el)return key}},{"./$":16}],18:[function(require,module,exports){var $=require("./$"),assertObject=require("./$.assert").obj;module.exports=function ownKeys(it){assertObject(it);return $.getSymbols?$.getNames(it).concat($.getSymbols(it)):$.getNames(it)}},{"./$":16,"./$.assert":4}],19:[function(require,module,exports){"use strict";var $=require("./$"),invoke=require("./$.invoke"),assertFunction=require("./$.assert").fn;module.exports=function(){var fn=assertFunction(this),length=arguments.length,pargs=Array(length),i=0,_=$.path._,holder=false;while(length>i)if((pargs[i]=arguments[i++])===_)holder=true;return function(){var that=this,_length=arguments.length,j=0,k=0,args;if(!holder&&!_length)return invoke(fn,pargs,that);args=pargs.slice();if(holder)for(;length>j;j++)if(args[j]===_)args[j]=arguments[k++];while(_length>k)args.push(arguments[k++]);return invoke(fn,args,that)}}},{"./$":16,"./$.assert":4,"./$.invoke":13}],20:[function(require,module,exports){"use strict";module.exports=function(regExp,replace,isStatic){var replacer=replace===Object(replace)?function(part){return replace[part]}:replace;return function(it){return String(isStatic?it:this).replace(regExp,replacer)}}},{}],21:[function(require,module,exports){var $=require("./$"),assert=require("./$.assert");function check(O,proto){assert.obj(O);assert(proto===null||$.isObject(proto),proto,": can't set as prototype!")}module.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(buggy,set){try{set=require("./$.ctx")(Function.call,$.getDesc(Object.prototype,"__proto__").set,2);set({},[])}catch(e){buggy=true}return function setPrototypeOf(O,proto){check(O,proto);if(buggy)O.__proto__=proto;else set(O,proto);return O}}():undefined),check:check}},{"./$":16,"./$.assert":4,"./$.ctx":10}],22:[function(require,module,exports){var $=require("./$");module.exports=function(C){if($.DESC&&$.FW)$.setDesc(C,require("./$.wks")("species"),{configurable:true,get:$.that})}},{"./$":16,"./$.wks":27}],23:[function(require,module,exports){"use strict";var $=require("./$");module.exports=function(TO_STRING){return function(pos){var s=String($.assertDefined(this)),i=$.toInteger(pos),l=s.length,a,b;if(i<0||i>=l)return TO_STRING?"":undefined;a=s.charCodeAt(i);return a<55296||a>56319||i+1===l||(b=s.charCodeAt(i+1))<56320||b>57343?TO_STRING?s.charAt(i):a:TO_STRING?s.slice(i,i+2):(a-55296<<10)+(b-56320)+65536}}},{"./$":16}],24:[function(require,module,exports){"use strict";var $=require("./$"),ctx=require("./$.ctx"),cof=require("./$.cof"),invoke=require("./$.invoke"),global=$.g,isFunction=$.isFunction,html=$.html,document=global.document,process=global.process,setTask=global.setImmediate,clearTask=global.clearImmediate,postMessage=global.postMessage,addEventListener=global.addEventListener,MessageChannel=global.MessageChannel,counter=0,queue={},ONREADYSTATECHANGE="onreadystatechange",defer,channel,port;function run(){var id=+this;if($.has(queue,id)){var fn=queue[id];delete queue[id];fn()}}function listner(event){run.call(event.data)}if(!isFunction(setTask)||!isFunction(clearTask)){setTask=function(fn){var args=[],i=1;while(arguments.length>i)args.push(arguments[i++]);queue[++counter]=function(){invoke(isFunction(fn)?fn:Function(fn),args)};defer(counter);return counter};clearTask=function(id){delete queue[id]};if(cof(process)=="process"){defer=function(id){process.nextTick(ctx(run,id,1))}}else if(addEventListener&&isFunction(postMessage)&&!global.importScripts){defer=function(id){postMessage(id,"*")};addEventListener("message",listner,false)}else if(isFunction(MessageChannel)){channel=new MessageChannel;port=channel.port2;channel.port1.onmessage=listner;defer=ctx(port.postMessage,port,1)}else if(document&&ONREADYSTATECHANGE in document.createElement("script")){defer=function(id){html.appendChild(document.createElement("script"))[ONREADYSTATECHANGE]=function(){html.removeChild(this);run.call(id)}}}else{defer=function(id){setTimeout(ctx(run,id,1),0)}}}module.exports={set:setTask,clear:clearTask}},{"./$":16,"./$.cof":6,"./$.ctx":10,"./$.invoke":13}],25:[function(require,module,exports){var sid=0;function uid(key){return"Symbol("+key+")_"+(++sid+Math.random()).toString(36)}uid.safe=require("./$").g.Symbol||uid;module.exports=uid},{"./$":16}],26:[function(require,module,exports){var $=require("./$"),UNSCOPABLES=require("./$.wks")("unscopables");if($.FW&&!(UNSCOPABLES in[]))$.hide(Array.prototype,UNSCOPABLES,{});module.exports=function(key){if($.FW)[][UNSCOPABLES][key]=true}},{"./$":16,"./$.wks":27}],27:[function(require,module,exports){var global=require("./$").g,store={};module.exports=function(name){return store[name]||(store[name]=global.Symbol&&global.Symbol[name]||require("./$.uid").safe("Symbol."+name))}},{"./$":16,"./$.uid":25}],28:[function(require,module,exports){var $=require("./$"),cof=require("./$.cof"),$def=require("./$.def"),invoke=require("./$.invoke"),arrayMethod=require("./$.array-methods"),IE_PROTO=require("./$.uid").safe("__proto__"),assert=require("./$.assert"),assertObject=assert.obj,ObjectProto=Object.prototype,A=[],slice=A.slice,indexOf=A.indexOf,classof=cof.classof,defineProperties=Object.defineProperties,has=$.has,defineProperty=$.setDesc,getOwnDescriptor=$.getDesc,isFunction=$.isFunction,toObject=$.toObject,toLength=$.toLength,IE8_DOM_DEFINE=false;if(!$.DESC){try{IE8_DOM_DEFINE=defineProperty(document.createElement("div"),"x",{get:function(){return 8}}).x==8}catch(e){}$.setDesc=function(O,P,Attributes){if(IE8_DOM_DEFINE)try{return defineProperty(O,P,Attributes)}catch(e){}if("get"in Attributes||"set"in Attributes)throw TypeError("Accessors not supported!");if("value"in Attributes)assertObject(O)[P]=Attributes.value;return O};$.getDesc=function(O,P){if(IE8_DOM_DEFINE)try{return getOwnDescriptor(O,P)}catch(e){}if(has(O,P))return $.desc(!ObjectProto.propertyIsEnumerable.call(O,P),O[P])};defineProperties=function(O,Properties){assertObject(O);var keys=$.getKeys(Properties),length=keys.length,i=0,P;while(length>i)$.setDesc(O,P=keys[i++],Properties[P]);return O}}$def($def.S+$def.F*!$.DESC,"Object",{getOwnPropertyDescriptor:$.getDesc,defineProperty:$.setDesc,defineProperties:defineProperties});var keys1=("constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,"+"toLocaleString,toString,valueOf").split(","),keys2=keys1.concat("length","prototype"),keysLen1=keys1.length;var createDict=function(){var iframe=document.createElement("iframe"),i=keysLen1,gt=">",iframeDocument;iframe.style.display="none";$.html.appendChild(iframe);iframe.src="javascript:";iframeDocument=iframe.contentWindow.document;iframeDocument.open();iframeDocument.write("<script>document.F=Object</script"+gt);iframeDocument.close();createDict=iframeDocument.F;while(i--)delete createDict.prototype[keys1[i]];return createDict()};function createGetKeys(names,length){return function(object){var O=toObject(object),i=0,result=[],key;for(key in O)if(key!=IE_PROTO)has(O,key)&&result.push(key);while(length>i)if(has(O,key=names[i++])){~indexOf.call(result,key)||result.push(key)}return result}}function isPrimitive(it){return!$.isObject(it)}function Empty(){}$def($def.S,"Object",{getPrototypeOf:$.getProto=$.getProto||function(O){O=Object(assert.def(O));if(has(O,IE_PROTO))return O[IE_PROTO];if(isFunction(O.constructor)&&O instanceof O.constructor){return O.constructor.prototype}return O instanceof Object?ObjectProto:null},getOwnPropertyNames:$.getNames=$.getNames||createGetKeys(keys2,keys2.length,true),create:$.create=$.create||function(O,Properties){var result;if(O!==null){Empty.prototype=assertObject(O);result=new Empty;Empty.prototype=null;result[IE_PROTO]=O}else result=createDict();return Properties===undefined?result:defineProperties(result,Properties)},keys:$.getKeys=$.getKeys||createGetKeys(keys1,keysLen1,false),seal:$.it,freeze:$.it,preventExtensions:$.it,isSealed:isPrimitive,isFrozen:isPrimitive,isExtensible:$.isObject});$def($def.P,"Function",{bind:function(that){var fn=assert.fn(this),partArgs=slice.call(arguments,1);function bound(){var args=partArgs.concat(slice.call(arguments));return invoke(fn,args,this instanceof bound?$.create(fn.prototype):that)}if(fn.prototype)bound.prototype=fn.prototype;return bound}});function arrayMethodFix(fn){return function(){return fn.apply($.ES5Object(this),arguments)}}if(!(0 in Object("z")&&"z"[0]=="z")){$.ES5Object=function(it){return cof(it)=="String"?it.split(""):Object(it)}}$def($def.P+$def.F*($.ES5Object!=Object),"Array",{slice:arrayMethodFix(slice),join:arrayMethodFix(A.join)});$def($def.S,"Array",{isArray:function(arg){return cof(arg)=="Array"}});function createArrayReduce(isRight){return function(callbackfn,memo){assert.fn(callbackfn);var O=toObject(this),length=toLength(O.length),index=isRight?length-1:0,i=isRight?-1:1;if(arguments.length<2)for(;;){if(index in O){memo=O[index];index+=i;break}index+=i;assert(isRight?index>=0:length>index,"Reduce of empty array with no initial value")}for(;isRight?index>=0:length>index;index+=i)if(index in O){memo=callbackfn(memo,O[index],index,this)}return memo}}$def($def.P,"Array",{forEach:$.each=$.each||arrayMethod(0),map:arrayMethod(1),filter:arrayMethod(2),some:arrayMethod(3),every:arrayMethod(4),reduce:createArrayReduce(false),reduceRight:createArrayReduce(true),indexOf:indexOf=indexOf||require("./$.array-includes")(false),lastIndexOf:function(el,fromIndex){var O=toObject(this),length=toLength(O.length),index=length-1;if(arguments.length>1)index=Math.min(index,$.toInteger(fromIndex));if(index<0)index=toLength(length+index);for(;index>=0;index--)if(index in O)if(O[index]===el)return index;return-1}});$def($def.P,"String",{trim:require("./$.replacer")(/^\s*([\s\S]*\S)?\s*$/,"$1")});$def($def.S,"Date",{now:function(){return+new Date}});function lz(num){return num>9?num:"0"+num}$def($def.P,"Date",{toISOString:function(){if(!isFinite(this))throw RangeError("Invalid time value");var d=this,y=d.getUTCFullYear(),m=d.getUTCMilliseconds(),s=y<0?"-":y>9999?"+":"";return s+("00000"+Math.abs(y)).slice(s?-6:-4)+"-"+lz(d.getUTCMonth()+1)+"-"+lz(d.getUTCDate())+"T"+lz(d.getUTCHours())+":"+lz(d.getUTCMinutes())+":"+lz(d.getUTCSeconds())+"."+(m>99?m:"0"+lz(m))+"Z"}});if(classof(function(){return arguments}())=="Object")cof.classof=function(it){var tag=classof(it);return tag=="Object"&&isFunction(it.callee)?"Arguments":tag}},{"./$":16,"./$.array-includes":2,"./$.array-methods":3,"./$.assert":4,"./$.cof":6,"./$.def":11,"./$.invoke":13,"./$.replacer":20,"./$.uid":25}],29:[function(require,module,exports){"use strict";var $=require("./$"),$def=require("./$.def"),toIndex=$.toIndex;$def($def.P,"Array",{copyWithin:function copyWithin(target,start){var O=Object($.assertDefined(this)),len=$.toLength(O.length),to=toIndex(target,len),from=toIndex(start,len),end=arguments[2],fin=end===undefined?len:toIndex(end,len),count=Math.min(fin-from,len-to),inc=1;if(from<to&&to<from+count){inc=-1;from=from+count-1;to=to+count-1}while(count-->0){if(from in O)O[to]=O[from];else delete O[to];to+=inc;from+=inc}return O}});require("./$.unscope")("copyWithin")},{"./$":16,"./$.def":11,"./$.unscope":26}],30:[function(require,module,exports){"use strict";var $=require("./$"),$def=require("./$.def"),toIndex=$.toIndex;$def($def.P,"Array",{fill:function fill(value){var O=Object($.assertDefined(this)),length=$.toLength(O.length),index=toIndex(arguments[1],length),end=arguments[2],endPos=end===undefined?length:toIndex(end,length);while(endPos>index)O[index++]=value;return O}});require("./$.unscope")("fill")},{"./$":16,"./$.def":11,"./$.unscope":26}],31:[function(require,module,exports){var $def=require("./$.def");$def($def.P,"Array",{findIndex:require("./$.array-methods")(6)});require("./$.unscope")("findIndex")},{"./$.array-methods":3,"./$.def":11,"./$.unscope":26}],32:[function(require,module,exports){var $def=require("./$.def");$def($def.P,"Array",{find:require("./$.array-methods")(5)});require("./$.unscope")("find")},{"./$.array-methods":3,"./$.def":11,"./$.unscope":26}],33:[function(require,module,exports){var $=require("./$"),ctx=require("./$.ctx"),$def=require("./$.def"),$iter=require("./$.iter"),stepCall=$iter.stepCall;$def($def.S+$def.F*!require("./$.iter-detect")(function(iter){Array.from(iter)}),"Array",{from:function from(arrayLike){var O=Object($.assertDefined(arrayLike)),mapfn=arguments[1],mapping=mapfn!==undefined,f=mapping?ctx(mapfn,arguments[2],2):undefined,index=0,length,result,step,iterator;if($iter.is(O)){iterator=$iter.get(O);result=new(typeof this=="function"?this:Array);for(;!(step=iterator.next()).done;index++){result[index]=mapping?stepCall(iterator,f,[step.value,index],true):step.value}}else{result=new(typeof this=="function"?this:Array)(length=$.toLength(O.length));for(;length>index;index++){result[index]=mapping?f(O[index],index):O[index]}}result.length=index;return result}})},{"./$":16,"./$.ctx":10,"./$.def":11,"./$.iter":15,"./$.iter-detect":14}],34:[function(require,module,exports){var $=require("./$"),setUnscope=require("./$.unscope"),ITER=require("./$.uid").safe("iter"),$iter=require("./$.iter"),step=$iter.step,Iterators=$iter.Iterators;$iter.std(Array,"Array",function(iterated,kind){$.set(this,ITER,{o:$.toObject(iterated),i:0,k:kind})},function(){var iter=this[ITER],O=iter.o,kind=iter.k,index=iter.i++;if(!O||index>=O.length){iter.o=undefined;return step(1)}if(kind=="key")return step(0,index);if(kind=="value")return step(0,O[index]);return step(0,[index,O[index]])},"value");Iterators.Arguments=Iterators.Array;setUnscope("keys");setUnscope("values");setUnscope("entries")},{"./$":16,"./$.iter":15,"./$.uid":25,"./$.unscope":26}],35:[function(require,module,exports){var $def=require("./$.def");$def($def.S,"Array",{of:function of(){var index=0,length=arguments.length,result=new(typeof this=="function"?this:Array)(length);while(length>index)result[index]=arguments[index++];result.length=length;return result}})},{"./$.def":11}],36:[function(require,module,exports){require("./$.species")(Array)},{"./$.species":22}],37:[function(require,module,exports){"use strict";var $=require("./$"),NAME="name",setDesc=$.setDesc,FunctionProto=Function.prototype;NAME in FunctionProto||$.FW&&$.DESC&&setDesc(FunctionProto,NAME,{configurable:true,get:function(){var match=String(this).match(/^\s*function ([^ (]*)/),name=match?match[1]:"";$.has(this,NAME)||setDesc(this,NAME,$.desc(5,name));return name},set:function(value){$.has(this,NAME)||setDesc(this,NAME,$.desc(0,value))}})},{"./$":16}],38:[function(require,module,exports){"use strict";var strong=require("./$.collection-strong");require("./$.collection")("Map",{get:function get(key){var entry=strong.getEntry(this,key);return entry&&entry.v},set:function set(key,value){return strong.def(this,key===0?0:key,value)}},strong,true)},{"./$.collection":9,"./$.collection-strong":7}],39:[function(require,module,exports){var Infinity=1/0,$def=require("./$.def"),E=Math.E,pow=Math.pow,abs=Math.abs,exp=Math.exp,log=Math.log,sqrt=Math.sqrt,ceil=Math.ceil,floor=Math.floor,EPSILON=pow(2,-52),EPSILON32=pow(2,-23),MAX32=pow(2,127)*(2-EPSILON32),MIN32=pow(2,-126);function roundTiesToEven(n){return n+1/EPSILON-1/EPSILON}function sign(x){return(x=+x)==0||x!=x?x:x<0?-1:1;

    }function asinh(x){return!isFinite(x=+x)||x==0?x:x<0?-asinh(-x):log(x+sqrt(x*x+1))}function expm1(x){return(x=+x)==0?x:x>-1e-6&&x<1e-6?x+x*x/2:exp(x)-1}$def($def.S,"Math",{acosh:function acosh(x){return(x=+x)<1?NaN:isFinite(x)?log(x/E+sqrt(x+1)*sqrt(x-1)/E)+1:x},asinh:asinh,atanh:function atanh(x){return(x=+x)==0?x:log((1+x)/(1-x))/2},cbrt:function cbrt(x){return sign(x=+x)*pow(abs(x),1/3)},clz32:function clz32(x){return(x>>>=0)?31-floor(log(x+.5)*Math.LOG2E):32},cosh:function cosh(x){return(exp(x=+x)+exp(-x))/2},expm1:expm1,fround:function fround(x){var $abs=abs(x),$sign=sign(x),a,result;if($abs<MIN32)return $sign*roundTiesToEven($abs/MIN32/EPSILON32)*MIN32*EPSILON32;a=(1+EPSILON32/EPSILON)*$abs;result=a-(a-$abs);if(result>MAX32||result!=result)return $sign*Infinity;return $sign*result},hypot:function hypot(value1,value2){var sum=0,len1=arguments.length,len2=len1,args=Array(len1),larg=-Infinity,arg;while(len1--){arg=args[len1]=+arguments[len1];if(arg==Infinity||arg==-Infinity)return Infinity;if(arg>larg)larg=arg}larg=arg||1;while(len2--)sum+=pow(args[len2]/larg,2);return larg*sqrt(sum)},imul:function imul(x,y){var UInt16=65535,xn=+x,yn=+y,xl=UInt16&xn,yl=UInt16&yn;return 0|xl*yl+((UInt16&xn>>>16)*yl+xl*(UInt16&yn>>>16)<<16>>>0)},log1p:function log1p(x){return(x=+x)>-1e-8&&x<1e-8?x-x*x/2:log(1+x)},log10:function log10(x){return log(x)/Math.LN10},log2:function log2(x){return log(x)/Math.LN2},sign:sign,sinh:function sinh(x){return abs(x=+x)<1?(expm1(x)-expm1(-x))/2:(exp(x-1)-exp(-x-1))*(E/2)},tanh:function tanh(x){var a=expm1(x=+x),b=expm1(-x);return a==Infinity?1:b==Infinity?-1:(a-b)/(exp(x)+exp(-x))},trunc:function trunc(it){return(it>0?floor:ceil)(it)}})},{"./$.def":11}],40:[function(require,module,exports){"use strict";var $=require("./$"),isObject=$.isObject,isFunction=$.isFunction,NUMBER="Number",Number=$.g[NUMBER],Base=Number,proto=Number.prototype;function toPrimitive(it){var fn,val;if(isFunction(fn=it.valueOf)&&!isObject(val=fn.call(it)))return val;if(isFunction(fn=it.toString)&&!isObject(val=fn.call(it)))return val;throw TypeError("Can't convert object to number")}function toNumber(it){if(isObject(it))it=toPrimitive(it);if(typeof it=="string"&&it.length>2&&it.charCodeAt(0)==48){var binary=false;switch(it.charCodeAt(1)){case 66:case 98:binary=true;case 79:case 111:return parseInt(it.slice(2),binary?2:8)}}return+it}if($.FW&&!(Number("0o1")&&Number("0b1"))){Number=function Number(it){return this instanceof Number?new Base(toNumber(it)):toNumber(it)};$.each.call($.DESC?$.getNames(Base):("MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,"+"EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,"+"MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger").split(","),function(key){if($.has(Base,key)&&!$.has(Number,key)){$.setDesc(Number,key,$.getDesc(Base,key))}});Number.prototype=proto;proto.constructor=Number;$.hide($.g,NUMBER,Number)}},{"./$":16}],41:[function(require,module,exports){var $=require("./$"),$def=require("./$.def"),abs=Math.abs,floor=Math.floor,_isFinite=$.g.isFinite,MAX_SAFE_INTEGER=9007199254740991;function isInteger(it){return!$.isObject(it)&&_isFinite(it)&&floor(it)===it}$def($def.S,"Number",{EPSILON:Math.pow(2,-52),isFinite:function isFinite(it){return typeof it=="number"&&_isFinite(it)},isInteger:isInteger,isNaN:function isNaN(number){return number!=number},isSafeInteger:function isSafeInteger(number){return isInteger(number)&&abs(number)<=MAX_SAFE_INTEGER},MAX_SAFE_INTEGER:MAX_SAFE_INTEGER,MIN_SAFE_INTEGER:-MAX_SAFE_INTEGER,parseFloat:parseFloat,parseInt:parseInt})},{"./$":16,"./$.def":11}],42:[function(require,module,exports){var $def=require("./$.def");$def($def.S,"Object",{assign:require("./$.assign")})},{"./$.assign":5,"./$.def":11}],43:[function(require,module,exports){var $def=require("./$.def");$def($def.S,"Object",{is:function is(x,y){return x===y?x!==0||1/x===1/y:x!=x&&y!=y}})},{"./$.def":11}],44:[function(require,module,exports){var $def=require("./$.def");$def($def.S,"Object",{setPrototypeOf:require("./$.set-proto").set})},{"./$.def":11,"./$.set-proto":21}],45:[function(require,module,exports){var $=require("./$"),$def=require("./$.def"),isObject=$.isObject,toObject=$.toObject;function wrapObjectMethod(METHOD,MODE){var fn=($.core.Object||{})[METHOD]||Object[METHOD],f=0,o={};o[METHOD]=MODE==1?function(it){return isObject(it)?fn(it):it}:MODE==2?function(it){return isObject(it)?fn(it):true}:MODE==3?function(it){return isObject(it)?fn(it):false}:MODE==4?function getOwnPropertyDescriptor(it,key){return fn(toObject(it),key)}:MODE==5?function getPrototypeOf(it){return fn(Object($.assertDefined(it)))}:function(it){return fn(toObject(it))};try{fn("z")}catch(e){f=1}$def($def.S+$def.F*f,"Object",o)}wrapObjectMethod("freeze",1);wrapObjectMethod("seal",1);wrapObjectMethod("preventExtensions",1);wrapObjectMethod("isFrozen",2);wrapObjectMethod("isSealed",2);wrapObjectMethod("isExtensible",3);wrapObjectMethod("getOwnPropertyDescriptor",4);wrapObjectMethod("getPrototypeOf",5);wrapObjectMethod("keys");wrapObjectMethod("getOwnPropertyNames")},{"./$":16,"./$.def":11}],46:[function(require,module,exports){"use strict";var $=require("./$"),cof=require("./$.cof"),tmp={};tmp[require("./$.wks")("toStringTag")]="z";if($.FW&&cof(tmp)!="z")$.hide(Object.prototype,"toString",function toString(){return"[object "+cof.classof(this)+"]"})},{"./$":16,"./$.cof":6,"./$.wks":27}],47:[function(require,module,exports){"use strict";var $=require("./$"),ctx=require("./$.ctx"),cof=require("./$.cof"),$def=require("./$.def"),assert=require("./$.assert"),$iter=require("./$.iter"),SPECIES=require("./$.wks")("species"),RECORD=require("./$.uid").safe("record"),forOf=$iter.forOf,PROMISE="Promise",global=$.g,process=global.process,asap=process&&process.nextTick||require("./$.task").set,P=global[PROMISE],Base=P,isFunction=$.isFunction,isObject=$.isObject,assertFunction=assert.fn,assertObject=assert.obj,test;function getConstructor(C){var S=assertObject(C)[SPECIES];return S!=undefined?S:C}function isThenable(it){var then;if(isObject(it))then=it.then;return isFunction(then)?then:false}function isUnhandled(promise){var record=promise[RECORD],chain=record.c,i=0,react;if(record.h)return false;while(chain.length>i){react=chain[i++];if(react.fail||!isUnhandled(react.P))return false}return true}function notify(record,isReject){var chain=record.c;if(isReject||chain.length)asap(function(){var promise=record.p,value=record.v,ok=record.s==1,i=0;if(isReject&&isUnhandled(promise)){setTimeout(function(){if(isUnhandled(promise)){if(cof(process)=="process"){process.emit("unhandledRejection",value,promise)}else if(global.console&&isFunction(console.error)){console.error("Unhandled promise rejection",value)}}},1e3)}else while(chain.length>i)!function(react){var cb=ok?react.ok:react.fail,ret,then;try{if(cb){if(!ok)record.h=true;ret=cb===true?value:cb(value);if(ret===react.P){react.rej(TypeError(PROMISE+"-chain cycle"))}else if(then=isThenable(ret)){then.call(ret,react.res,react.rej)}else react.res(ret)}else react.rej(value)}catch(err){react.rej(err)}}(chain[i++]);chain.length=0})}function $reject(value){var record=this;if(record.d)return;record.d=true;record=record.r||record;record.v=value;record.s=2;notify(record,true)}function $resolve(value){var record=this,then,wrapper;if(record.d)return;record.d=true;record=record.r||record;try{if(then=isThenable(value)){wrapper={r:record,d:false};then.call(value,ctx($resolve,wrapper,1),ctx($reject,wrapper,1))}else{record.v=value;record.s=1;notify(record)}}catch(err){$reject.call(wrapper||{r:record,d:false},err)}}if(!(isFunction(P)&&isFunction(P.resolve)&&P.resolve(test=new P(function(){}))==test)){P=function Promise(executor){assertFunction(executor);var record={p:assert.inst(this,P,PROMISE),c:[],s:0,d:false,v:undefined,h:false};$.hide(this,RECORD,record);try{executor(ctx($resolve,record,1),ctx($reject,record,1))}catch(err){$reject.call(record,err)}};$.mix(P.prototype,{then:function then(onFulfilled,onRejected){var S=assertObject(assertObject(this).constructor)[SPECIES];var react={ok:isFunction(onFulfilled)?onFulfilled:true,fail:isFunction(onRejected)?onRejected:false};var promise=react.P=new(S!=undefined?S:P)(function(res,rej){react.res=assertFunction(res);react.rej=assertFunction(rej)});var record=this[RECORD];record.c.push(react);record.s&&notify(record);return promise},"catch":function(onRejected){return this.then(undefined,onRejected)}})}$def($def.G+$def.W+$def.F*(P!=Base),{Promise:P});cof.set(P,PROMISE);require("./$.species")(P);$def($def.S,PROMISE,{reject:function reject(r){return new(getConstructor(this))(function(res,rej){rej(r)})},resolve:function resolve(x){return isObject(x)&&RECORD in x&&$.getProto(x)===this.prototype?x:new(getConstructor(this))(function(res){res(x)})}});$def($def.S+$def.F*!require("./$.iter-detect")(function(iter){P.all(iter)["catch"](function(){})}),PROMISE,{all:function all(iterable){var C=getConstructor(this),values=[];return new C(function(res,rej){forOf(iterable,false,values.push,values);var remaining=values.length,results=Array(remaining);if(remaining)$.each.call(values,function(promise,index){C.resolve(promise).then(function(value){results[index]=value;--remaining||res(results)},rej)});else res(results)})},race:function race(iterable){var C=getConstructor(this);return new C(function(res,rej){forOf(iterable,false,function(promise){C.resolve(promise).then(res,rej)})})}})},{"./$":16,"./$.assert":4,"./$.cof":6,"./$.ctx":10,"./$.def":11,"./$.iter":15,"./$.iter-detect":14,"./$.species":22,"./$.task":24,"./$.uid":25,"./$.wks":27}],48:[function(require,module,exports){var $=require("./$"),$def=require("./$.def"),setProto=require("./$.set-proto"),$iter=require("./$.iter"),ITER=require("./$.uid").safe("iter"),step=$iter.step,assert=require("./$.assert"),isObject=$.isObject,getDesc=$.getDesc,setDesc=$.setDesc,getProto=$.getProto,apply=Function.apply,assertObject=assert.obj,_isExtensible=Object.isExtensible||$.it;function Enumerate(iterated){var keys=[],key;for(key in iterated)keys.push(key);$.set(this,ITER,{o:iterated,a:keys,i:0})}$iter.create(Enumerate,"Object",function(){var iter=this[ITER],keys=iter.a,key;do{if(iter.i>=keys.length)return step(1)}while(!((key=keys[iter.i++])in iter.o));return step(0,key)});function wrap(fn){return function(it){assertObject(it);try{fn.apply(undefined,arguments);return true}catch(e){return false}}}function get(target,propertyKey){var receiver=arguments.length<3?target:arguments[2],desc=getDesc(assertObject(target),propertyKey),proto;if(desc)return $.has(desc,"value")?desc.value:desc.get===undefined?undefined:desc.get.call(receiver);return isObject(proto=getProto(target))?get(proto,propertyKey,receiver):undefined}function set(target,propertyKey,V){var receiver=arguments.length<4?target:arguments[3],ownDesc=getDesc(assertObject(target),propertyKey),existingDescriptor,proto;if(!ownDesc){if(isObject(proto=getProto(target))){return set(proto,propertyKey,V,receiver)}ownDesc=$.desc(0)}if($.has(ownDesc,"value")){if(ownDesc.writable===false||!isObject(receiver))return false;existingDescriptor=getDesc(receiver,propertyKey)||$.desc(0);existingDescriptor.value=V;setDesc(receiver,propertyKey,existingDescriptor);return true}return ownDesc.set===undefined?false:(ownDesc.set.call(receiver,V),true)}var reflect={apply:require("./$.ctx")(Function.call,apply,3),construct:function construct(target,argumentsList){var proto=assert.fn(arguments.length<3?target:arguments[2]).prototype,instance=$.create(isObject(proto)?proto:Object.prototype),result=apply.call(target,instance,argumentsList);return isObject(result)?result:instance},defineProperty:wrap(setDesc),deleteProperty:function deleteProperty(target,propertyKey){var desc=getDesc(assertObject(target),propertyKey);return desc&&!desc.configurable?false:delete target[propertyKey]},enumerate:function enumerate(target){return new Enumerate(assertObject(target))},get:get,getOwnPropertyDescriptor:function getOwnPropertyDescriptor(target,propertyKey){return getDesc(assertObject(target),propertyKey)},getPrototypeOf:function getPrototypeOf(target){return getProto(assertObject(target))},has:function has(target,propertyKey){return propertyKey in target},isExtensible:function isExtensible(target){return!!_isExtensible(assertObject(target))},ownKeys:require("./$.own-keys"),preventExtensions:wrap(Object.preventExtensions||$.it),set:set};if(setProto)reflect.setPrototypeOf=function setPrototypeOf(target,proto){setProto.check(target,proto);try{setProto.set(target,proto);return true}catch(e){return false}};$def($def.G,{Reflect:{}});$def($def.S,"Reflect",reflect)},{"./$":16,"./$.assert":4,"./$.ctx":10,"./$.def":11,"./$.iter":15,"./$.own-keys":18,"./$.set-proto":21,"./$.uid":25}],49:[function(require,module,exports){var $=require("./$"),cof=require("./$.cof"),RegExp=$.g.RegExp,Base=RegExp,proto=RegExp.prototype;if($.FW&&$.DESC){if(!function(){try{return RegExp(/a/g,"i")=="/a/i"}catch(e){}}()){RegExp=function RegExp(pattern,flags){return new Base(cof(pattern)=="RegExp"&&flags!==undefined?pattern.source:pattern,flags)};$.each.call($.getNames(Base),function(key){key in RegExp||$.setDesc(RegExp,key,{configurable:true,get:function(){return Base[key]},set:function(it){Base[key]=it}})});proto.constructor=RegExp;RegExp.prototype=proto;$.hide($.g,"RegExp",RegExp)}if(/./g.flags!="g")$.setDesc(proto,"flags",{configurable:true,get:require("./$.replacer")(/^.*\/(\w*)$/,"$1")})}require("./$.species")(RegExp)},{"./$":16,"./$.cof":6,"./$.replacer":20,"./$.species":22}],50:[function(require,module,exports){"use strict";var strong=require("./$.collection-strong");require("./$.collection")("Set",{add:function add(value){return strong.def(this,value=value===0?0:value,value)}},strong)},{"./$.collection":9,"./$.collection-strong":7}],51:[function(require,module,exports){var $def=require("./$.def");$def($def.P,"String",{codePointAt:require("./$.string-at")(false)})},{"./$.def":11,"./$.string-at":23}],52:[function(require,module,exports){"use strict";var $=require("./$"),cof=require("./$.cof"),$def=require("./$.def"),toLength=$.toLength;$def($def.P,"String",{endsWith:function endsWith(searchString){if(cof(searchString)=="RegExp")throw TypeError();var that=String($.assertDefined(this)),endPosition=arguments[1],len=toLength(that.length),end=endPosition===undefined?len:Math.min(toLength(endPosition),len);searchString+="";return that.slice(end-searchString.length,end)===searchString}})},{"./$":16,"./$.cof":6,"./$.def":11}],53:[function(require,module,exports){var $def=require("./$.def"),toIndex=require("./$").toIndex,fromCharCode=String.fromCharCode;$def($def.S,"String",{fromCodePoint:function fromCodePoint(x){var res=[],len=arguments.length,i=0,code;while(len>i){code=+arguments[i++];if(toIndex(code,1114111)!==code)throw RangeError(code+" is not a valid code point");res.push(code<65536?fromCharCode(code):fromCharCode(((code-=65536)>>10)+55296,code%1024+56320))}return res.join("")}})},{"./$":16,"./$.def":11}],54:[function(require,module,exports){"use strict";var $=require("./$"),cof=require("./$.cof"),$def=require("./$.def");$def($def.P,"String",{includes:function includes(searchString){if(cof(searchString)=="RegExp")throw TypeError();return!!~String($.assertDefined(this)).indexOf(searchString,arguments[1])}})},{"./$":16,"./$.cof":6,"./$.def":11}],55:[function(require,module,exports){var set=require("./$").set,at=require("./$.string-at")(true),ITER=require("./$.uid").safe("iter"),$iter=require("./$.iter"),step=$iter.step;$iter.std(String,"String",function(iterated){set(this,ITER,{o:String(iterated),i:0})},function(){var iter=this[ITER],O=iter.o,index=iter.i,point;if(index>=O.length)return step(1);point=at.call(O,index);iter.i+=point.length;return step(0,point)})},{"./$":16,"./$.iter":15,"./$.string-at":23,"./$.uid":25}],56:[function(require,module,exports){var $=require("./$"),$def=require("./$.def");$def($def.S,"String",{raw:function raw(callSite){var tpl=$.toObject(callSite.raw),len=$.toLength(tpl.length),sln=arguments.length,res=[],i=0;while(len>i){res.push(String(tpl[i++]));if(i<sln)res.push(String(arguments[i]))}return res.join("")}})},{"./$":16,"./$.def":11}],57:[function(require,module,exports){"use strict";var $=require("./$"),$def=require("./$.def");$def($def.P,"String",{repeat:function repeat(count){var str=String($.assertDefined(this)),res="",n=$.toInteger(count);if(n<0||n==Infinity)throw RangeError("Count can't be negative");for(;n>0;(n>>>=1)&&(str+=str))if(n&1)res+=str;return res}})},{"./$":16,"./$.def":11}],58:[function(require,module,exports){"use strict";var $=require("./$"),cof=require("./$.cof"),$def=require("./$.def");$def($def.P,"String",{startsWith:function startsWith(searchString){if(cof(searchString)=="RegExp")throw TypeError();var that=String($.assertDefined(this)),index=$.toLength(Math.min(arguments[1],that.length));searchString+="";return that.slice(index,index+searchString.length)===searchString}})},{"./$":16,"./$.cof":6,"./$.def":11}],59:[function(require,module,exports){"use strict";var $=require("./$"),setTag=require("./$.cof").set,uid=require("./$.uid"),$def=require("./$.def"),keyOf=require("./$.keyof"),has=$.has,hide=$.hide,getNames=$.getNames,toObject=$.toObject,Symbol=$.g.Symbol,Base=Symbol,setter=false,TAG=uid.safe("tag"),SymbolRegistry={},AllSymbols={};function wrap(tag){var sym=AllSymbols[tag]=$.set($.create(Symbol.prototype),TAG,tag);$.DESC&&setter&&$.setDesc(Object.prototype,tag,{configurable:true,set:function(value){hide(this,tag,value)}});return sym}if(!$.isFunction(Symbol)){Symbol=function Symbol(description){if(this instanceof Symbol)throw TypeError("Symbol is not a constructor");return wrap(uid(description))};hide(Symbol.prototype,"toString",function(){return this[TAG]})}$def($def.G+$def.W,{Symbol:Symbol});var symbolStatics={"for":function(key){return has(SymbolRegistry,key+="")?SymbolRegistry[key]:SymbolRegistry[key]=Symbol(key)},keyFor:function keyFor(key){return keyOf(SymbolRegistry,key)},pure:uid.safe,set:$.set,useSetter:function(){setter=true},useSimple:function(){setter=false}};$.each.call(("hasInstance,isConcatSpreadable,iterator,match,replace,search,"+"species,split,toPrimitive,toStringTag,unscopables").split(","),function(it){var sym=require("./$.wks")(it);symbolStatics[it]=Symbol===Base?sym:wrap(sym)});setter=true;$def($def.S,"Symbol",symbolStatics);$def($def.S+$def.F*(Symbol!=Base),"Object",{getOwnPropertyNames:function getOwnPropertyNames(it){var names=getNames(toObject(it)),result=[],key,i=0;while(names.length>i)has(AllSymbols,key=names[i++])||result.push(key);return result},getOwnPropertySymbols:function getOwnPropertySymbols(it){var names=getNames(toObject(it)),result=[],key,i=0;while(names.length>i)has(AllSymbols,key=names[i++])&&result.push(AllSymbols[key]);return result}});setTag(Symbol,"Symbol");setTag(Math,"Math",true);setTag($.g.JSON,"JSON",true)},{"./$":16,"./$.cof":6,"./$.def":11,"./$.keyof":17,"./$.uid":25,"./$.wks":27}],60:[function(require,module,exports){"use strict";var $=require("./$"),weak=require("./$.collection-weak"),leakStore=weak.leakStore,ID=weak.ID,WEAK=weak.WEAK,has=$.has,isObject=$.isObject,isFrozen=Object.isFrozen||$.core.Object.isFrozen,tmp={};var WeakMap=require("./$.collection")("WeakMap",{get:function get(key){if(isObject(key)){if(isFrozen(key))return leakStore(this).get(key);if(has(key,WEAK))return key[WEAK][this[ID]]}},set:function set(key,value){return weak.def(this,key,value)}},weak,true,true);if($.FW&&(new WeakMap).set((Object.freeze||Object)(tmp),7).get(tmp)!=7){$.each.call(["delete","has","get","set"],function(key){var method=WeakMap.prototype[key];WeakMap.prototype[key]=function(a,b){if(isObject(a)&&isFrozen(a)){var result=leakStore(this)[key](a,b);return key=="set"?this:result}return method.call(this,a,b)}})}},{"./$":16,"./$.collection":9,"./$.collection-weak":8}],61:[function(require,module,exports){"use strict";var weak=require("./$.collection-weak");require("./$.collection")("WeakSet",{add:function add(value){return weak.def(this,value,true)}},weak,false,true)},{"./$.collection":9,"./$.collection-weak":8}],62:[function(require,module,exports){var $def=require("./$.def");$def($def.P,"Array",{includes:require("./$.array-includes")(true)});require("./$.unscope")("includes")},{"./$.array-includes":2,"./$.def":11,"./$.unscope":26}],63:[function(require,module,exports){var $=require("./$"),$def=require("./$.def"),ownKeys=require("./$.own-keys");$def($def.S,"Object",{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(object){var O=$.toObject(object),result={};$.each.call(ownKeys(O),function(key){$.setDesc(result,key,$.desc(0,$.getDesc(O,key)))});return result}})},{"./$":16,"./$.def":11,"./$.own-keys":18}],64:[function(require,module,exports){var $=require("./$"),$def=require("./$.def");function createObjectToArray(isEntries){return function(object){var O=$.toObject(object),keys=$.getKeys(object),length=keys.length,i=0,result=Array(length),key;if(isEntries)while(length>i)result[i]=[key=keys[i++],O[key]];else while(length>i)result[i]=O[keys[i++]];return result}}$def($def.S,"Object",{values:createObjectToArray(false),entries:createObjectToArray(true)})},{"./$":16,"./$.def":11}],65:[function(require,module,exports){var $def=require("./$.def");$def($def.S,"RegExp",{escape:require("./$.replacer")(/([\\\-[\]{}()*+?.,^$|])/g,"\\$1",true)})},{"./$.def":11,"./$.replacer":20}],66:[function(require,module,exports){var $def=require("./$.def"),forOf=require("./$.iter").forOf;$def($def.P,"Set",{toJSON:function(){var arr=[];forOf(this,false,arr.push,arr);return arr}})},{"./$.def":11,"./$.iter":15}],67:[function(require,module,exports){var $def=require("./$.def");$def($def.P,"String",{at:require("./$.string-at")(true)})},{"./$.def":11,"./$.string-at":23}],68:[function(require,module,exports){var $=require("./$"),$def=require("./$.def"),$Array=$.core.Array||Array,statics={};function setStatics(keys,length){$.each.call(keys.split(","),function(key){if(length==undefined&&key in $Array)statics[key]=$Array[key];else if(key in[])statics[key]=require("./$.ctx")(Function.call,[][key],length)})}setStatics("pop,reverse,shift,keys,values,entries",1);setStatics("indexOf,every,some,forEach,map,filter,find,findIndex,includes",3);setStatics("join,slice,concat,push,splice,unshift,sort,lastIndexOf,"+"reduce,reduceRight,copyWithin,fill,turn");$def($def.S,"Array",statics)},{"./$":16,"./$.ctx":10,"./$.def":11}],69:[function(require,module,exports){require("./es6.array.iterator");var $=require("./$"),Iterators=require("./$.iter").Iterators,ITERATOR=require("./$.wks")("iterator"),NodeList=$.g.NodeList;if($.FW&&NodeList&&!(ITERATOR in NodeList.prototype)){$.hide(NodeList.prototype,ITERATOR,Iterators.Array)}Iterators.NodeList=Iterators.Array},{"./$":16,"./$.iter":15,"./$.wks":27,"./es6.array.iterator":34}],70:[function(require,module,exports){var $def=require("./$.def"),$task=require("./$.task");$def($def.G+$def.B,{setImmediate:$task.set,clearImmediate:$task.clear})},{"./$.def":11,"./$.task":24}],71:[function(require,module,exports){var $=require("./$"),$def=require("./$.def"),invoke=require("./$.invoke"),partial=require("./$.partial"),MSIE=!!$.g.navigator&&/MSIE .\./.test(navigator.userAgent);function wrap(set){return MSIE?function(fn,time){return set(invoke(partial,[].slice.call(arguments,2),$.isFunction(fn)?fn:Function(fn)),time)}:set}$def($def.G+$def.B+$def.F*MSIE,{setTimeout:wrap($.g.setTimeout),setInterval:wrap($.g.setInterval)})},{"./$":16,"./$.def":11,"./$.invoke":13,"./$.partial":19}],72:[function(require,module,exports){require("./modules/es5");require("./modules/es6.symbol");require("./modules/es6.object.assign");require("./modules/es6.object.is");require("./modules/es6.object.set-prototype-of");require("./modules/es6.object.to-string");require("./modules/es6.object.statics-accept-primitives");require("./modules/es6.function.name");require("./modules/es6.number.constructor");require("./modules/es6.number.statics");require("./modules/es6.math");require("./modules/es6.string.from-code-point");require("./modules/es6.string.raw");require("./modules/es6.string.iterator");require("./modules/es6.string.code-point-at");require("./modules/es6.string.ends-with");require("./modules/es6.string.includes");require("./modules/es6.string.repeat");require("./modules/es6.string.starts-with");require("./modules/es6.array.from");require("./modules/es6.array.of");require("./modules/es6.array.iterator");require("./modules/es6.array.species");require("./modules/es6.array.copy-within");require("./modules/es6.array.fill");require("./modules/es6.array.find");require("./modules/es6.array.find-index");require("./modules/es6.regexp");require("./modules/es6.promise");require("./modules/es6.map");require("./modules/es6.set");require("./modules/es6.weak-map");require("./modules/es6.weak-set");require("./modules/es6.reflect");require("./modules/es7.array.includes");require("./modules/es7.string.at");require("./modules/es7.regexp.escape");require("./modules/es7.object.get-own-property-descriptors");require("./modules/es7.object.to-array");require("./modules/es7.set.to-json");require("./modules/js.array.statics");require("./modules/web.timers");require("./modules/web.immediate");require("./modules/web.dom.iterable");module.exports=require("./modules/$").core},{"./modules/$":16,"./modules/es5":28,"./modules/es6.array.copy-within":29,"./modules/es6.array.fill":30,"./modules/es6.array.find":32,"./modules/es6.array.find-index":31,"./modules/es6.array.from":33,"./modules/es6.array.iterator":34,"./modules/es6.array.of":35,"./modules/es6.array.species":36,"./modules/es6.function.name":37,"./modules/es6.map":38,"./modules/es6.math":39,"./modules/es6.number.constructor":40,"./modules/es6.number.statics":41,"./modules/es6.object.assign":42,"./modules/es6.object.is":43,"./modules/es6.object.set-prototype-of":44,"./modules/es6.object.statics-accept-primitives":45,"./modules/es6.object.to-string":46,"./modules/es6.promise":47,"./modules/es6.reflect":48,"./modules/es6.regexp":49,"./modules/es6.set":50,"./modules/es6.string.code-point-at":51,"./modules/es6.string.ends-with":52,"./modules/es6.string.from-code-point":53,"./modules/es6.string.includes":54,"./modules/es6.string.iterator":55,"./modules/es6.string.raw":56,"./modules/es6.string.repeat":57,"./modules/es6.string.starts-with":58,"./modules/es6.symbol":59,"./modules/es6.weak-map":60,"./modules/es6.weak-set":61,"./modules/es7.array.includes":62,"./modules/es7.object.get-own-property-descriptors":63,"./modules/es7.object.to-array":64,"./modules/es7.regexp.escape":65,"./modules/es7.set.to-json":66,"./modules/es7.string.at":67,"./modules/js.array.statics":68,"./modules/web.dom.iterable":69,"./modules/web.immediate":70,"./modules/web.timers":71}],73:[function(require,module,exports){(function(global){!function(global){"use strict";var hasOwn=Object.prototype.hasOwnProperty;var undefined;var iteratorSymbol=typeof Symbol==="function"&&Symbol.iterator||"@@iterator";var inModule=typeof module==="object";var runtime=global.regeneratorRuntime;if(runtime){if(inModule){module.exports=runtime}return}runtime=global.regeneratorRuntime=inModule?module.exports:{};function wrap(innerFn,outerFn,self,tryLocsList){var generator=Object.create((outerFn||Generator).prototype);generator._invoke=makeInvokeMethod(innerFn,self||null,new Context(tryLocsList||[]));return generator}runtime.wrap=wrap;function tryCatch(fn,obj,arg){try{return{type:"normal",arg:fn.call(obj,arg)}}catch(err){return{type:"throw",arg:err}}}var GenStateSuspendedStart="suspendedStart";var GenStateSuspendedYield="suspendedYield";var GenStateExecuting="executing";var GenStateCompleted="completed";var ContinueSentinel={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var Gp=GeneratorFunctionPrototype.prototype=Generator.prototype;GeneratorFunction.prototype=Gp.constructor=GeneratorFunctionPrototype;GeneratorFunctionPrototype.constructor=GeneratorFunction;GeneratorFunction.displayName="GeneratorFunction";runtime.isGeneratorFunction=function(genFun){var ctor=typeof genFun==="function"&&genFun.constructor;return ctor?ctor===GeneratorFunction||(ctor.displayName||ctor.name)==="GeneratorFunction":false};runtime.mark=function(genFun){genFun.__proto__=GeneratorFunctionPrototype;genFun.prototype=Object.create(Gp);return genFun};runtime.async=function(innerFn,outerFn,self,tryLocsList){return new Promise(function(resolve,reject){var generator=wrap(innerFn,outerFn,self,tryLocsList);var callNext=step.bind(generator,"next");var callThrow=step.bind(generator,"throw");function step(method,arg){var record=tryCatch(generator[method],generator,arg);if(record.type==="throw"){reject(record.arg);return}var info=record.arg;if(info.done){resolve(info.value)}else{Promise.resolve(info.value).then(callNext,callThrow)}}callNext()})};function makeInvokeMethod(innerFn,self,context){var state=GenStateSuspendedStart;return function invoke(method,arg){if(state===GenStateExecuting){throw new Error("Generator is already running")}if(state===GenStateCompleted){return doneResult()}while(true){var delegate=context.delegate;if(delegate){if(method==="return"||method==="throw"&&delegate.iterator.throw===undefined){context.delegate=null;var returnMethod=delegate.iterator.return;if(returnMethod){var record=tryCatch(returnMethod,delegate.iterator,arg);if(record.type==="throw"){method="throw";arg=record.arg;continue}}if(method==="return"){continue}}var record=tryCatch(delegate.iterator[method],delegate.iterator,arg);if(record.type==="throw"){context.delegate=null;method="throw";arg=record.arg;continue}method="next";arg=undefined;var info=record.arg;if(info.done){context[delegate.resultName]=info.value;context.next=delegate.nextLoc}else{state=GenStateSuspendedYield;return info}context.delegate=null}if(method==="next"){if(state===GenStateSuspendedYield){context.sent=arg}else{delete context.sent}}else if(method==="throw"){if(state===GenStateSuspendedStart){state=GenStateCompleted;throw arg}if(context.dispatchException(arg)){method="next";arg=undefined}}else if(method==="return"){context.abrupt("return",arg)}state=GenStateExecuting;var record=tryCatch(innerFn,self,context);if(record.type==="normal"){state=context.done?GenStateCompleted:GenStateSuspendedYield;var info={value:record.arg,done:context.done};if(record.arg===ContinueSentinel){if(context.delegate&&method==="next"){arg=undefined}}else{return info}}else if(record.type==="throw"){state=GenStateCompleted;method="throw";arg=record.arg}}}}function defineGeneratorMethod(method){Gp[method]=function(arg){return this._invoke(method,arg)}}defineGeneratorMethod("next");defineGeneratorMethod("throw");defineGeneratorMethod("return");Gp[iteratorSymbol]=function(){return this};Gp.toString=function(){return"[object Generator]"};function pushTryEntry(locs){var entry={tryLoc:locs[0]};if(1 in locs){entry.catchLoc=locs[1]}if(2 in locs){entry.finallyLoc=locs[2];entry.afterLoc=locs[3]}this.tryEntries.push(entry)}function resetTryEntry(entry){var record=entry.completion||{};record.type="normal";delete record.arg;entry.completion=record}function Context(tryLocsList){this.tryEntries=[{tryLoc:"root"}];tryLocsList.forEach(pushTryEntry,this);this.reset()}runtime.keys=function(object){var keys=[];for(var key in object){keys.push(key)}keys.reverse();return function next(){while(keys.length){var key=keys.pop();if(key in object){next.value=key;next.done=false;return next}}next.done=true;return next}};function values(iterable){if(iterable){var iteratorMethod=iterable[iteratorSymbol];if(iteratorMethod){return iteratorMethod.call(iterable)}if(typeof iterable.next==="function"){return iterable}if(!isNaN(iterable.length)){var i=-1,next=function next(){while(++i<iterable.length){if(hasOwn.call(iterable,i)){next.value=iterable[i];next.done=false;return next}}next.value=undefined;next.done=true;return next};return next.next=next}}return{next:doneResult}}runtime.values=values;function doneResult(){return{value:undefined,done:true}}Context.prototype={constructor:Context,reset:function(){this.prev=0;

    this.next=0;this.sent=undefined;this.done=false;this.delegate=null;this.tryEntries.forEach(resetTryEntry);for(var tempIndex=0,tempName;hasOwn.call(this,tempName="t"+tempIndex)||tempIndex<20;++tempIndex){this[tempName]=null}},stop:function(){this.done=true;var rootEntry=this.tryEntries[0];var rootRecord=rootEntry.completion;if(rootRecord.type==="throw"){throw rootRecord.arg}return this.rval},dispatchException:function(exception){if(this.done){throw exception}var context=this;function handle(loc,caught){record.type="throw";record.arg=exception;context.next=loc;return!!caught}for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];var record=entry.completion;if(entry.tryLoc==="root"){return handle("end")}if(entry.tryLoc<=this.prev){var hasCatch=hasOwn.call(entry,"catchLoc");var hasFinally=hasOwn.call(entry,"finallyLoc");if(hasCatch&&hasFinally){if(this.prev<entry.catchLoc){return handle(entry.catchLoc,true)}else if(this.prev<entry.finallyLoc){return handle(entry.finallyLoc)}}else if(hasCatch){if(this.prev<entry.catchLoc){return handle(entry.catchLoc,true)}}else if(hasFinally){if(this.prev<entry.finallyLoc){return handle(entry.finallyLoc)}}else{throw new Error("try statement without catch or finally")}}}},abrupt:function(type,arg){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.tryLoc<=this.prev&&hasOwn.call(entry,"finallyLoc")&&this.prev<entry.finallyLoc){var finallyEntry=entry;break}}if(finallyEntry&&(type==="break"||type==="continue")&&finallyEntry.tryLoc<=arg&&arg<finallyEntry.finallyLoc){finallyEntry=null}var record=finallyEntry?finallyEntry.completion:{};record.type=type;record.arg=arg;if(finallyEntry){this.next=finallyEntry.finallyLoc}else{this.complete(record)}return ContinueSentinel},complete:function(record,afterLoc){if(record.type==="throw"){throw record.arg}if(record.type==="break"||record.type==="continue"){this.next=record.arg}else if(record.type==="return"){this.rval=record.arg;this.next="end"}else if(record.type==="normal"&&afterLoc){this.next=afterLoc}return ContinueSentinel},finish:function(finallyLoc){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.finallyLoc===finallyLoc){return this.complete(entry.completion,entry.afterLoc)}}},"catch":function(tryLoc){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.tryLoc===tryLoc){var record=entry.completion;if(record.type==="throw"){var thrown=record.arg;resetTryEntry(entry)}return thrown}}throw new Error("illegal catch attempt")},delegateYield:function(iterable,resultName,nextLoc){this.delegate={iterator:values(iterable),resultName:resultName,nextLoc:nextLoc};return ContinueSentinel}}}(typeof global==="object"?global:typeof window==="object"?window:typeof self==="object"?self:this)}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}]},{},[1]);
    6 changes: 3 additions & 3 deletions index.html
    Original file line number Diff line number Diff line change
    @@ -58,9 +58,9 @@

    </style>
    <body>
    <script src="bower_components/babel-polyfill/browser-polyfill.js"></script>
    <script src="bower_components/aureooms-js-itertools/js/dist/itertools.min.js"></script>
    <script src="bower_components/jquery/dist/jquery.min.js"></script>
    <script src="browser-polyfill.js"></script>
    <script src="itertools.min.js"></script>
    <script src="jquery.min.js"></script>
    <script src="d3.min.js" charset="utf-8"></script>
    <script src="topojson.min.js"></script>
    <link href="https://fonts.googleapis.com/css?family=Faster+One|Frijole" rel="stylesheet">
    2 changes: 2 additions & 0 deletions itertools.min.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,2 @@
    "use strict";var _slicedToArray=function(){function e(e,r){var t=[],n=!0,a=!1,u=void 0;try{for(var c,s=e[Symbol.iterator]();!(n=(c=s.next()).done)&&(t.push(c.value),!r||t.length!==r);n=!0);}catch(i){a=!0,u=i}finally{try{!n&&s["return"]&&s["return"]()}finally{if(a)throw u}}return t}return function(r,t){if(Array.isArray(r))return r;if(Symbol.iterator in Object(r))return e(r,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();!function(){var e=function(e,r){var t=regeneratorRuntime.mark(function Q(e,t,n){var a,u,c,s,i,o,f,v,p,x,b,h,k;return regeneratorRuntime.wrap(function(l){for(;;)switch(l.prev=l.next){case 0:if(t!==n){l.next=4;break}return l.next=3,[];case 3:return l.abrupt("return");case 4:a=e[t],u=!0,c=!1,s=r,l.prev=8,i=Q(e,t+1,n)[Symbol.iterator]();case 10:if(u=(o=i.next()).done){l.next=43;break}f=o.value,v=!0,p=!1,x=r,l.prev=15,b=a[Symbol.iterator]();case 17:if(v=(h=b.next()).done){l.next=26;break}return k=h.value,f.push(k),l.next=22,f;case 22:f.pop(k);case 23:v=!0,l.next=17;break;case 26:l.next=32;break;case 28:l.prev=28,l.t0=l["catch"](15),p=!0,x=l.t0;case 32:l.prev=32,l.prev=33,!v&&b["return"]&&b["return"]();case 35:if(l.prev=35,!p){l.next=38;break}throw x;case 38:return l.finish(35);case 39:return l.finish(32);case 40:u=!0,l.next=10;break;case 43:l.next=49;break;case 45:l.prev=45,l.t1=l["catch"](8),c=!0,s=l.t1;case 49:l.prev=49,l.prev=50,!u&&i["return"]&&i["return"]();case 52:if(l.prev=52,!c){l.next=55;break}throw s;case 55:return l.finish(52);case 56:return l.finish(49);case 57:case"end":return l.stop()}},Q,this,[[8,45,49,57],[15,28,32,40],[33,,35,39],[50,,52,56]])});e._product=t;var n=regeneratorRuntime.mark(function U(e){var t,n,a,u,c,s;return regeneratorRuntime.wrap(function(i){for(;;)switch(i.prev=i.next){case 0:t=!0,n=!1,a=r,i.prev=3,u=e[Symbol.iterator]();case 5:if(t=(c=u.next()).done){i.next=11;break}return s=c.value,i.delegateYield(s,"t0",8);case 8:t=!0,i.next=5;break;case 11:i.next=17;break;case 13:i.prev=13,i.t1=i["catch"](3),n=!0,a=i.t1;case 17:i.prev=17,i.prev=18,!t&&u["return"]&&u["return"]();case 20:if(i.prev=20,!n){i.next=23;break}throw a;case 23:return i.finish(20);case 24:return i.finish(17);case 25:case"end":return i.stop()}},U,this,[[3,13,17,25],[18,,20,24]])});e.chain=n;var a=regeneratorRuntime.mark(function V(e,r){var t,n,a,u,c;return regeneratorRuntime.wrap(function(s){for(;;)switch(s.prev=s.next){case 0:if(t=J(e),n=t.length,!(r>n)){s.next=4;break}return s.abrupt("return");case 4:return a=J(N(0,r,1)),s.next=7,J(M(t,a));case 7:u=r-1;case 9:if(!(0>u)){s.next=12;break}return s.abrupt("return");case 12:if(a[u]===u+n-r){s.next=16;break}for(c=++a[u],++u;r>u;++u)a[u]=++c;return s.abrupt("break",19);case 16:--u,s.next=9;break;case 19:return s.next=21,J(M(t,a));case 21:s.next=7;break;case 23:case"end":return s.stop()}},V,this)});e.combinations=a;var u=regeneratorRuntime.mark(function W(e,r){var t,n,a,u,c;return regeneratorRuntime.wrap(function(s){for(;;)switch(s.prev=s.next){case 0:if(t=J(e),n=t.length,!(0===n&&r>0)){s.next=4;break}return s.abrupt("return");case 4:return a=J(x(0,r)),s.next=7,J(M(t,a));case 7:u=r-1;case 9:if(!(0>u)){s.next=12;break}return s.abrupt("return");case 12:if(a[u]===n-1){s.next=16;break}for(c=++a[u],++u;r>u;++u)a[u]=c;return s.abrupt("break",19);case 16:--u,s.next=9;break;case 19:return s.next=21,J(M(t,a));case 21:s.next=7;break;case 23:case"end":return s.stop()}},W,this)});e.combinationswithrepetition=u;var c=regeneratorRuntime.mark(function X(e,t){var n,a,u,c,s,i,o,f;return regeneratorRuntime.wrap(function(v){for(;;)switch(v.prev=v.next){case 0:n=!0,a=!1,u=r,v.prev=3,c=R([t,e])[Symbol.iterator]();case 5:if(n=(s=c.next()).done){v.next=15;break}if(i=_slicedToArray(s.value,2),o=i[0],f=i[1],!o){v.next=12;break}return v.next=12,f;case 12:n=!0,v.next=5;break;case 15:v.next=21;break;case 17:v.prev=17,v.t0=v["catch"](3),a=!0,u=v.t0;case 21:v.prev=21,v.prev=22,!n&&c["return"]&&c["return"]();case 24:if(v.prev=24,!a){v.next=27;break}throw u;case 27:return v.finish(24);case 28:return v.finish(21);case 29:case"end":return v.stop()}},X,this,[[3,17,21,29],[22,,24,28]])});e.compress=c;var s=regeneratorRuntime.mark(function Z(e,t){var n,a,u,c,s,i,o;return regeneratorRuntime.wrap(function(f){for(;;)switch(f.prev=f.next){case 0:n=G(t),a=!0,u=!1,c=r,f.prev=4,s=n[Symbol.iterator]();case 6:if(a=(i=s.next()).done){f.next=17;break}if(o=i.value,!e(o)){f.next=10;break}return f.abrupt("continue",14);case 10:return f.next=12,o;case 12:return f.delegateYield(n,"t0",13);case 13:return f.abrupt("return");case 14:a=!0,f.next=6;break;case 17:f.next=23;break;case 19:f.prev=19,f.t1=f["catch"](4),u=!0,c=f.t1;case 23:f.prev=23,f.prev=24,!a&&s["return"]&&s["return"]();case 26:if(f.prev=26,!u){f.next=29;break}throw c;case 29:return f.finish(26);case 30:return f.finish(23);case 31:case"end":return f.stop()}},Z,this,[[4,19,23,31],[24,,26,30]])});e.dropwhile=s;var i=function(e){return R([q(0,1),e])};e.enumerate=i;var o=regeneratorRuntime.mark(function $(e,t){var n,a,u,c,s,i;return regeneratorRuntime.wrap(function(o){for(;;)switch(o.prev=o.next){case 0:n=!0,a=!1,u=r,o.prev=3,c=t[Symbol.iterator]();case 5:if(n=(s=c.next()).done){o.next=13;break}if(i=s.value,!e(i)){o.next=10;break}return o.next=10,i;case 10:n=!0,o.next=5;break;case 13:o.next=19;break;case 15:o.prev=15,o.t0=o["catch"](3),a=!0,u=o.t0;case 19:o.prev=19,o.prev=20,!n&&c["return"]&&c["return"]();case 22:if(o.prev=22,!a){o.next=25;break}throw u;case 25:return o.finish(22);case 26:return o.finish(19);case 27:case"end":return o.stop()}},$,this,[[3,15,19,27],[20,,22,26]])});e.filter=o,e.filtertrue=o;var f=regeneratorRuntime.mark(function ee(e,t){var n,a,u,c,s,i;return regeneratorRuntime.wrap(function(o){for(;;)switch(o.prev=o.next){case 0:n=!0,a=!1,u=r,o.prev=3,c=t[Symbol.iterator]();case 5:if(n=(s=c.next()).done){o.next=13;break}if(i=s.value,e(i)){o.next=10;break}return o.next=10,i;case 10:n=!0,o.next=5;break;case 13:o.next=19;break;case 15:o.prev=15,o.t0=o["catch"](3),a=!0,u=o.t0;case 19:o.prev=19,o.prev=20,!n&&c["return"]&&c["return"]();case 22:if(o.prev=22,!a){o.next=25;break}throw u;case 25:return o.finish(22);case 26:return o.finish(19);case 27:case"end":return o.stop()}},ee,this,[[3,15,19,27],[20,,22,26]])});e.filterfalse=f;var v=regeneratorRuntime.mark(function re(e,t){var n,a,u,c,s,i,o;return regeneratorRuntime.wrap(function(f){for(;;)switch(f.prev=f.next){case 0:if(n=G(t),a=L(n),!a.done){f.next=4;break}return f.abrupt("return");case 4:u=a.value,c=e(u),s=r,i=r;case 7:s=c,i=[u];case 10:if(o=L(n),!o.done){f.next=14;break}return f.abrupt("break",26);case 14:if(u=o.value,c=e(u),c===s){f.next=20;break}return f.next=19,[s,i];case 19:return f.abrupt("continue",7);case 20:i.push(u),f.next=10;break;case 23:return f.abrupt("break",26);case 26:return f.next=28,[s,i];case 28:case"end":return f.stop()}},re,this)});e.group=v,e.groupby=v;var p=regeneratorRuntime.mark(function te(e,t){var n,a,u,c,s,i;return regeneratorRuntime.wrap(function(o){for(;;)switch(o.prev=o.next){case 0:n=!0,a=!1,u=r,o.prev=3,c=t[Symbol.iterator]();case 5:if(n=(s=c.next()).done){o.next=12;break}return i=s.value,o.next=9,e(i);case 9:n=!0,o.next=5;break;case 12:o.next=18;break;case 14:o.prev=14,o.t0=o["catch"](3),a=!0,u=o.t0;case 18:o.prev=18,o.prev=19,!n&&c["return"]&&c["return"]();case 21:if(o.prev=21,!a){o.next=24;break}throw u;case 24:return o.finish(21);case 25:return o.finish(18);case 26:case"end":return o.stop()}},te,this,[[3,14,18,26],[19,,21,25]])});e.map=p;var x=regeneratorRuntime.mark(function ne(e,r){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(!(r-->0)){t.next=5;break}return t.next=3,e;case 3:t.next=0;break;case 5:case"end":return t.stop()}},ne,this)});e.nrepeat=x;var b=regeneratorRuntime.mark(function ae(e,r){var t,n,a,u,c,s,i;return regeneratorRuntime.wrap(function(o){for(;;)switch(o.prev=o.next){case 0:if(t=J(e),n=t.length,!(r>n)){o.next=4;break}return o.abrupt("return");case 4:return a=J(N(0,n,1)),u=J(N(n,n-r,-1)),o.next=8,J(M(t,F(a,r)));case 8:if(0!==r&&0!==n){o.next=10;break}return o.abrupt("return");case 10:c=r;case 12:if(!c--){o.next=28;break}if(--u[c],0!==u[c]){o.next=19;break}a.push(a.splice(c,1)[0]),u[c]=n-c,o.next=26;break;case 19:return s=u[c],i=[a[n-s],a[c]],a[c]=i[0],a[n-s]=i[1],o.next=25,J(M(t,F(a,r)));case 25:return o.abrupt("break",28);case 26:o.next=12;break;case 28:if(-1!==c){o.next=30;break}return o.abrupt("return");case 30:o.next=10;break;case 32:case"end":return o.stop()}},ae,this)});e.permutations=b;var h=regeneratorRuntime.mark(function ue(e,r){var n;return regeneratorRuntime.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return n=J(K(l(p(J,e)),r)),a.delegateYield(p(J,t(n,0,n.length)),"t0",2);case 2:case"end":return a.stop()}},ue,this)});e.product=h;var k=regeneratorRuntime.mark(function ce(e){return regeneratorRuntime.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=3,e;case 3:r.next=0;break;case 5:case"end":return r.stop()}},ce,this)});e.repeat=k;var l=regeneratorRuntime.mark(function se(e){var t,n,a,u,c,s,i;return regeneratorRuntime.wrap(function(o){for(;;)switch(o.prev=o.next){case 0:for(t=[],n=!0,a=!1,u=r,o.prev=4,c=e[Symbol.iterator]();!(n=(s=c.next()).done);n=!0)i=s.value,t.push(i);o.next=12;break;case 8:o.prev=8,o.t0=o["catch"](4),a=!0,u=o.t0;case 12:o.prev=12,o.prev=13,!n&&c["return"]&&c["return"]();case 15:if(o.prev=15,!a){o.next=18;break}throw u;case 18:return o.finish(15);case 19:return o.finish(12);case 20:if(!t.length){o.next=25;break}return o.next=23,t.pop();case 23:o.next=20;break;case 25:case"end":return o.stop()}},se,this,[[4,8,12,20],[13,,15,19]])});e.reversed=l;var m=regeneratorRuntime.mark(function ie(e){var r,t,n,a;return regeneratorRuntime.wrap(function(u){for(;;)switch(u.prev=u.next){case 0:r=H(e),t=B(p(G,e));case 2:if(!r){u.next=16;break}case 3:if(n=L(t).value,a=L(n),!a.done){u.next=8;break}return u.abrupt("break",12);case 8:return u.next=10,a.value;case 10:u.next=3;break;case 12:--r,t=B(d(t,0,r,1)),u.next=2;break;case 16:case"end":return u.stop()}},ie,this)});e.roundrobin=m;var d=regeneratorRuntime.mark(function oe(e,r,t,n){var a,u,c;return regeneratorRuntime.wrap(function(s){for(;;)switch(s.prev=s.next){case 0:a=G(e);case 1:if(!(r>0)){s.next=8;break}if(!L(a).done){s.next=4;break}return s.abrupt("return");case 4:--r,--t,s.next=1;break;case 8:if(!(t>0)){s.next=24;break}if(u=L(a),!u.done){s.next=12;break}return s.abrupt("return");case 12:return s.next=14,u.value;case 14:--t,c=n;case 16:if(!(c>1)){s.next=22;break}if(!L(a).done){s.next=19;break}return s.abrupt("return");case 19:--c,s.next=16;break;case 22:s.next=8;break;case 24:case"end":return s.stop()}},oe,this)});e.slice=d;var w=function(e,r){return J(r).sort(e)};e.sorted=w;var y=regeneratorRuntime.mark(function fe(e,t){var n,a,u,c,s,i;return regeneratorRuntime.wrap(function(o){for(;;)switch(o.prev=o.next){case 0:n=!0,a=!1,u=r,o.prev=3,c=t[Symbol.iterator]();case 5:if(n=(s=c.next()).done){o.next=12;break}return i=s.value,o.next=9,e.apply(null,i);case 9:n=!0,o.next=5;break;case 12:o.next=18;break;case 14:o.prev=14,o.t0=o["catch"](3),a=!0,u=o.t0;case 18:o.prev=18,o.prev=19,!n&&c["return"]&&c["return"]();case 21:if(o.prev=21,!a){o.next=24;break}throw u;case 24:return o.finish(21);case 25:return o.finish(18);case 26:case"end":return o.stop()}},fe,this,[[3,14,18,26],[19,,21,25]])});e.starmap=y;var g=regeneratorRuntime.mark(function ve(e,t){var n,a,u,c,s,i;return regeneratorRuntime.wrap(function(o){for(;;)switch(o.prev=o.next){case 0:n=!0,a=!1,u=r,o.prev=3,c=t[Symbol.iterator]();case 5:if(n=(s=c.next()).done){o.next=14;break}if(i=s.value,e(i)){o.next=9;break}return o.abrupt("return");case 9:return o.next=11,i;case 11:n=!0,o.next=5;break;case 14:o.next=20;break;case 16:o.prev=16,o.t0=o["catch"](3),a=!0,u=o.t0;case 20:o.prev=20,o.prev=21,!n&&c["return"]&&c["return"]();case 23:if(o.prev=23,!a){o.next=26;break}throw u;case 26:return o.finish(23);case 27:return o.finish(20);case 28:case"end":return o.stop()}},ve,this,[[3,16,20,28],[21,,23,27]])});e.takewhile=g;var R=regeneratorRuntime.mark(function pe(e){var t,n,a,u,c,s,i,o;return regeneratorRuntime.wrap(function(f){for(;;)switch(f.prev=f.next){case 0:if(t=J(p(G,e)),0!==t.length){f.next=3;break}return f.abrupt("return");case 3:n=[],a=!0,u=!1,c=r,f.prev=8,s=p(L,t)[Symbol.iterator]();case 10:if(a=(i=s.next()).done){f.next=18;break}if(o=i.value,!o.done){f.next=14;break}return f.abrupt("return");case 14:n.push(o.value);case 15:a=!0,f.next=10;break;case 18:f.next=24;break;case 20:f.prev=20,f.t0=f["catch"](8),u=!0,c=f.t0;case 24:f.prev=24,f.prev=25,!a&&s["return"]&&s["return"]();case 27:if(f.prev=27,!u){f.next=30;break}throw c;case 30:return f.finish(27);case 31:return f.finish(24);case 32:return f.next=34,n;case 34:f.next=3;break;case 36:case"end":return f.stop()}},pe,this,[[8,20,24,32],[25,,27,31]])});e.zip=R;var S=function(e){var t=!0,n=!1,a=r;try{for(var u,c=e[Symbol.iterator]();!(t=(u=c.next()).done);t=!0){var s=u.value;if(!s)return!1}}catch(i){n=!0,a=i}finally{try{!t&&c["return"]&&c["return"]()}finally{if(n)throw a}}return!0};e.all=S;var j=function(e){var t=!0,n=!1,a=r;try{for(var u,c=e[Symbol.iterator]();!(t=(u=c.next()).done);t=!0){var s=u.value;if(s)return!0}}catch(i){n=!0,a=i}finally{try{!t&&c["return"]&&c["return"]()}finally{if(n)throw a}}return!1};e.any=j;var Y=function(e,t){var n=G(t),a=L(n);if(a.done)return r;var u=a.value,c=!0,s=!1,i=r;try{for(var o,f=n[Symbol.iterator]();!(c=(o=f.next()).done);c=!0){var v=o.value;e(v,u)>0&&(u=v)}}catch(p){s=!0,i=p}finally{try{!c&&f["return"]&&f["return"]()}finally{if(s)throw i}}return u};e.max=Y;var A=function(e,t){var n=G(t),a=L(n);if(a.done)return r;var u=a.value,c=!0,s=!1,i=r;try{for(var o,f=n[Symbol.iterator]();!(c=(o=f.next()).done);c=!0){var v=o.value;e(v,u)<0&&(u=v)}}catch(p){s=!0,i=p}finally{try{!c&&f["return"]&&f["return"]()}finally{if(s)throw i}}return u};e.min=A;var _=function(e,t,n){var a=!0,u=!1,c=r;try{for(var s,i=t[Symbol.iterator]();!(a=(s=i.next()).done);a=!0){var o=s.value;n=e(n,o)}}catch(f){u=!0,c=f}finally{try{!a&&i["return"]&&i["return"]()}finally{if(u)throw c}}return n};e.reduce=_;var T=function(e,t){if(0>=t)return!0;var n=!0,a=!1,u=r;try{for(var c,s=e[Symbol.iterator]();!(n=(c=s.next()).done);n=!0){var i=c.value;if(i&&0===--t)return!0}}catch(o){a=!0,u=o}finally{try{!n&&s["return"]&&s["return"]()}finally{if(a)throw u}}return!1};e.some=T;var z=function(e){var t=0,n=!0,a=!1,u=r;try{for(var c,s=e[Symbol.iterator]();!(n=(c=s.next()).done);n=!0){var i=c.value;t+=i}}catch(o){a=!0,u=o}finally{try{!n&&s["return"]&&s["return"]()}finally{if(a)throw u}}return t};e.sum=z;var E=regeneratorRuntime.mark(function xe(e,r,t){return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:if(!(0>t)){n.next=9;break}case 1:if(!(e>r)){n.next=7;break}return n.next=4,e;case 4:e+=t,n.next=1;break;case 7:n.next=15;break;case 9:if(!(r>e)){n.next=15;break}return n.next=12,e;case 12:e+=t,n.next=9;break;case 15:case"end":return n.stop()}},xe,this)});e._range=E;var I=regeneratorRuntime.mark(function be(e,t){var n,a,u,c,s,i,o,f,v,p,x,b,h,k,l;return regeneratorRuntime.wrap(function(m){for(;;)switch(m.prev=m.next){case 0:n=G(e);case 1:a=[],u=!0,c=!1,s=r,m.prev=6,i=N(t)[Symbol.iterator]();case 8:if(u=(o=i.next()).done){m.next=40;break}if(f=o.value,v=L(n),!v.done){m.next=36;break}if(0!==f){m.next=14;break}return m.abrupt("return");case 14:for(p=!0,x=!1,b=r,m.prev=17,h=N(t-f)[Symbol.iterator]();!(p=(k=h.next()).done);p=!0)l=k.value,a.push(r);m.next=25;break;case 21:m.prev=21,m.t0=m["catch"](17),x=!0,b=m.t0;case 25:m.prev=25,m.prev=26,!p&&h["return"]&&h["return"]();case 28:if(m.prev=28,!x){m.next=31;break}throw b;case 31:return m.finish(28);case 32:return m.finish(25);case 33:return m.next=35,a;case 35:return m.abrupt("return");case 36:a.push(v.value);case 37:u=!0,m.next=8;break;case 40:m.next=46;break;case 42:m.prev=42,m.t1=m["catch"](6),c=!0,s=m.t1;case 46:m.prev=46,m.prev=47,!u&&i["return"]&&i["return"]();case 49:if(m.prev=49,!c){m.next=52;break}throw s;case 52:return m.finish(49);case 53:return m.finish(46);case 54:return m.next=56,a;case 56:m.next=1;break;case 58:case"end":return m.stop()}},be,this,[[6,42,46,54],[17,21,25,33],[26,,28,32],[47,,49,53]])});e.by=I;var O=function(e,r){for(;r-->0&&!L(e).done;);};e.consume=O;var q=regeneratorRuntime.mark(function he(e,r){return regeneratorRuntime.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=3,e;case 3:e+=r,t.next=0;break;case 6:case"end":return t.stop()}},he,this)});e.count=q;var B=regeneratorRuntime.mark(function ke(e){var t,n,a,u,c,s,i;return regeneratorRuntime.wrap(function(o){for(;;)switch(o.prev=o.next){case 0:t=[],n=!0,a=!1,u=r,o.prev=4,c=e[Symbol.iterator]();case 6:if(n=(s=c.next()).done){o.next=14;break}return i=s.value,o.next=10,i;case 10:t.push(i);case 11:n=!0,o.next=6;break;case 14:o.next=20;break;case 16:o.prev=16,o.t0=o["catch"](4),a=!0,u=o.t0;case 20:o.prev=20,o.prev=21,!n&&c["return"]&&c["return"]();case 23:if(o.prev=23,!a){o.next=26;break}throw u;case 26:return o.finish(23);case 27:return o.finish(20);case 28:if(0!==t.length){o.next=30;break}return o.abrupt("return");case 30:return o.delegateYield(t,"t1",32);case 32:o.next=30;break;case 34:case"end":return o.stop()}},ke,this,[[4,16,20,28],[21,,23,27]])});e.cycle=B;var C=function(e){var t=!0,n=!1,a=r;try{for(var u,c=e[Symbol.iterator]();!(t=(u=c.next()).done);t=!0){u.value}}catch(s){n=!0,a=s}finally{try{!t&&c["return"]&&c["return"]()}finally{if(n)throw a}}};e.exhaust=C;var D=regeneratorRuntime.mark(function le(e,t){var n,a,u,c,s,i,o,f,v,p,x,b,h,k,l;return regeneratorRuntime.wrap(function(m){for(;;)switch(m.prev=m.next){case 0:n=G(e),a=[],u=!0,c=!1,s=r,m.prev=5,i=N(t)[Symbol.iterator]();case 7:if(u=(o=i.next()).done){m.next=16;break}if(f=o.value,v=L(n),!v.done){m.next=12;break}return m.abrupt("return");case 12:a.push(v.value);case 13:u=!0,m.next=7;break;case 16:m.next=22;break;case 18:m.prev=18,m.t0=m["catch"](5),c=!0,s=m.t0;case 22:m.prev=22,m.prev=23,!u&&i["return"]&&i["return"]();case 25:if(m.prev=25,!c){m.next=28;break}throw s;case 28:return m.finish(25);case 29:return m.finish(22);case 30:return m.next=32,a;case 32:p=!0,x=!1,b=r,m.prev=35,h=n[Symbol.iterator]();case 37:if(p=(k=h.next()).done){m.next=46;break}return l=k.value,a=a.slice(1),a.push(l),m.next=43,a;case 43:p=!0,m.next=37;break;case 46:m.next=52;break;case 48:m.prev=48,m.t1=m["catch"](35),x=!0,b=m.t1;case 52:m.prev=52,m.prev=53,!p&&h["return"]&&h["return"]();case 55:if(m.prev=55,!x){m.next=58;break}throw b;case 58:return m.finish(55);case 59:return m.finish(52);case 60:case"end":return m.stop()}},le,this,[[5,18,22,30],[23,,25,29],[35,48,52,60],[53,,55,59]])});e.frame=D;var F=regeneratorRuntime.mark(function me(e,r){var t,n;return regeneratorRuntime.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:t=G(e);case 1:if(!(r-->0)){a.next=9;break}if(n=L(t),!n.done){a.next=5;break}return a.abrupt("return");case 5:return a.next=7,n.value;case 7:a.next=1;break;case 9:case"end":return a.stop()}},me,this)});e.head=F;var G=function(e){return e[Symbol.iterator]()};e.iter=G;var H=function(e){return e.length};e.len=H;var J=function(e){var t=[],n=!0,a=!1,u=r;try{for(var c,s=e[Symbol.iterator]();!(n=(c=s.next()).done);n=!0){var i=c.value;t.push(i)}}catch(o){a=!0,u=o}finally{try{!n&&s["return"]&&s["return"]()}finally{if(a)throw u}}return t};e.list=J;var K=regeneratorRuntime.mark(function de(e,t){var n,a,u,c,s,i,o;return regeneratorRuntime.wrap(function(f){for(;;)switch(f.prev=f.next){case 0:n=[],a=!0,u=!1,c=r,f.prev=4,s=e[Symbol.iterator]();case 6:if(a=(i=s.next()).done){f.next=14;break}return o=i.value,f.next=10,o;case 10:n.push(o);case 11:a=!0,f.next=6;break;case 14:f.next=20;break;case 16:f.prev=16,f.t0=f["catch"](4),u=!0,c=f.t0;case 20:f.prev=20,f.prev=21,!a&&s["return"]&&s["return"]();case 23:if(f.prev=23,!u){f.next=26;break}throw c;case 26:return f.finish(23);case 27:return f.finish(20);case 28:if(0!==n.length){f.next=30;break}return f.abrupt("return");case 30:if(!(--t>0)){f.next=34;break}return f.delegateYield(n,"t1",32);case 32:f.next=30;break;case 34:case"end":return f.stop()}},de,this,[[4,16,20,28],[21,,23,27]])});e.ncycle=K;var L=function(e){return e.next()};e.next=L;var M=regeneratorRuntime.mark(function we(e,t){var n,a,u,c,s,i;return regeneratorRuntime.wrap(function(o){for(;;)switch(o.prev=o.next){case 0:n=!0,a=!1,u=r,o.prev=3,c=t[Symbol.iterator]();case 5:if(n=(s=c.next()).done){o.next=12;break}return i=s.value,o.next=9,e[i];case 9:n=!0,o.next=5;break;case 12:o.next=18;break;case 14:o.prev=14,o.t0=o["catch"](3),a=!0,u=o.t0;case 18:o.prev=18,o.prev=19,!n&&c["return"]&&c["return"]();case 21:if(o.prev=21,!a){o.next=24;break}throw u;case 24:return o.finish(21);case 25:return o.finish(18);case 26:case"end":return o.stop()}},we,this,[[3,14,18,26],[19,,21,25]])});e.pick=M;var N=function(e,t,n){return t===r?E(0,e,1):n===r?E(e,t,1):E(e,t,n)};e.range=N;var P=function(e,t){for(var n=G(e),a=[];t-->0;)a.push([]);var u=regeneratorRuntime.mark(function c(e){var t,u,s,i,o,f,v;return regeneratorRuntime.wrap(function(c){for(;;)switch(c.prev=c.next){case 0:if(0!==e.length){c.next=24;break}if(t=L(n),!t.done){c.next=5;break}return c.abrupt("return");case 5:for(u=!0,s=!1,i=r,c.prev=8,o=a[Symbol.iterator]();!(u=(f=o.next()).done);u=!0)v=f.value,v.push(t.value);c.next=16;break;case 12:c.prev=12,c.t0=c["catch"](8),s=!0,i=c.t0;case 16:c.prev=16,c.prev=17,!u&&o["return"]&&o["return"]();case 19:if(c.prev=19,!s){c.next=22;break}throw i;case 22:return c.finish(19);case 23:return c.finish(16);case 24:return c.next=26,e.shift();case 26:c.next=0;break;case 28:case"end":return c.stop()}},c,this,[[8,12,16,24],[17,,19,23]])});return J(p(u,a))};return e.tee=P,e};"object"==typeof exports?e(exports):"function"==typeof define&&define.amd?define("aureooms-js-itertools",[],function(){return e({})}):"object"==typeof window&&"object"==typeof window.document?e(window.itertools={}):console.error("unable to detect type of module to define for aureooms-js-itertools")}();
    //# sourceMappingURL=js/dist/itertools.js.map
    4 changes: 4 additions & 0 deletions jquery.min.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,4 @@
    /*! jQuery v3.1.1 | (c) jQuery Foundation | jquery.org/license */
    !function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=r.isArray(d)))?(e?(e=!1,f=c&&r.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}return!1}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):C.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/[^\x20\t\r\n\f]+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,M,e),g(f,c,N,e)):(f++,j.call(a,g(f,c,M,e),g(f,c,N,e),g(f,c,M,c.notifyWith))):(d!==M&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R),
    a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},T=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function U(){this.expando=r.expando+U.uid++}U.uid=1,U.prototype={cache:function(a){var b=a[this.expando];return b||(b={},T(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){r.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(K)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var V=new U,W=new U,X=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Y=/[A-Z]/g;function Z(a){return"true"===a||"false"!==a&&("null"===a?null:a===+a+""?+a:X.test(a)?JSON.parse(a):a)}function $(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Y,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c=Z(c)}catch(e){}W.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return W.hasData(a)||V.hasData(a)},data:function(a,b,c){return W.access(a,b,c)},removeData:function(a,b){W.remove(a,b)},_data:function(a,b,c){return V.access(a,b,c)},_removeData:function(a,b){V.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=W.get(f),1===f.nodeType&&!V.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),$(f,d,e[d])));V.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){W.set(this,a)}):S(this,function(b){var c;if(f&&void 0===b){if(c=W.get(f,a),void 0!==c)return c;if(c=$(f,a),void 0!==c)return c}else this.each(function(){W.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=V.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var _=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,aa=new RegExp("^(?:([+-])=|)("+_+")([a-z%]*)$","i"),ba=["Top","Right","Bottom","Left"],ca=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},da=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function ea(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&aa.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var fa={};function ga(a){var b,c=a.ownerDocument,d=a.nodeName,e=fa[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),fa[d]=e,e)}function ha(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=V.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&ca(d)&&(e[f]=ga(d))):"none"!==c&&(e[f]="none",V.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ha(this,!0)},hide:function(){return ha(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){ca(this)?r(this).show():r(this).hide()})}});var ia=/^(?:checkbox|radio)$/i,ja=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,ka=/^$|\/(?:java|ecma)script/i,la={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};la.optgroup=la.option,la.tbody=la.tfoot=la.colgroup=la.caption=la.thead,la.th=la.td;function ma(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function na(a,b){for(var c=0,d=a.length;c<d;c++)V.set(a[c],"globalEval",!b||V.get(b[c],"globalEval"))}var oa=/<|&#?\w+;/;function pa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(oa.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ja.exec(f)||["",""])[1].toLowerCase(),i=la[h]||la._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=ma(l.appendChild(f),"script"),j&&na(g),c){k=0;while(f=g[k++])ka.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var qa=d.documentElement,ra=/^key/,sa=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ta=/^([^.]*)(?:\.(.+)|)/;function ua(){return!0}function va(){return!1}function wa(){try{return d.activeElement}catch(a){}}function xa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)xa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=va;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(qa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g,h=[],i=b.delegateCount,j=a.target;if(i&&j.nodeType&&!("click"===a.type&&a.button>=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c<i;c++)d=b[c],e=d.selector+" ",void 0===g[e]&&(g[e]=d.needsContext?r(e,this).index(j)>-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i<b.length&&h.push({elem:j,handlers:b.slice(i)}),h},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==wa()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===wa()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&r.nodeName(this,"input"))return this.click(),!1},_default:function(a){return r.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ua:va,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:va,isPropagationStopped:va,isImmediatePropagationStopped:va,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ua,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ua,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ua,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&ra.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&sa.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return xa(this,a,b,c,d)},one:function(a,b,c,d){return xa(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=va),this.each(function(){r.event.remove(this,a,c,b)})}});var ya=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,za=/<script|<style|<link/i,Aa=/checked\s*(?:[^=]|=\s*.checked.)/i,Ba=/^true\/(.*)/,Ca=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Da(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function Ea(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Fa(a){var b=Ba.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ga(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}W.hasData(a)&&(h=W.access(a),i=r.extend({},h),W.set(b,i))}}function Ha(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ia.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ia(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&Aa.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ia(f,b,c,d)});if(m&&(e=pa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(ma(e,"script"),Ea),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,ma(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Fa),l=0;l<i;l++)j=h[l],ka.test(j.type||"")&&!V.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Ca,""),k))}return a}function Ja(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(ma(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&na(ma(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(ya,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=ma(h),f=ma(a),d=0,e=f.length;d<e;d++)Ha(f[d],g[d]);if(b)if(c)for(f=f||ma(a),g=g||ma(h),d=0,e=f.length;d<e;d++)Ga(f[d],g[d]);else Ga(a,h);return g=ma(h,"script"),g.length>0&&na(g,!i&&ma(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ja(this,a,!0)},remove:function(a){return Ja(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.appendChild(a)}})},prepend:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(ma(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!za.test(a)&&!la[(ja.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(ma(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ia(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(ma(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var Ka=/^margin/,La=new RegExp("^("+_+")(?!px)[a-z%]+$","i"),Ma=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",qa.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,qa.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Na(a,b,c){var d,e,f,g,h=a.style;return c=c||Ma(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&La.test(g)&&Ka.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Oa(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Pa=/^(none|table(?!-c[ea]).+)/,Qa={position:"absolute",visibility:"hidden",display:"block"},Ra={letterSpacing:"0",fontWeight:"400"},Sa=["Webkit","Moz","ms"],Ta=d.createElement("div").style;function Ua(a){if(a in Ta)return a;var b=a[0].toUpperCase()+a.slice(1),c=Sa.length;while(c--)if(a=Sa[c]+b,a in Ta)return a}function Va(a,b,c){var d=aa.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Wa(a,b,c,d,e){var f,g=0;for(f=c===(d?"border":"content")?4:"width"===b?1:0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+ba[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+ba[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+ba[f]+"Width",!0,e))):(g+=r.css(a,"padding"+ba[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+ba[f]+"Width",!0,e)));return g}function Xa(a,b,c){var d,e=!0,f=Ma(a),g="border-box"===r.css(a,"boxSizing",!1,f);if(a.getClientRects().length&&(d=a.getBoundingClientRect()[b]),d<=0||null==d){if(d=Na(a,b,f),(d<0||null==d)&&(d=a.style[b]),La.test(d))return d;e=g&&(o.boxSizingReliable()||d===a.style[b]),d=parseFloat(d)||0}return d+Wa(a,b,c||(g?"border":"content"),e,f)+"px"}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Na(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=a.style;return b=r.cssProps[h]||(r.cssProps[h]=Ua(h)||h),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=aa.exec(c))&&e[1]&&(c=ea(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b);return b=r.cssProps[h]||(r.cssProps[h]=Ua(h)||h),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Na(a,b,d)),"normal"===e&&b in Ra&&(e=Ra[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Pa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?Xa(a,b,d):da(a,Qa,function(){return Xa(a,b,d)})},set:function(a,c,d){var e,f=d&&Ma(a),g=d&&Wa(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=aa.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Va(a,c,g)}}}),r.cssHooks.marginLeft=Oa(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Na(a,"marginLeft"))||a.getBoundingClientRect().left-da(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+ba[d]+b]=f[d]||f[d-2]||f[0];return e}},Ka.test(a)||(r.cssHooks[a+b].set=Va)}),r.fn.extend({css:function(a,b){return S(this,function(a,b,c){var d,e,f={},g=0;if(r.isArray(b)){for(d=Ma(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function Ya(a,b,c,d,e){return new Ya.prototype.init(a,b,c,d,e)}r.Tween=Ya,Ya.prototype={constructor:Ya,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=Ya.propHooks[this.prop];return a&&a.get?a.get(this):Ya.propHooks._default.get(this)},run:function(a){var b,c=Ya.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ya.propHooks._default.set(this),this}},Ya.prototype.init.prototype=Ya.prototype,Ya.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Ya.propHooks.scrollTop=Ya.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=Ya.prototype.init,r.fx.step={};var Za,$a,_a=/^(?:toggle|show|hide)$/,ab=/queueHooks$/;function bb(){$a&&(a.requestAnimationFrame(bb),r.fx.tick())}function cb(){return a.setTimeout(function(){Za=void 0}),Za=r.now()}function db(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ba[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function eb(a,b,c){for(var d,e=(hb.tweeners[b]||[]).concat(hb.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function fb(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,p=a.nodeType&&ca(a),q=V.get(a,"fxshow");c.queue||(g=r._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],_a.test(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=V.get(a,"display")),k=r.css(a,"display"),"none"===k&&(j?k=j:(ha([a],!0),j=a.style.display||j,k=r.css(a,"display"),ha([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===r.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?"hidden"in q&&(p=q.hidden):q=V.access(a,"fxshow",{display:j}),f&&(q.hidden=!p),p&&ha([a],!0),m.done(function(){p||ha([a]),V.remove(a,"fxshow");for(d in n)r.style(a,d,n[d])})),i=eb(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function gb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],r.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=r.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function hb(a,b,c){var d,e,f=0,g=hb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Za||cb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:Za||cb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(gb(k,j.opts.specialEasing);f<g;f++)if(d=hb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,eb,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}r.Animation=r.extend(hb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return ea(c.elem,a,aa.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=["*"]):a=a.match(K);for(var c,d=0,e=a.length;d<e;d++)c=a[d],hb.tweeners[c]=hb.tweeners[c]||[],hb.tweeners[c].unshift(b)},prefilters:[fb],prefilter:function(a,b){b?hb.prefilters.unshift(a):hb.prefilters.push(a)}}),r.speed=function(a,b,c){var e=a&&"object"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off||d.hidden?e.duration=0:"number"!=typeof e.duration&&(e.duration in r.fx.speeds?e.duration=r.fx.speeds[e.duration]:e.duration=r.fx.speeds._default),null!=e.queue&&e.queue!==!0||(e.queue="fx"),e.old=e.complete,e.complete=function(){r.isFunction(e.old)&&e.old.call(this),e.queue&&r.dequeue(this,e.queue)},e},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(ca).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=hb(this,r.extend({},a),f);(e||V.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=r.timers,g=V.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&ab.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=V.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each(["toggle","show","hide"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(db(b,!0),a,d,e)}}),r.each({slideDown:db("show"),slideUp:db("hide"),slideToggle:db("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(Za=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),Za=void 0},r.fx.timer=function(a){r.timers.push(a),a()?r.fx.start():r.timers.pop()},r.fx.interval=13,r.fx.start=function(){$a||($a=a.requestAnimationFrame?a.requestAnimationFrame(bb):a.setInterval(r.fx.tick,r.fx.interval))},r.fx.stop=function(){a.cancelAnimationFrame?a.cancelAnimationFrame($a):a.clearInterval($a),$a=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var ib,jb=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return S(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?ib:void 0)),
    void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),ib={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=jb[b]||r.find.attr;jb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=jb[g],jb[g]=e,e=null!=c(a,b,d)?g:null,jb[g]=f),e}});var kb=/^(?:input|select|textarea|button)$/i,lb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):kb.test(a.nodeName)||lb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function mb(a){var b=a.match(K)||[];return b.join(" ")}function nb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,nb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,nb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,nb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=nb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+mb(nb(c))+" ").indexOf(b)>-1)return!0;return!1}});var ob=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(ob,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:mb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d<i;d++)if(c=e[d],(c.selected||d===f)&&!c.disabled&&(!c.parentNode.disabled||!r.nodeName(c.parentNode,"optgroup"))){if(b=r(c).val(),g)return b;h.push(b)}return h},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var tb=/\[\]$/,ub=/\r?\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)xb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ia.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,"\r\n")}}):{name:b.name,value:c.replace(ub,"\r\n")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\/\//,Fb={},Gb={},Hb="*/".concat("*"),Ib=d.createElement("a");Ib.href=qb.href;function Jb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:"GET",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Hb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+"").replace(Eb,qb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+"//"+Ib.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(yb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,"$1"),n=(sb.test(f)?"&":"?")+"_="+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Hb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&"withCredentials"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;if(o.cors||Pb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Qb=[],Rb=/(=)\?(?=&|$)|\?\?/;r.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Qb.pop()||r.expando+"_"+rb++;return this[a]=!0,a}}),r.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Rb.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Rb.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Rb,"$1"+e):b.jsonp!==!1&&(b.url+=(sb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||r.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Qb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=B.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=pa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=mb(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&r.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?r("<div>").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length};function Sb(a){return r.isWindow(a)?a:9===a.nodeType&&a.defaultView}r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),d.width||d.height?(e=f.ownerDocument,c=Sb(e),b=e.documentElement,{top:d.top+c.pageYOffset-b.clientTop,left:d.left+c.pageXOffset-b.clientLeft}):d):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),r.nodeName(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||qa})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return S(this,function(a,d,e){var f=Sb(a);return void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Oa(o.pixelPosition,function(a,c){if(c)return c=Na(a,b),La.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return S(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.parseJSON=JSON.parse,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var Tb=a.jQuery,Ub=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Ub),b&&a.jQuery===r&&(a.jQuery=Tb),r},b||(a.jQuery=a.$=r),r});
    20 changes: 20 additions & 0 deletions places.json
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,20 @@
    {
    "type": "FeatureCollection",
    "features": [
    { "type": "Feature", "properties": { "SCALERANK": 7, "NATSCALE": 20, "LABELRANK": 8, "FEATURECLA": "Populated place", "NAME": "Sohano", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Sohano", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "North Solomons", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -5.4297422013399999, "LONGITUDE": 154.671137512, "CHANGED": 4.0, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted.", "POP_MAX": 2338, "POP_MIN": 2338, "POP_OTHER": 0, "RANK_MAX": 4, "RANK_MIN": 4, "GEONAMEID": -1.0, "MEGANAME": null, "LS_NAME": "Sohano", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 2338.0, "MAX_POP20": 2338.0, "MAX_POP50": 0.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 20.0, "MIN_AREAKM": 3.0, "MAX_AREAKM": 3.0, "MIN_AREAMI": 1.0, "MAX_AREAMI": 1.0, "MIN_PERKM": 9.0, "MAX_PERKM": 9.0, "MIN_PERMI": 6.0, "MAX_PERMI": 6.0, "MIN_BBXMIN": 154.66666667000001, "MAX_BBXMIN": 154.66666667000001, "MIN_BBXMAX": 154.68333333000001, "MAX_BBXMAX": 154.68333333000001, "MIN_BBYMIN": -5.43333333, "MAX_BBYMIN": -5.43333333, "MIN_BBYMAX": -5.40833333, "MAX_BBYMAX": -5.40833333, "MEAN_BBXC": 154.675, "MEAN_BBYC": -5.42083333, "COMPARE": 0, "GN_ASCII": null, "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 0.0, "GN_POP": 0.0, "ELEVATION": 0.0, "GTOPO30": 0.0, "TIMEZONE": null, "GEONAMESNO": "No GeoNames match due to small population, not in GeoNames, or poor NEV placement.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 154.671137512130031, -5.429742201338172 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 7, "NATSCALE": 20, "LABELRANK": 8, "FEATURECLA": "Populated place", "NAME": "Kieta", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Kieta", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "North Solomons", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -6.2162756155699999, "LONGITUDE": 155.63333207100001, "CHANGED": 0.0, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 6958, "POP_MIN": 3611, "POP_OTHER": 6958, "RANK_MAX": 5, "RANK_MIN": 4, "GEONAMEID": 2094027.0, "MEGANAME": null, "LS_NAME": "Kieta", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 6958.0, "MAX_POP20": 6958.0, "MAX_POP50": 0.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 20.0, "MIN_AREAKM": 3.0, "MAX_AREAKM": 3.0, "MIN_AREAMI": 1.0, "MAX_AREAMI": 1.0, "MIN_PERKM": 7.0, "MAX_PERKM": 7.0, "MIN_PERMI": 5.0, "MAX_PERMI": 5.0, "MIN_BBXMIN": 155.60833333, "MAX_BBXMIN": 155.60833333, "MIN_BBXMAX": 155.63333333, "MAX_BBXMAX": 155.63333333, "MIN_BBYMIN": -6.225, "MAX_BBYMIN": -6.225, "MIN_BBYMAX": -6.21666667, "MAX_BBYMAX": -6.21666667, "MEAN_BBXC": 155.62083333000001, "MEAN_BBYC": -6.22083333, "COMPARE": 0, "GN_ASCII": "Kieta", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 7.0, "GN_POP": 3611.0, "ELEVATION": 0.0, "GTOPO30": 64.0, "TIMEZONE": "Pacific\/Port_Moresby", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 155.633332071148175, -6.21627561556835 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 7, "NATSCALE": 20, "LABELRANK": 8, "FEATURECLA": "Admin-1 capital", "NAME": "Mendi", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Mendi", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "Southern Highlands", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -6.14439369825, "LONGITUDE": 143.64522660200001, "CHANGED": 4.0, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 26252, "POP_MIN": 17119, "POP_OTHER": 7999, "RANK_MAX": 7, "RANK_MIN": 6, "GEONAMEID": 2090990.0, "MEGANAME": null, "LS_NAME": "Mendi", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 7999.0, "MAX_POP20": 0.0, "MAX_POP50": 0.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 10.0, "MIN_AREAKM": 5.0, "MAX_AREAKM": 5.0, "MIN_AREAMI": 2.0, "MAX_AREAMI": 2.0, "MIN_PERKM": 11.0, "MAX_PERKM": 11.0, "MIN_PERMI": 7.0, "MAX_PERMI": 7.0, "MIN_BBXMIN": 143.64166667000001, "MAX_BBXMIN": 143.64166667000001, "MIN_BBXMAX": 143.65833333, "MAX_BBXMAX": 143.65833333, "MIN_BBYMIN": -6.15, "MAX_BBYMIN": -6.15, "MIN_BBYMAX": -6.11666667, "MAX_BBYMAX": -6.11666667, "MEAN_BBXC": 143.64861111, "MEAN_BBYC": -6.13611111, "COMPARE": 0, "GN_ASCII": "Mendi", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 5.0, "GN_POP": 26252.0, "ELEVATION": 0.0, "GTOPO30": 1850.0, "TIMEZONE": "Pacific\/Port_Moresby", "GEONAMESNO": "GeoNames match with ascii name + lat + long whole numbers.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 143.645226602350249, -6.144393698250383 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 7, "NATSCALE": 20, "LABELRANK": 8, "FEATURECLA": "Populated place", "NAME": "Abau", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Abau", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "Central", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -10.0426053682, "LONGITUDE": 148.565029662, "CHANGED": 0.0, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 230, "POP_MIN": 230, "POP_OTHER": 230, "RANK_MAX": 2, "RANK_MIN": 2, "GEONAMEID": -1.0, "MEGANAME": null, "LS_NAME": "Abau", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 230.0, "MAX_POP20": 230.0, "MAX_POP50": 0.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 20.0, "MIN_AREAKM": 1.0, "MAX_AREAKM": 1.0, "MIN_AREAMI": 0.0, "MAX_AREAMI": 0.0, "MIN_PERKM": 4.0, "MAX_PERKM": 4.0, "MIN_PERMI": 2.0, "MAX_PERMI": 2.0, "MIN_BBXMIN": 148.55833333000001, "MAX_BBXMIN": 148.55833333000001, "MIN_BBXMAX": 148.56666667, "MAX_BBXMAX": 148.56666667, "MIN_BBYMIN": -10.05, "MAX_BBYMIN": -10.05, "MIN_BBYMAX": -10.04166667, "MAX_BBYMAX": -10.04166667, "MEAN_BBXC": 148.5625, "MEAN_BBYC": -10.04583333, "COMPARE": 0, "GN_ASCII": null, "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 0.0, "GN_POP": 0.0, "ELEVATION": 0.0, "GTOPO30": 0.0, "TIMEZONE": null, "GEONAMESNO": "No GeoNames match due to small population, not in GeoNames, or poor NEV placement.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 148.565029662265601, -10.042605368187822 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 7, "NATSCALE": 20, "LABELRANK": 8, "FEATURECLA": "Admin-1 capital", "NAME": "Alotau", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Alotau", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "Milne Bay", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -10.302072734699999, "LONGITUDE": 150.459074259, "CHANGED": 0.0, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 11624, "POP_MIN": 11624, "POP_OTHER": 0, "RANK_MAX": 6, "RANK_MIN": 6, "GEONAMEID": -1.0, "MEGANAME": null, "LS_NAME": "Alotau", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 11624.0, "MAX_POP20": 11624.0, "MAX_POP50": 0.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 20.0, "MIN_AREAKM": 4.0, "MAX_AREAKM": 4.0, "MIN_AREAMI": 2.0, "MAX_AREAMI": 2.0, "MIN_PERKM": 11.0, "MAX_PERKM": 11.0, "MIN_PERMI": 7.0, "MAX_PERMI": 7.0, "MIN_BBXMIN": 150.43333333000001, "MAX_BBXMIN": 150.43333333000001, "MIN_BBXMAX": 150.45833333, "MAX_BBXMAX": 150.45833333, "MIN_BBYMIN": -10.325, "MAX_BBYMIN": -10.325, "MIN_BBYMAX": -10.3, "MAX_BBYMAX": -10.3, "MEAN_BBXC": 150.44916667000001, "MEAN_BBYC": -10.30916667, "COMPARE": 0, "GN_ASCII": null, "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 0.0, "GN_POP": 0.0, "ELEVATION": 0.0, "GTOPO30": 0.0, "TIMEZONE": null, "GEONAMESNO": "No GeoNames match due to small population, not in GeoNames, or poor NEV placement.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 150.459074258627311, -10.302072734725243 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 7, "NATSCALE": 20, "LABELRANK": 8, "FEATURECLA": "Admin-1 capital", "NAME": "Popondetta", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Popondetta", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "Northern", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -8.7691947236499992, "LONGITUDE": 148.248408162, "CHANGED": 0.0, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 28198, "POP_MIN": 22186, "POP_OTHER": 0, "RANK_MAX": 7, "RANK_MIN": 7, "GEONAMEID": 2088163.0, "MEGANAME": null, "LS_NAME": "Popondetta", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 22186.0, "MAX_POP20": 22186.0, "MAX_POP50": 0.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 20.0, "MIN_AREAKM": 8.0, "MAX_AREAKM": 8.0, "MIN_AREAMI": 3.0, "MAX_AREAMI": 3.0, "MIN_PERKM": 17.0, "MAX_PERKM": 17.0, "MIN_PERMI": 10.0, "MAX_PERMI": 10.0, "MIN_BBXMIN": 148.225, "MAX_BBXMIN": 148.225, "MIN_BBXMAX": 148.25833333, "MAX_BBXMAX": 148.25833333, "MIN_BBYMIN": -8.775, "MAX_BBYMIN": -8.775, "MIN_BBYMAX": -8.73333333, "MAX_BBYMAX": -8.73333333, "MEAN_BBXC": 148.24166667, "MEAN_BBYC": -8.755, "COMPARE": 0, "GN_ASCII": "Popondetta", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 4.0, "GN_POP": 28198.0, "ELEVATION": 0.0, "GTOPO30": 161.0, "TIMEZONE": "Pacific\/Port_Moresby", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 148.24840816161327, -8.769194723651424 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 7, "NATSCALE": 20, "LABELRANK": 8, "FEATURECLA": "Populated place", "NAME": "Hoskins", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Hoskins", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "West New Britain", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -5.4746154593199998, "LONGITUDE": 150.40998164800001, "CHANGED": 0.0, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 871, "POP_MIN": 871, "POP_OTHER": 0, "RANK_MAX": 2, "RANK_MIN": 2, "GEONAMEID": -1.0, "MEGANAME": null, "LS_NAME": "Hoskins", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 871.0, "MAX_POP20": 0.0, "MAX_POP50": 0.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 10.0, "MIN_AREAKM": 2.0, "MAX_AREAKM": 2.0, "MIN_AREAMI": 1.0, "MAX_AREAMI": 1.0, "MIN_PERKM": 6.0, "MAX_PERKM": 6.0, "MIN_PERMI": 3.0, "MAX_PERMI": 3.0, "MIN_BBXMIN": 150.4, "MAX_BBXMIN": 150.4, "MIN_BBXMAX": 150.40833333, "MAX_BBXMAX": 150.40833333, "MIN_BBYMIN": -5.46666667, "MAX_BBYMIN": -5.46666667, "MIN_BBYMAX": -5.45, "MAX_BBYMAX": -5.45, "MEAN_BBXC": 150.40416667, "MEAN_BBYC": -5.45833333, "COMPARE": 0, "GN_ASCII": null, "FEATURE_CL": null, "FEATURE_CO": null, "ADMIN1_COD": 0.0, "GN_POP": 0.0, "ELEVATION": 0.0, "GTOPO30": 0.0, "TIMEZONE": null, "GEONAMESNO": "No GeoNames match due to small population, not in GeoNames, or poor NEV placement.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 150.40998164795019, -5.474615459315373 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 8, "FEATURECLA": "Admin-1 capital", "NAME": "Wewak", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Wewak", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "East Sepik", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -3.5534924124299998, "LONGITUDE": 143.636699991, "CHANGED": 1.0, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 25143, "POP_MIN": 18230, "POP_OTHER": 0, "RANK_MAX": 7, "RANK_MIN": 6, "GEONAMEID": 2083537.0, "MEGANAME": null, "LS_NAME": "Wewak", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 576.0, "MAX_POP20": 576.0, "MAX_POP50": 0.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 20.0, "MIN_AREAKM": 1.0, "MAX_AREAKM": 1.0, "MIN_AREAMI": 0.0, "MAX_AREAMI": 0.0, "MIN_PERKM": 4.0, "MAX_PERKM": 4.0, "MIN_PERMI": 2.0, "MAX_PERMI": 2.0, "MIN_BBXMIN": 143.625, "MAX_BBXMIN": 143.625, "MIN_BBXMAX": 143.63333333, "MAX_BBXMAX": 143.63333333, "MIN_BBYMIN": -3.55833333, "MAX_BBYMIN": -3.55833333, "MIN_BBYMAX": -3.55, "MAX_BBYMAX": -3.55, "MEAN_BBXC": 143.62916667, "MEAN_BBYC": -3.55416667, "COMPARE": 0, "GN_ASCII": "Wewak", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 11.0, "GN_POP": 18230.0, "ELEVATION": 0.0, "GTOPO30": -9999.0, "TIMEZONE": "Pacific\/Port_Moresby", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 143.636699991021942, -3.553492412432718 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 8, "FEATURECLA": "Admin-1 capital", "NAME": "Madang", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Madang", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "Madang", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -5.2248115856200004, "LONGITUDE": 145.78525101599999, "CHANGED": 1.0, "NAMEDIFF": 0, "DIFFNOTE": "Changed scale rank.", "POP_MAX": 62023, "POP_MIN": 27419, "POP_OTHER": 62023, "RANK_MAX": 8, "RANK_MIN": 7, "GEONAMEID": 2091996.0, "MEGANAME": null, "LS_NAME": "Madang", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 62023.0, "MAX_POP20": 62023.0, "MAX_POP50": 0.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 20.0, "MIN_AREAKM": 20.0, "MAX_AREAKM": 20.0, "MIN_AREAMI": 8.0, "MAX_AREAMI": 8.0, "MIN_PERKM": 26.0, "MAX_PERKM": 26.0, "MIN_PERMI": 16.0, "MAX_PERMI": 16.0, "MIN_BBXMIN": 145.76666667000001, "MAX_BBXMIN": 145.76666667000001, "MIN_BBXMAX": 145.81666667, "MAX_BBXMAX": 145.81666667, "MIN_BBYMIN": -5.25, "MAX_BBYMIN": -5.25, "MIN_BBYMAX": -5.19166667, "MAX_BBYMAX": -5.19166667, "MEAN_BBXC": 145.78993056, "MEAN_BBYC": -5.22222222, "COMPARE": 0, "GN_ASCII": "Madang", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 12.0, "GN_POP": 27419.0, "ELEVATION": 0.0, "GTOPO30": 1.0, "TIMEZONE": "Pacific\/Port_Moresby", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 145.785251016421171, -5.224811585616408 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 6, "NATSCALE": 30, "LABELRANK": 8, "FEATURECLA": "Admin-1 capital", "NAME": "Kavieng", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Kavieng", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "New Ireland", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -2.5812843228700002, "LONGITUDE": 150.81297647700001, "CHANGED": 1.0, "NAMEDIFF": 0, "DIFFNOTE": "Location adjusted. Changed scale rank.", "POP_MAX": 19728, "POP_MIN": 14490, "POP_OTHER": 19728, "RANK_MAX": 6, "RANK_MIN": 6, "GEONAMEID": 2094342.0, "MEGANAME": null, "LS_NAME": "Kavieng", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 19728.0, "MAX_POP20": 0.0, "MAX_POP50": 0.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 10.0, "MIN_AREAKM": 6.0, "MAX_AREAKM": 6.0, "MIN_AREAMI": 2.0, "MAX_AREAMI": 2.0, "MIN_PERKM": 13.0, "MAX_PERKM": 13.0, "MIN_PERMI": 8.0, "MAX_PERMI": 8.0, "MIN_BBXMIN": 150.78333333, "MAX_BBXMIN": 150.78333333, "MIN_BBXMAX": 150.80833333000001, "MAX_BBXMAX": 150.80833333000001, "MIN_BBYMIN": -2.6, "MAX_BBYMIN": -2.6, "MIN_BBYMAX": -2.56666667, "MAX_BBYMAX": -2.56666667, "MEAN_BBXC": 150.79583333, "MEAN_BBYC": -2.58392857, "COMPARE": 0, "GN_ASCII": "Kavieng", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 15.0, "GN_POP": 14490.0, "ELEVATION": 0.0, "GTOPO30": 1.0, "TIMEZONE": "Pacific\/Port_Moresby", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 150.812976476799236, -2.581284322871966 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-1 capital", "NAME": "Goroka", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Goroka", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "Eastern Highlands", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -6.0833121552799998, "LONGITUDE": 145.38548213600001, "CHANGED": 0.0, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 39699, "POP_MIN": 18503, "POP_OTHER": 40514, "RANK_MAX": 7, "RANK_MIN": 6, "GEONAMEID": 2096742.0, "MEGANAME": null, "LS_NAME": "Goroka", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 39699.0, "MAX_POP20": 39699.0, "MAX_POP50": 39699.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 50.0, "MIN_AREAKM": 17.0, "MAX_AREAKM": 17.0, "MIN_AREAMI": 7.0, "MAX_AREAMI": 7.0, "MIN_PERKM": 28.0, "MAX_PERKM": 28.0, "MIN_PERMI": 17.0, "MAX_PERMI": 17.0, "MIN_BBXMIN": 145.36666667, "MAX_BBXMIN": 145.36666667, "MIN_BBXMAX": 145.40833333, "MAX_BBXMAX": 145.40833333, "MIN_BBYMIN": -6.1, "MAX_BBYMIN": -6.1, "MIN_BBYMAX": -6.03333333, "MAX_BBYMAX": -6.03333333, "MEAN_BBXC": 145.38625, "MEAN_BBYC": -6.0675, "COMPARE": 0, "GN_ASCII": "Goroka", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 9.0, "GN_POP": 18503.0, "ELEVATION": 0.0, "GTOPO30": 1515.0, "TIMEZONE": "Pacific\/Port_Moresby", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 145.385482136211181, -6.083312155281362 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-1 capital", "NAME": "Mt. Hagen", "NAMEPAR": null, "NAMEALT": "Mount Hagen", "DIFFASCII": 0, "NAMEASCII": "Mt. Hagen", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "Western Highlands", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -5.8632222301499999, "LONGITUDE": 144.21681962, "CHANGED": 0.0, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 59064, "POP_MIN": 33623, "POP_OTHER": 59064, "RANK_MAX": 8, "RANK_MIN": 7, "GEONAMEID": 2090409.0, "MEGANAME": null, "LS_NAME": "Mt. Hagen", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 59064.0, "MAX_POP20": 59064.0, "MAX_POP50": 59064.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 50.0, "MIN_AREAKM": 38.0, "MAX_AREAKM": 38.0, "MIN_AREAMI": 15.0, "MAX_AREAMI": 15.0, "MIN_PERKM": 63.0, "MAX_PERKM": 63.0, "MIN_PERMI": 39.0, "MAX_PERMI": 39.0, "MIN_BBXMIN": 144.20833333, "MAX_BBXMIN": 144.20833333, "MIN_BBXMAX": 144.30833333000001, "MAX_BBXMAX": 144.30833333000001, "MIN_BBYMIN": -5.875, "MAX_BBYMIN": -5.875, "MIN_BBYMAX": -5.8, "MAX_BBYMAX": -5.8, "MEAN_BBXC": 144.24601852000001, "MEAN_BBYC": -5.83805556, "COMPARE": 0, "GN_ASCII": "Mount Hagen", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 16.0, "GN_POP": 33623.0, "ELEVATION": 0.0, "GTOPO30": 1997.0, "TIMEZONE": "Pacific\/Port_Moresby", "GEONAMESNO": "GeoNames spatial join with similar names only.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 144.216819619930561, -5.863222230150257 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-1 capital", "NAME": "Rabaul", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Rabaul", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "East New Britain", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -4.2054903852500001, "LONGITUDE": 152.143430725, "CHANGED": 0.0, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 8074, "POP_MIN": 3714, "POP_OTHER": 3876, "RANK_MAX": 5, "RANK_MIN": 4, "GEONAMEID": 2087894.0, "MEGANAME": null, "LS_NAME": "Rabaul", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 3714.0, "MAX_POP20": 3714.0, "MAX_POP50": 3714.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 50.0, "MIN_AREAKM": 6.0, "MAX_AREAKM": 6.0, "MIN_AREAMI": 2.0, "MAX_AREAMI": 2.0, "MIN_PERKM": 15.0, "MAX_PERKM": 15.0, "MIN_PERMI": 9.0, "MAX_PERMI": 9.0, "MIN_BBXMIN": 152.13333333, "MAX_BBXMIN": 152.13333333, "MIN_BBXMAX": 152.15, "MAX_BBXMAX": 152.15, "MIN_BBYMIN": -4.20833333, "MAX_BBYMIN": -4.20833333, "MIN_BBYMAX": -4.15833333, "MAX_BBYMAX": -4.15833333, "MEAN_BBXC": 152.1422619, "MEAN_BBYC": -4.18392857, "COMPARE": 0, "GN_ASCII": "Rabaul", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 10.0, "GN_POP": 8074.0, "ELEVATION": 0.0, "GTOPO30": 12.0, "TIMEZONE": "Pacific\/Port_Moresby", "GEONAMESNO": "GeoNames match with ascii name + lat + long whole numbers.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 152.143430725242979, -4.205490385246037 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 4, "NATSCALE": 50, "LABELRANK": 8, "FEATURECLA": "Admin-1 capital", "NAME": "Lae", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Lae", "ADM0CAP": 0.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "Morobe", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -6.7329882620500001, "LONGITUDE": 146.99003535899999, "CHANGED": 0.0, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 131052, "POP_MIN": 76255, "POP_OTHER": 131221, "RANK_MAX": 9, "RANK_MIN": 8, "GEONAMEID": 2092740.0, "MEGANAME": null, "LS_NAME": "Lae", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 131052.0, "MAX_POP20": 131052.0, "MAX_POP50": 131052.0, "MAX_POP300": 0.0, "MAX_POP310": 0.0, "MAX_NATSCA": 50.0, "MIN_AREAKM": 58.0, "MAX_AREAKM": 58.0, "MIN_AREAMI": 22.0, "MAX_AREAMI": 22.0, "MIN_PERKM": 72.0, "MAX_PERKM": 72.0, "MIN_PERMI": 45.0, "MAX_PERMI": 45.0, "MIN_BBXMIN": 146.95, "MAX_BBXMIN": 146.95, "MIN_BBXMAX": 147.05, "MAX_BBXMAX": 147.05, "MIN_BBYMIN": -6.74166667, "MAX_BBYMIN": -6.74166667, "MIN_BBYMAX": -6.64166667, "MAX_BBYMAX": -6.64166667, "MEAN_BBXC": 147.00098039, "MEAN_BBYC": -6.70134804, "COMPARE": 0, "GN_ASCII": "Lae", "FEATURE_CL": "P", "FEATURE_CO": "PPL", "ADMIN1_COD": 14.0, "GN_POP": 76255.0, "ELEVATION": 0.0, "GTOPO30": 5.0, "TIMEZONE": "Pacific\/Port_Moresby", "GEONAMESNO": "Geonames ascii name + lat.d + long.d matching.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 146.990035358873911, -6.732988262054789 ] } },
    { "type": "Feature", "properties": { "SCALERANK": 3, "NATSCALE": 110, "LABELRANK": 8, "FEATURECLA": "Admin-0 capital", "NAME": "Port Moresby", "NAMEPAR": null, "NAMEALT": null, "DIFFASCII": 0, "NAMEASCII": "Port Moresby", "ADM0CAP": 1.0, "CAPALT": 0.0, "CAPIN": null, "WORLDCITY": 0.0, "MEGACITY": 0, "SOV0NAME": "Papua New Guinea", "SOV_A3": "PNG", "ADM0NAME": "Papua New Guinea", "ADM0_A3": "PNG", "ADM1NAME": "Central", "ISO_A2": "PG", "NOTE": null, "LATITUDE": -9.4647078258700006, "LONGITUDE": 147.19250362099999, "CHANGED": 0.0, "NAMEDIFF": 0, "DIFFNOTE": null, "POP_MAX": 283733, "POP_MIN": 251136, "POP_OTHER": 251304, "RANK_MAX": 10, "RANK_MIN": 10, "GEONAMEID": 2088122.0, "MEGANAME": null, "LS_NAME": "Port Moresby", "LS_MATCH": 1, "CHECKME": 0, "MAX_POP10": 251136.0, "MAX_POP20": 251136.0, "MAX_POP50": 251136.0, "MAX_POP300": 251136.0, "MAX_POP310": 0.0, "MAX_NATSCA": 100.0, "MIN_AREAKM": 89.0, "MAX_AREAKM": 89.0, "MIN_AREAMI": 35.0, "MAX_AREAMI": 35.0, "MIN_PERKM": 92.0, "MAX_PERKM": 92.0, "MIN_PERMI": 57.0, "MAX_PERMI": 57.0, "MIN_BBXMIN": 147.14166667000001, "MAX_BBXMIN": 147.14166667000001, "MIN_BBXMAX": 147.24166667, "MAX_BBXMAX": 147.24166667, "MIN_BBYMIN": -9.50833333, "MAX_BBYMIN": -9.50833333, "MIN_BBYMAX": -9.35833333, "MAX_BBYMAX": -9.35833333, "MEAN_BBXC": 147.18537736, "MEAN_BBYC": -9.43349057, "COMPARE": 0, "GN_ASCII": "Port Moresby", "FEATURE_CL": "P", "FEATURE_CO": "PPLC", "ADMIN1_COD": 20.0, "GN_POP": 283733.0, "ELEVATION": 0.0, "GTOPO30": 50.0, "TIMEZONE": "Pacific\/Port_Moresby", "GEONAMESNO": "GeoNames match general.", "UN_FID": 0, "UN_ADM0": null, "UN_LAT": 0.0, "UN_LONG": 0.0, "POP1950": 0.0, "POP1955": 0.0, "POP1960": 0.0, "POP1965": 0.0, "POP1970": 0.0, "POP1975": 0.0, "POP1980": 0.0, "POP1985": 0.0, "POP1990": 0.0, "POP1995": 0.0, "POP2000": 0.0, "POP2005": 0.0, "POP2010": 0.0, "POP2015": 0.0, "POP2020": 0.0, "POP2025": 0.0, "POP2050": 0.0, "CITYALT": null }, "geometry": { "type": "Point", "coordinates": [ 147.192503620593584, -9.464707825867777 ] } }
    ]
    }
    60 changes: 60 additions & 0 deletions subunits.json
    60 additions, 0 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
    545 changes: 545 additions & 0 deletions topojson.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,545 @@
    (function (global, factory) {
    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
    typeof define === 'function' && define.amd ? define(['exports'], factory) :
    (factory((global.topojson = global.topojson || {})));
    }(this, function (exports) { 'use strict';

    function noop() {}

    function transformAbsolute(transform) {
    if (!transform) return noop;
    var x0,
    y0,
    kx = transform.scale[0],
    ky = transform.scale[1],
    dx = transform.translate[0],
    dy = transform.translate[1];
    return function(point, i) {
    if (!i) x0 = y0 = 0;
    point[0] = (x0 += point[0]) * kx + dx;
    point[1] = (y0 += point[1]) * ky + dy;
    };
    }

    function transformRelative(transform) {
    if (!transform) return noop;
    var x0,
    y0,
    kx = transform.scale[0],
    ky = transform.scale[1],
    dx = transform.translate[0],
    dy = transform.translate[1];
    return function(point, i) {
    if (!i) x0 = y0 = 0;
    var x1 = Math.round((point[0] - dx) / kx),
    y1 = Math.round((point[1] - dy) / ky);
    point[0] = x1 - x0;
    point[1] = y1 - y0;
    x0 = x1;
    y0 = y1;
    };
    }

    function reverse(array, n) {
    var t, j = array.length, i = j - n;
    while (i < --j) t = array[i], array[i++] = array[j], array[j] = t;
    }

    function bisect(a, x) {
    var lo = 0, hi = a.length;
    while (lo < hi) {
    var mid = lo + hi >>> 1;
    if (a[mid] < x) lo = mid + 1;
    else hi = mid;
    }
    return lo;
    }

    function feature(topology, o) {
    return o.type === "GeometryCollection" ? {
    type: "FeatureCollection",
    features: o.geometries.map(function(o) { return feature$1(topology, o); })
    } : feature$1(topology, o);
    }

    function feature$1(topology, o) {
    var f = {
    type: "Feature",
    id: o.id,
    properties: o.properties || {},
    geometry: object(topology, o)
    };
    if (o.id == null) delete f.id;
    return f;
    }

    function object(topology, o) {
    var absolute = transformAbsolute(topology.transform),
    arcs = topology.arcs;

    function arc(i, points) {
    if (points.length) points.pop();
    for (var a = arcs[i < 0 ? ~i : i], k = 0, n = a.length, p; k < n; ++k) {
    points.push(p = a[k].slice());
    absolute(p, k);
    }
    if (i < 0) reverse(points, n);
    }

    function point(p) {
    p = p.slice();
    absolute(p, 0);
    return p;
    }

    function line(arcs) {
    var points = [];
    for (var i = 0, n = arcs.length; i < n; ++i) arc(arcs[i], points);
    if (points.length < 2) points.push(points[0].slice());
    return points;
    }

    function ring(arcs) {
    var points = line(arcs);
    while (points.length < 4) points.push(points[0].slice());
    return points;
    }

    function polygon(arcs) {
    return arcs.map(ring);
    }

    function geometry(o) {
    var t = o.type;
    return t === "GeometryCollection" ? {type: t, geometries: o.geometries.map(geometry)}
    : t in geometryType ? {type: t, coordinates: geometryType[t](o)}
    : null;
    }

    var geometryType = {
    Point: function(o) { return point(o.coordinates); },
    MultiPoint: function(o) { return o.coordinates.map(point); },
    LineString: function(o) { return line(o.arcs); },
    MultiLineString: function(o) { return o.arcs.map(line); },
    Polygon: function(o) { return polygon(o.arcs); },
    MultiPolygon: function(o) { return o.arcs.map(polygon); }
    };

    return geometry(o);
    }

    function stitchArcs(topology, arcs) {
    var stitchedArcs = {},
    fragmentByStart = {},
    fragmentByEnd = {},
    fragments = [],
    emptyIndex = -1;

    // Stitch empty arcs first, since they may be subsumed by other arcs.
    arcs.forEach(function(i, j) {
    var arc = topology.arcs[i < 0 ? ~i : i], t;
    if (arc.length < 3 && !arc[1][0] && !arc[1][1]) {
    t = arcs[++emptyIndex], arcs[emptyIndex] = i, arcs[j] = t;
    }
    });

    arcs.forEach(function(i) {
    var e = ends(i),
    start = e[0],
    end = e[1],
    f, g;

    if (f = fragmentByEnd[start]) {
    delete fragmentByEnd[f.end];
    f.push(i);
    f.end = end;
    if (g = fragmentByStart[end]) {
    delete fragmentByStart[g.start];
    var fg = g === f ? f : f.concat(g);
    fragmentByStart[fg.start = f.start] = fragmentByEnd[fg.end = g.end] = fg;
    } else {
    fragmentByStart[f.start] = fragmentByEnd[f.end] = f;
    }
    } else if (f = fragmentByStart[end]) {
    delete fragmentByStart[f.start];
    f.unshift(i);
    f.start = start;
    if (g = fragmentByEnd[start]) {
    delete fragmentByEnd[g.end];
    var gf = g === f ? f : g.concat(f);
    fragmentByStart[gf.start = g.start] = fragmentByEnd[gf.end = f.end] = gf;
    } else {
    fragmentByStart[f.start] = fragmentByEnd[f.end] = f;
    }
    } else {
    f = [i];
    fragmentByStart[f.start = start] = fragmentByEnd[f.end = end] = f;
    }
    });

    function ends(i) {
    var arc = topology.arcs[i < 0 ? ~i : i], p0 = arc[0], p1;
    if (topology.transform) p1 = [0, 0], arc.forEach(function(dp) { p1[0] += dp[0], p1[1] += dp[1]; });
    else p1 = arc[arc.length - 1];
    return i < 0 ? [p1, p0] : [p0, p1];
    }

    function flush(fragmentByEnd, fragmentByStart) {
    for (var k in fragmentByEnd) {
    var f = fragmentByEnd[k];
    delete fragmentByStart[f.start];
    delete f.start;
    delete f.end;
    f.forEach(function(i) { stitchedArcs[i < 0 ? ~i : i] = 1; });
    fragments.push(f);
    }
    }

    flush(fragmentByEnd, fragmentByStart);
    flush(fragmentByStart, fragmentByEnd);
    arcs.forEach(function(i) { if (!stitchedArcs[i < 0 ? ~i : i]) fragments.push([i]); });

    return fragments;
    }

    function mesh(topology) {
    return object(topology, meshArcs.apply(this, arguments));
    }

    function meshArcs(topology, o, filter) {
    var arcs = [];

    function arc(i) {
    var j = i < 0 ? ~i : i;
    (geomsByArc[j] || (geomsByArc[j] = [])).push({i: i, g: geom});
    }

    function line(arcs) {
    arcs.forEach(arc);
    }

    function polygon(arcs) {
    arcs.forEach(line);
    }

    function geometry(o) {
    if (o.type === "GeometryCollection") o.geometries.forEach(geometry);
    else if (o.type in geometryType) geom = o, geometryType[o.type](o.arcs);
    }

    if (arguments.length > 1) {
    var geomsByArc = [],
    geom;

    var geometryType = {
    LineString: line,
    MultiLineString: polygon,
    Polygon: polygon,
    MultiPolygon: function(arcs) { arcs.forEach(polygon); }
    };

    geometry(o);

    geomsByArc.forEach(arguments.length < 3
    ? function(geoms) { arcs.push(geoms[0].i); }
    : function(geoms) { if (filter(geoms[0].g, geoms[geoms.length - 1].g)) arcs.push(geoms[0].i); });
    } else {
    for (var i = 0, n = topology.arcs.length; i < n; ++i) arcs.push(i);
    }

    return {type: "MultiLineString", arcs: stitchArcs(topology, arcs)};
    }

    function cartesianTriangleArea(triangle) {
    var a = triangle[0], b = triangle[1], c = triangle[2];
    return Math.abs((a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1]));
    }

    function ring(ring) {
    var i = -1,
    n = ring.length,
    a,
    b = ring[n - 1],
    area = 0;

    while (++i < n) {
    a = b;
    b = ring[i];
    area += a[0] * b[1] - a[1] * b[0];
    }

    return area / 2;
    }

    function merge(topology) {
    return object(topology, mergeArcs.apply(this, arguments));
    }

    function mergeArcs(topology, objects) {
    var polygonsByArc = {},
    polygons = [],
    components = [];

    objects.forEach(function(o) {
    if (o.type === "Polygon") register(o.arcs);
    else if (o.type === "MultiPolygon") o.arcs.forEach(register);
    });

    function register(polygon) {
    polygon.forEach(function(ring$$) {
    ring$$.forEach(function(arc) {
    (polygonsByArc[arc = arc < 0 ? ~arc : arc] || (polygonsByArc[arc] = [])).push(polygon);
    });
    });
    polygons.push(polygon);
    }

    function area(ring$$) {
    return Math.abs(ring(object(topology, {type: "Polygon", arcs: [ring$$]}).coordinates[0]));
    }

    polygons.forEach(function(polygon) {
    if (!polygon._) {
    var component = [],
    neighbors = [polygon];
    polygon._ = 1;
    components.push(component);
    while (polygon = neighbors.pop()) {
    component.push(polygon);
    polygon.forEach(function(ring$$) {
    ring$$.forEach(function(arc) {
    polygonsByArc[arc < 0 ? ~arc : arc].forEach(function(polygon) {
    if (!polygon._) {
    polygon._ = 1;
    neighbors.push(polygon);
    }
    });
    });
    });
    }
    }
    });

    polygons.forEach(function(polygon) {
    delete polygon._;
    });

    return {
    type: "MultiPolygon",
    arcs: components.map(function(polygons) {
    var arcs = [], n;

    // Extract the exterior (unique) arcs.
    polygons.forEach(function(polygon) {
    polygon.forEach(function(ring$$) {
    ring$$.forEach(function(arc) {
    if (polygonsByArc[arc < 0 ? ~arc : arc].length < 2) {
    arcs.push(arc);
    }
    });
    });
    });

    // Stitch the arcs into one or more rings.
    arcs = stitchArcs(topology, arcs);

    // If more than one ring is returned,
    // at most one of these rings can be the exterior;
    // choose the one with the greatest absolute area.
    if ((n = arcs.length) > 1) {
    for (var i = 1, k = area(arcs[0]), ki, t; i < n; ++i) {
    if ((ki = area(arcs[i])) > k) {
    t = arcs[0], arcs[0] = arcs[i], arcs[i] = t, k = ki;
    }
    }
    }

    return arcs;
    })
    };
    }

    function neighbors(objects) {
    var indexesByArc = {}, // arc index -> array of object indexes
    neighbors = objects.map(function() { return []; });

    function line(arcs, i) {
    arcs.forEach(function(a) {
    if (a < 0) a = ~a;
    var o = indexesByArc[a];
    if (o) o.push(i);
    else indexesByArc[a] = [i];
    });
    }

    function polygon(arcs, i) {
    arcs.forEach(function(arc) { line(arc, i); });
    }

    function geometry(o, i) {
    if (o.type === "GeometryCollection") o.geometries.forEach(function(o) { geometry(o, i); });
    else if (o.type in geometryType) geometryType[o.type](o.arcs, i);
    }

    var geometryType = {
    LineString: line,
    MultiLineString: polygon,
    Polygon: polygon,
    MultiPolygon: function(arcs, i) { arcs.forEach(function(arc) { polygon(arc, i); }); }
    };

    objects.forEach(geometry);

    for (var i in indexesByArc) {
    for (var indexes = indexesByArc[i], m = indexes.length, j = 0; j < m; ++j) {
    for (var k = j + 1; k < m; ++k) {
    var ij = indexes[j], ik = indexes[k], n;
    if ((n = neighbors[ij])[i = bisect(n, ik)] !== ik) n.splice(i, 0, ik);
    if ((n = neighbors[ik])[i = bisect(n, ij)] !== ij) n.splice(i, 0, ij);
    }
    }
    }

    return neighbors;
    }

    function compareArea(a, b) {
    return a[1][2] - b[1][2];
    }

    function minAreaHeap() {
    var heap = {},
    array = [],
    size = 0;

    heap.push = function(object) {
    up(array[object._ = size] = object, size++);
    return size;
    };

    heap.pop = function() {
    if (size <= 0) return;
    var removed = array[0], object;
    if (--size > 0) object = array[size], down(array[object._ = 0] = object, 0);
    return removed;
    };

    heap.remove = function(removed) {
    var i = removed._, object;
    if (array[i] !== removed) return; // invalid request
    if (i !== --size) object = array[size], (compareArea(object, removed) < 0 ? up : down)(array[object._ = i] = object, i);
    return i;
    };

    function up(object, i) {
    while (i > 0) {
    var j = ((i + 1) >> 1) - 1,
    parent = array[j];
    if (compareArea(object, parent) >= 0) break;
    array[parent._ = i] = parent;
    array[object._ = i = j] = object;
    }
    }

    function down(object, i) {
    while (true) {
    var r = (i + 1) << 1,
    l = r - 1,
    j = i,
    child = array[j];
    if (l < size && compareArea(array[l], child) < 0) child = array[j = l];
    if (r < size && compareArea(array[r], child) < 0) child = array[j = r];
    if (j === i) break;
    array[child._ = i] = child;
    array[object._ = i = j] = object;
    }
    }

    return heap;
    }

    function presimplify(topology, triangleArea) {
    var absolute = transformAbsolute(topology.transform),
    relative = transformRelative(topology.transform),
    heap = minAreaHeap();

    if (!triangleArea) triangleArea = cartesianTriangleArea;

    topology.arcs.forEach(function(arc) {
    var triangles = [],
    maxArea = 0,
    triangle,
    i,
    n,
    p;

    // To store each point’s effective area, we create a new array rather than
    // extending the passed-in point to workaround a Chrome/V8 bug (getting
    // stuck in smi mode). For midpoints, the initial effective area of
    // Infinity will be computed in the next step.
    for (i = 0, n = arc.length; i < n; ++i) {
    p = arc[i];
    absolute(arc[i] = [p[0], p[1], Infinity], i);
    }

    for (i = 1, n = arc.length - 1; i < n; ++i) {
    triangle = arc.slice(i - 1, i + 2);
    triangle[1][2] = triangleArea(triangle);
    triangles.push(triangle);
    heap.push(triangle);
    }

    for (i = 0, n = triangles.length; i < n; ++i) {
    triangle = triangles[i];
    triangle.previous = triangles[i - 1];
    triangle.next = triangles[i + 1];
    }

    while (triangle = heap.pop()) {
    var previous = triangle.previous,
    next = triangle.next;

    // If the area of the current point is less than that of the previous point
    // to be eliminated, use the latter's area instead. This ensures that the
    // current point cannot be eliminated without eliminating previously-
    // eliminated points.
    if (triangle[1][2] < maxArea) triangle[1][2] = maxArea;
    else maxArea = triangle[1][2];

    if (previous) {
    previous.next = next;
    previous[2] = triangle[2];
    update(previous);
    }

    if (next) {
    next.previous = previous;
    next[0] = triangle[0];
    update(next);
    }
    }

    arc.forEach(relative);
    });

    function update(triangle) {
    heap.remove(triangle);
    triangle[1][2] = triangleArea(triangle);
    heap.push(triangle);
    }

    return topology;
    }

    var version = "1.6.26";

    exports.version = version;
    exports.mesh = mesh;
    exports.meshArcs = meshArcs;
    exports.merge = merge;
    exports.mergeArcs = mergeArcs;
    exports.feature = feature;
    exports.neighbors = neighbors;
    exports.presimplify = presimplify;

    }));
  9. ClashTheBunny revised this gist Mar 4, 2017. 6 changed files with 528 additions and 0 deletions.
    201 changes: 201 additions & 0 deletions LICENSE
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,201 @@
    Apache License
    Version 2.0, January 2004
    http://www.apache.org/licenses/

    TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

    1. Definitions.

    "License" shall mean the terms and conditions for use, reproduction,
    and distribution as defined by Sections 1 through 9 of this document.

    "Licensor" shall mean the copyright owner or entity authorized by
    the copyright owner that is granting the License.

    "Legal Entity" shall mean the union of the acting entity and all
    other entities that control, are controlled by, or are under common
    control with that entity. For the purposes of this definition,
    "control" means (i) the power, direct or indirect, to cause the
    direction or management of such entity, whether by contract or
    otherwise, or (ii) ownership of fifty percent (50%) or more of the
    outstanding shares, or (iii) beneficial ownership of such entity.

    "You" (or "Your") shall mean an individual or Legal Entity
    exercising permissions granted by this License.

    "Source" form shall mean the preferred form for making modifications,
    including but not limited to software source code, documentation
    source, and configuration files.

    "Object" form shall mean any form resulting from mechanical
    transformation or translation of a Source form, including but
    not limited to compiled object code, generated documentation,
    and conversions to other media types.

    "Work" shall mean the work of authorship, whether in Source or
    Object form, made available under the License, as indicated by a
    copyright notice that is included in or attached to the work
    (an example is provided in the Appendix below).

    "Derivative Works" shall mean any work, whether in Source or Object
    form, that is based on (or derived from) the Work and for which the
    editorial revisions, annotations, elaborations, or other modifications
    represent, as a whole, an original work of authorship. For the purposes
    of this License, Derivative Works shall not include works that remain
    separable from, or merely link (or bind by name) to the interfaces of,
    the Work and Derivative Works thereof.

    "Contribution" shall mean any work of authorship, including
    the original version of the Work and any modifications or additions
    to that Work or Derivative Works thereof, that is intentionally
    submitted to Licensor for inclusion in the Work by the copyright owner
    or by an individual or Legal Entity authorized to submit on behalf of
    the copyright owner. For the purposes of this definition, "submitted"
    means any form of electronic, verbal, or written communication sent
    to the Licensor or its representatives, including but not limited to
    communication on electronic mailing lists, source code control systems,
    and issue tracking systems that are managed by, or on behalf of, the
    Licensor for the purpose of discussing and improving the Work, but
    excluding communication that is conspicuously marked or otherwise
    designated in writing by the copyright owner as "Not a Contribution."

    "Contributor" shall mean Licensor and any individual or Legal Entity
    on behalf of whom a Contribution has been received by Licensor and
    subsequently incorporated within the Work.

    2. Grant of Copyright License. Subject to the terms and conditions of
    this License, each Contributor hereby grants to You a perpetual,
    worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    copyright license to reproduce, prepare Derivative Works of,
    publicly display, publicly perform, sublicense, and distribute the
    Work and such Derivative Works in Source or Object form.

    3. Grant of Patent License. Subject to the terms and conditions of
    this License, each Contributor hereby grants to You a perpetual,
    worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    (except as stated in this section) patent license to make, have made,
    use, offer to sell, sell, import, and otherwise transfer the Work,
    where such license applies only to those patent claims licensable
    by such Contributor that are necessarily infringed by their
    Contribution(s) alone or by combination of their Contribution(s)
    with the Work to which such Contribution(s) was submitted. If You
    institute patent litigation against any entity (including a
    cross-claim or counterclaim in a lawsuit) alleging that the Work
    or a Contribution incorporated within the Work constitutes direct
    or contributory patent infringement, then any patent licenses
    granted to You under this License for that Work shall terminate
    as of the date such litigation is filed.

    4. Redistribution. You may reproduce and distribute copies of the
    Work or Derivative Works thereof in any medium, with or without
    modifications, and in Source or Object form, provided that You
    meet the following conditions:

    (a) You must give any other recipients of the Work or
    Derivative Works a copy of this License; and

    (b) You must cause any modified files to carry prominent notices
    stating that You changed the files; and

    (c) You must retain, in the Source form of any Derivative Works
    that You distribute, all copyright, patent, trademark, and
    attribution notices from the Source form of the Work,
    excluding those notices that do not pertain to any part of
    the Derivative Works; and

    (d) If the Work includes a "NOTICE" text file as part of its
    distribution, then any Derivative Works that You distribute must
    include a readable copy of the attribution notices contained
    within such NOTICE file, excluding those notices that do not
    pertain to any part of the Derivative Works, in at least one
    of the following places: within a NOTICE text file distributed
    as part of the Derivative Works; within the Source form or
    documentation, if provided along with the Derivative Works; or,
    within a display generated by the Derivative Works, if and
    wherever such third-party notices normally appear. The contents
    of the NOTICE file are for informational purposes only and
    do not modify the License. You may add Your own attribution
    notices within Derivative Works that You distribute, alongside
    or as an addendum to the NOTICE text from the Work, provided
    that such additional attribution notices cannot be construed
    as modifying the License.

    You may add Your own copyright statement to Your modifications and
    may provide additional or different license terms and conditions
    for use, reproduction, or distribution of Your modifications, or
    for any such Derivative Works as a whole, provided Your use,
    reproduction, and distribution of the Work otherwise complies with
    the conditions stated in this License.

    5. Submission of Contributions. Unless You explicitly state otherwise,
    any Contribution intentionally submitted for inclusion in the Work
    by You to the Licensor shall be under the terms and conditions of
    this License, without any additional terms or conditions.
    Notwithstanding the above, nothing herein shall supersede or modify
    the terms of any separate license agreement you may have executed
    with Licensor regarding such Contributions.

    6. Trademarks. This License does not grant permission to use the trade
    names, trademarks, service marks, or product names of the Licensor,
    except as required for reasonable and customary use in describing the
    origin of the Work and reproducing the content of the NOTICE file.

    7. Disclaimer of Warranty. Unless required by applicable law or
    agreed to in writing, Licensor provides the Work (and each
    Contributor provides its Contributions) on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    implied, including, without limitation, any warranties or conditions
    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    PARTICULAR PURPOSE. You are solely responsible for determining the
    appropriateness of using or redistributing the Work and assume any
    risks associated with Your exercise of permissions under this License.

    8. Limitation of Liability. In no event and under no legal theory,
    whether in tort (including negligence), contract, or otherwise,
    unless required by applicable law (such as deliberate and grossly
    negligent acts) or agreed to in writing, shall any Contributor be
    liable to You for damages, including any direct, indirect, special,
    incidental, or consequential damages of any character arising as a
    result of this License or out of the use or inability to use the
    Work (including but not limited to damages for loss of goodwill,
    work stoppage, computer failure or malfunction, or any and all
    other commercial damages or losses), even if such Contributor
    has been advised of the possibility of such damages.

    9. Accepting Warranty or Additional Liability. While redistributing
    the Work or Derivative Works thereof, You may choose to offer,
    and charge a fee for, acceptance of support, warranty, indemnity,
    or other liability obligations and/or rights consistent with this
    License. However, in accepting such obligations, You may act only
    on Your own behalf and on Your sole responsibility, not on behalf
    of any other Contributor, and only if You agree to indemnify,
    defend, and hold each Contributor harmless for any liability
    incurred by, or claims asserted against, such Contributor by reason
    of your accepting any such warranty or additional liability.

    END OF TERMS AND CONDITIONS

    APPENDIX: How to apply the Apache License to your work.

    To apply the Apache License to your work, attach the following
    boilerplate notice, with the fields enclosed by brackets "{}"
    replaced with your own identifying information. (Don't include
    the brackets!) The text should be enclosed in the appropriate
    comment syntax for the file format. We also recommend that a
    file or class name and description of purpose be included on the
    same "printed page" as the copyright notice for easier
    identification within third-party archives.

    Copyright {yyyy} {name of copyright owner}

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
    22 changes: 22 additions & 0 deletions bower.json
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,22 @@
    {
    "name": "papuaNewGuinea",
    "homepage": "https://github.com/ClashTheBunny/papuaNewGuinea",
    "description": "Animation of number of plane flights sponsored at a VBS event.",
    "main": "index.html",
    "authors": [
    "Randall Mason <randall@mason.ch>"
    ],
    "license": "Apache 2.0",
    "ignore": [
    "**/.*",
    "node_modules",
    "bower_components",
    "test",
    "tests"
    ],
    "dependencies": {
    "babel-polyfill": "^0.0.1",
    "aureooms-js-itertools": "^1.3.0",
    "jquery": "^3.0.0"
    }
    }
    5 changes: 5 additions & 0 deletions d3.min.js
    5 additions, 0 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
    298 changes: 298 additions & 0 deletions index.html
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,298 @@
    <!DOCTYPE html>
    <meta charset="utf-8">
    <style>

    .count {
    font-size: 300px;
    pointer-events: none;
    }

    .subunit.PNB { fill: #cdc; }
    .subunit.PNX { fill: #dcd; }
    .subunit.IDN { display: none; }
    svg { fill: rgb(216,216,216); }

    .subunit-boundary {
    fill: none;
    stroke: #777;
    stroke-dasharray: 2,2;
    stroke-linejoin: round;
    }

    .subunit-boundary.IDN {
    stroke: #aaa;
    }


    .place,
    .place-label {
    fill: #444;
    }

    text {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 30px;
    pointer-events: none;
    }

    .route {
    fill: none;
    stroke: red;
    stroke-dasharray: 2,2;
    stroke-linejoin: round;
    stroke-width: 1em;
    }
    .plane.boy {
    fill: #2b65EC;
    stroke-width: 0;
    }
    .plane.girl {
    fill: pink;
    stroke-width: 0;
    }
    .plane.both {
    fill: #fff;
    stroke: #000;
    stroke-width: 0.1 em;
    }

    </style>
    <body>
    <script src="bower_components/babel-polyfill/browser-polyfill.js"></script>
    <script src="bower_components/aureooms-js-itertools/js/dist/itertools.min.js"></script>
    <script src="bower_components/jquery/dist/jquery.min.js"></script>
    <script src="d3.min.js" charset="utf-8"></script>
    <script src="topojson.min.js"></script>
    <link href="https://fonts.googleapis.com/css?family=Faster+One|Frijole" rel="stylesheet">
    <script>
    function shuffle(array) {
    counter = array.length;

    // While there are elements in the array
    while (counter > 0) {
    // Pick a random index
    index = Math.floor(Math.random() * counter);

    // Decrease counter by 1
    counter--;

    // And swap the last element with it
    temp = array[counter];
    array[counter] = array[index];
    array[index] = temp;
    }

    return array;
    }

    var width = 1920,
    height = 1080;

    var svg = d3.select("body").append("svg")
    .attr("width", width)
    .attr("height", height);

    var projection = d3.geo.mercator()
    .center([148.5, -6.5])
    .scale(6200)
    .translate([width / 2, height / 2]);
    var path = d3.geo.path()
    .projection(projection);

    var airportMap = {};

    function transition(plane, route, percent) {
    var l = route.node().getTotalLength();
    plane.transition()
    .duration(4000)
    .attrTween("transform", delta(plane, route.node(), percent))
    .remove();
    return l*10;
    }

    function delta(plane, path, percent) {
    var l = path.getTotalLength();
    var plane = plane;
    return function(i) {
    return function(t) {
    var s = 5*Math.min(Math.sin(Math.PI * t) * 0.7, 0.3);

    if( t > percent) {
    var p = path.getPointAtLength(percent * l);
    var t2 = Math.min(t + 0.05, 1);
    var p2 = path.getPointAtLength(t2 * l);

    var x = p2.x - p.x;
    var y = p2.y - p.y;
    var r = 90 - Math.atan2(-y, x) * 180 / Math.PI + (t - percent)*360;
    } else {
    var p = path.getPointAtLength(t * l);
    var t2 = Math.min(t + 0.05, 1);
    var p2 = path.getPointAtLength(t2 * l);

    var x = p2.x - p.x;
    var y = p2.y - p.y;
    var r = 90 - Math.atan2(-y, x) * 180 / Math.PI;
    }

    return "translate(" + p.x + "," + p.y + ") scale(" + s + ") rotate(" + r + ")";
    }
    }
    }

    function fly(origin, destination, gender, percent) {
    var route = svg.append("path")
    .datum({type: "LineString", coordinates: [airportMap[origin], airportMap[destination]]})
    .attr("class", "route")
    .attr("d", path);

    var plane = svg.append("path")
    .attr("class", "plane " + gender)
    .attr("d", "m25.21488,3.93375c-0.44355,0 -0.84275,0.18332 -1.17933,0.51592c-0.33397,0.33267 -0.61055,0.80884 -0.84275,1.40377c-0.45922,1.18911 -0.74362,2.85964 -0.89755,4.86085c-0.15655,1.99729 -0.18263,4.32223 -0.11741,6.81118c-5.51835,2.26427 -16.7116,6.93857 -17.60916,7.98223c-1.19759,1.38937 -0.81143,2.98095 -0.32874,4.03902l18.39971,-3.74549c0.38616,4.88048 0.94192,9.7138 1.42461,13.50099c-1.80032,0.52703 -5.1609,1.56679 -5.85232,2.21255c-0.95496,0.88711 -0.95496,3.75718 -0.95496,3.75718l7.53,-0.61316c0.17743,1.23545 0.28701,1.95767 0.28701,1.95767l0.01304,0.06557l0.06002,0l0.13829,0l0.0574,0l0.01043,-0.06557c0,0 0.11218,-0.72222 0.28961,-1.95767l7.53164,0.61316c0,0 0,-2.87006 -0.95496,-3.75718c-0.69044,-0.64577 -4.05363,-1.68813 -5.85133,-2.21516c0.48009,-3.77545 1.03061,-8.58921 1.42198,-13.45404l18.18207,3.70115c0.48009,-1.05806 0.86881,-2.64965 -0.32617,-4.03902c-0.88969,-1.03062 -11.81147,-5.60054 -17.39409,-7.89352c0.06524,-2.52287 0.04175,-4.88024 -0.1148,-6.89989l0,-0.00476c-0.15655,-1.99844 -0.44094,-3.6683 -0.90277,-4.8561c-0.22699,-0.59493 -0.50356,-1.07111 -0.83754,-1.40377c-0.33658,-0.3326 -0.73578,-0.51592 -1.18194,-0.51592l0,0l-0.00001,0l0,0z");

    return transition(plane, route, percent);
    }

    var randomColor = (function(){
    var golden_ratio_conjugate = 0.618033988749895;
    var h = Math.random();

    var hslToRgb = function (h, s, l){
    var r, g, b;

    if(s == 0){
    r = g = b = l; // achromatic
    }else{
    function hue2rgb(p, q, t){
    if(t < 0) t += 1;
    if(t > 1) t -= 1;
    if(t < 1/6) return p + (q - p) * 6 * t;
    if(t < 1/2) return q;
    if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;
    return p;
    }

    var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
    var p = 2 * l - q;
    r = hue2rgb(p, q, h + 1/3);
    g = hue2rgb(p, q, h);
    b = hue2rgb(p, q, h - 1/3);
    }

    return '#'+Math.round(r * 255).toString(16)+Math.round(g * 255).toString(16)+Math.round(b * 255).toString(16);
    };

    return function(){
    h += golden_ratio_conjugate;
    h %= 1;
    return hslToRgb(h, 0.5, 0.60);
    };
    })();


    d3.json("png.json", function(error, papua) {
    if (error) return console.error(error);
    var subunits = topojson.feature(papua, papua.objects.subunits);
    svg.append("path")
    .datum(subunits)
    .attr("d", path);
    svg.selectAll(".subunit")
    .data(topojson.feature(papua, papua.objects.subunits).features)
    .enter().append("path")
    .attr("class", function(d) { return "subunit " +d.properties.adm0_a3 + " " + d.id; })
    .attr("d", path)
    .style({fill: randomColor});
    svg.append("path")
    .datum(topojson.mesh(papua, papua.objects.subunits, function(a, b) { return a !== b && a.properties.adm0_a3 !== "IDN"; }))
    .attr("d", path)
    .attr("class", "subunit-boundary");
    svg.append("path")
    .datum(topojson.mesh(papua, papua.objects.subunits, function(a, b) { return a === b && a.properties.adm0_a3 === "IDN"; }))
    .attr("d", path)
    .attr("class", "subunit-boundary IDN");

    svg.append("path")
    .datum(topojson.feature(papua, papua.objects.places))
    .attr("d", path)
    .attr("class", "place");

    svg.selectAll(".place-label")
    .data(topojson.feature(papua, papua.objects.places).features)
    .enter().append("text")
    .attr("class", "place-label")
    .attr("transform", function(d) { return "translate(" + projection(d.geometry.coordinates) + ")"; })
    .attr("dy", ".15em")
    .text(function(d) { return d.properties.NAME; });

    svg.selectAll(".place-label")
    .attr("x", function(d) { return d.geometry.coordinates[0] > -1 ? 6 : -6; })
    .style("text-anchor", function(d) { return d.geometry.coordinates[0] > -1 ? "start" : "end"; });

    count = svg.append("text")
    .attr("class", "count")
    .attr("x", "1350")
    .attr("y", "700")
    .style({fill: randomColor,
    "font-family": 'Faster One, cursive'})
    .text("0")

    var geos = topojson.feature(papua, papua.objects.places).features;
    for (i in geos) {
    airportMap[geos[i].properties.NAME] = geos[i].geometry.coordinates;
    }

    dests = topojson.feature(papua, papua.objects.places).features.map(function(d){return d.properties.NAME});

    });


    function handleClick(event){
    //cityGen = itertools.permutations(topojson.feature(papua, papua.objects.places).features.map(function(d){return d.properties.NAME}),2);
    //cityArray = shuffle(Array.from(cityGen)).slice(0,5);
    var costOfOneLeg = 150;
    var money = + document.getElementById("money").value;
    var gender = $('input[name="gender"]:checked').val();

    dests.splice(dests.indexOf("Port Moresby"), 1);
    dests.splice(dests.indexOf("Wewak"), 1);
    dests.splice(dests.indexOf("Mendi"), 1);

    cityArray = [];
    newDest = "Mendi";
    cityArray.push(["Port Moresby",newDest]);
    cityArray.push([newDest,"Wewak"]);
    cityArray.push(["Wewak", "Port Moresby"]);

    while( cityArray.length < money/costOfOneLeg ) {
    newDest = dests[Math.floor(Math.random()*dests.length)];
    dests.splice(dests.indexOf(newDest), 1);
    cityArray.push(["Port Moresby",newDest]);
    cityArray.push([newDest,"Wewak"]);
    cityArray.push(["Wewak", "Port Moresby"]);
    }

    var i = 0;
    fly(cityArray[i][0], cityArray[i][1], gender, money/costOfOneLeg - i );
    i++;
    intID = setInterval(function(){
    if (i <= money/costOfOneLeg) {
    count.text(i)
    .style({fill: randomColor})
    fly(cityArray[i][0], cityArray[i][1], gender, money/costOfOneLeg - i );
    i++;
    } else {
    clearInterval(intID)
    }
    }, 2000);

    return false;
    }
    /* JavaScript goes here. */

    </script>
    <br>
    <input name="Submit" type="submit" value="GO!" onclick="return handleClick()">
    <input type="text" id="money" placeholder="Money Raised&hellip;">
    <input type="radio" name="gender" value="boy"> Boys
    <input type="radio" name="gender" value="girl"> Girls
    <input type="radio" name="gender" value="both"> Together!
    1 change: 1 addition & 0 deletions png.json
    1 addition, 0 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
    1 change: 1 addition & 0 deletions topojson.min.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1 @@
    !function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(n.topojson=n.topojson||{})}(this,function(n){"use strict";function t(){}function r(n){if(!n)return t;var r,e,o=n.scale[0],i=n.scale[1],u=n.translate[0],f=n.translate[1];return function(n,t){t||(r=e=0),n[0]=(r+=n[0])*o+u,n[1]=(e+=n[1])*i+f}}function e(n){if(!n)return t;var r,e,o=n.scale[0],i=n.scale[1],u=n.translate[0],f=n.translate[1];return function(n,t){t||(r=e=0);var c=Math.round((n[0]-u)/o),a=Math.round((n[1]-f)/i);n[0]=c-r,n[1]=a-e,r=c,e=a}}function o(n,t){for(var r,e=n.length,o=e-t;o<--e;)r=n[o],n[o++]=n[e],n[e]=r}function i(n,t){for(var r=0,e=n.length;e>r;){var o=r+e>>>1;n[o]<t?r=o+1:e=o}return r}function u(n,t){return"GeometryCollection"===t.type?{type:"FeatureCollection",features:t.geometries.map(function(t){return f(n,t)})}:f(n,t)}function f(n,t){var r={type:"Feature",id:t.id,properties:t.properties||{},geometry:c(n,t)};return null==t.id&&delete r.id,r}function c(n,t){function e(n,t){t.length&&t.pop();for(var r,e=l[0>n?~n:n],i=0,u=e.length;u>i;++i)t.push(r=e[i].slice()),s(r,i);0>n&&o(t,u)}function i(n){return n=n.slice(),s(n,0),n}function u(n){for(var t=[],r=0,o=n.length;o>r;++r)e(n[r],t);return t.length<2&&t.push(t[0].slice()),t}function f(n){for(var t=u(n);t.length<4;)t.push(t[0].slice());return t}function c(n){return n.map(f)}function a(n){var t=n.type;return"GeometryCollection"===t?{type:t,geometries:n.geometries.map(a)}:t in h?{type:t,coordinates:h[t](n)}:null}var s=r(n.transform),l=n.arcs,h={Point:function(n){return i(n.coordinates)},MultiPoint:function(n){return n.coordinates.map(i)},LineString:function(n){return u(n.arcs)},MultiLineString:function(n){return n.arcs.map(u)},Polygon:function(n){return c(n.arcs)},MultiPolygon:function(n){return n.arcs.map(c)}};return a(t)}function a(n,t){function r(t){var r,e=n.arcs[0>t?~t:t],o=e[0];return n.transform?(r=[0,0],e.forEach(function(n){r[0]+=n[0],r[1]+=n[1]})):r=e[e.length-1],0>t?[r,o]:[o,r]}function e(n,t){for(var r in n){var e=n[r];delete t[e.start],delete e.start,delete e.end,e.forEach(function(n){o[0>n?~n:n]=1}),f.push(e)}}var o={},i={},u={},f=[],c=-1;return t.forEach(function(r,e){var o,i=n.arcs[0>r?~r:r];i.length<3&&!i[1][0]&&!i[1][1]&&(o=t[++c],t[c]=r,t[e]=o)}),t.forEach(function(n){var t,e,o=r(n),f=o[0],c=o[1];if(t=u[f])if(delete u[t.end],t.push(n),t.end=c,e=i[c]){delete i[e.start];var a=e===t?t:t.concat(e);i[a.start=t.start]=u[a.end=e.end]=a}else i[t.start]=u[t.end]=t;else if(t=i[c])if(delete i[t.start],t.unshift(n),t.start=f,e=u[f]){delete u[e.end];var s=e===t?t:e.concat(t);i[s.start=e.start]=u[s.end=t.end]=s}else i[t.start]=u[t.end]=t;else t=[n],i[t.start=f]=u[t.end=c]=t}),e(u,i),e(i,u),t.forEach(function(n){o[0>n?~n:n]||f.push([n])}),f}function s(n){return c(n,l.apply(this,arguments))}function l(n,t,r){function e(n){var t=0>n?~n:n;(s[t]||(s[t]=[])).push({i:n,g:c})}function o(n){n.forEach(e)}function i(n){n.forEach(o)}function u(n){"GeometryCollection"===n.type?n.geometries.forEach(u):n.type in l&&(c=n,l[n.type](n.arcs))}var f=[];if(arguments.length>1){var c,s=[],l={LineString:o,MultiLineString:i,Polygon:i,MultiPolygon:function(n){n.forEach(i)}};u(t),s.forEach(arguments.length<3?function(n){f.push(n[0].i)}:function(n){r(n[0].g,n[n.length-1].g)&&f.push(n[0].i)})}else for(var h=0,p=n.arcs.length;p>h;++h)f.push(h);return{type:"MultiLineString",arcs:a(n,f)}}function h(n){var t=n[0],r=n[1],e=n[2];return Math.abs((t[0]-e[0])*(r[1]-t[1])-(t[0]-r[0])*(e[1]-t[1]))}function p(n){for(var t,r=-1,e=n.length,o=n[e-1],i=0;++r<e;)t=o,o=n[r],i+=t[0]*o[1]-t[1]*o[0];return i/2}function v(n){return c(n,g.apply(this,arguments))}function g(n,t){function r(n){n.forEach(function(t){t.forEach(function(t){(o[t=0>t?~t:t]||(o[t]=[])).push(n)})}),i.push(n)}function e(t){return Math.abs(p(c(n,{type:"Polygon",arcs:[t]}).coordinates[0]))}var o={},i=[],u=[];return t.forEach(function(n){"Polygon"===n.type?r(n.arcs):"MultiPolygon"===n.type&&n.arcs.forEach(r)}),i.forEach(function(n){if(!n._){var t=[],r=[n];for(n._=1,u.push(t);n=r.pop();)t.push(n),n.forEach(function(n){n.forEach(function(n){o[0>n?~n:n].forEach(function(n){n._||(n._=1,r.push(n))})})})}}),i.forEach(function(n){delete n._}),{type:"MultiPolygon",arcs:u.map(function(t){var r,i=[];if(t.forEach(function(n){n.forEach(function(n){n.forEach(function(n){o[0>n?~n:n].length<2&&i.push(n)})})}),i=a(n,i),(r=i.length)>1)for(var u,f,c=1,s=e(i[0]);r>c;++c)(u=e(i[c]))>s&&(f=i[0],i[0]=i[c],i[c]=f,s=u);return i})}}function y(n){function t(n,t){n.forEach(function(n){0>n&&(n=~n);var r=o[n];r?r.push(t):o[n]=[t]})}function r(n,r){n.forEach(function(n){t(n,r)})}function e(n,t){"GeometryCollection"===n.type?n.geometries.forEach(function(n){e(n,t)}):n.type in f&&f[n.type](n.arcs,t)}var o={},u=n.map(function(){return[]}),f={LineString:t,MultiLineString:r,Polygon:r,MultiPolygon:function(n,t){n.forEach(function(n){r(n,t)})}};n.forEach(e);for(var c in o)for(var a=o[c],s=a.length,l=0;s>l;++l)for(var h=l+1;s>h;++h){var p,v=a[l],g=a[h];(p=u[v])[c=i(p,g)]!==g&&p.splice(c,0,g),(p=u[g])[c=i(p,v)]!==v&&p.splice(c,0,v)}return u}function d(n,t){return n[1][2]-t[1][2]}function m(){function n(n,t){for(;t>0;){var r=(t+1>>1)-1,o=e[r];if(d(n,o)>=0)break;e[o._=t]=o,e[n._=t=r]=n}}function t(n,t){for(;;){var r=t+1<<1,i=r-1,u=t,f=e[u];if(o>i&&d(e[i],f)<0&&(f=e[u=i]),o>r&&d(e[r],f)<0&&(f=e[u=r]),u===t)break;e[f._=t]=f,e[n._=t=u]=n}}var r={},e=[],o=0;return r.push=function(t){return n(e[t._=o]=t,o++),o},r.pop=function(){if(!(0>=o)){var n,r=e[0];return--o>0&&(n=e[o],t(e[n._=0]=n,0)),r}},r.remove=function(r){var i,u=r._;if(e[u]===r)return u!==--o&&(i=e[o],(d(i,r)<0?n:t)(e[i._=u]=i,u)),u},r}function E(n,t){function o(n){f.remove(n),n[1][2]=t(n),f.push(n)}var i=r(n.transform),u=e(n.transform),f=m();return t||(t=h),n.arcs.forEach(function(n){var r,e,c,a,s=[],l=0;for(e=0,c=n.length;c>e;++e)a=n[e],i(n[e]=[a[0],a[1],1/0],e);for(e=1,c=n.length-1;c>e;++e)r=n.slice(e-1,e+2),r[1][2]=t(r),s.push(r),f.push(r);for(e=0,c=s.length;c>e;++e)r=s[e],r.previous=s[e-1],r.next=s[e+1];for(;r=f.pop();){var h=r.previous,p=r.next;r[1][2]<l?r[1][2]=l:l=r[1][2],h&&(h.next=p,h[2]=r[2],o(h)),p&&(p.previous=h,p[0]=r[0],o(p))}n.forEach(u)}),n}var M="1.6.26";n.version=M,n.mesh=s,n.meshArcs=l,n.merge=v,n.mergeArcs=g,n.feature=u,n.neighbors=y,n.presimplify=E});
  10. ClashTheBunny created this gist Mar 4, 2017.
    9 changes: 9 additions & 0 deletions README.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,9 @@
    This is a visualization of money raised to sponsor hospital trips via plane for remote communities in Papua New Guinea.

    For every $150, the children would be able to pay for a plane to fly on one leg of a trip.
    The plane was based in one city, the people were in another city, and the hospital was in a third.
    The visualization randomly selects a large city on the map and plans a route for the plane to make it to
    that city. It then shows an animation of a plane flying and the count of total full legs of the trip that were sponsored.

    Enter a number at the bottom for the dollar amount raised. Push "go". The plane flys until it runs out of gas and lands
    at that point to show lack of completion and how much more needs to be raised.
  11. ClashTheBunny revised this gist Mar 3, 2017. 5 changed files with 327 additions and 0 deletions.
    22 changes: 22 additions & 0 deletions bower.json
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,22 @@
    {
    "name": "papuaNewGuinea",
    "homepage": "https://github.com/ClashTheBunny/papuaNewGuinea",
    "description": "Animation of number of plane flights sponsored at a VBS event.",
    "main": "index.html",
    "authors": [
    "Randall Mason <randall@mason.ch>"
    ],
    "license": "Apache 2.0",
    "ignore": [
    "**/.*",
    "node_modules",
    "bower_components",
    "test",
    "tests"
    ],
    "dependencies": {
    "babel-polyfill": "^0.0.1",
    "aureooms-js-itertools": "^1.3.0",
    "jquery": "^3.0.0"
    }
    }
    5 changes: 5 additions & 0 deletions d3.min.js
    5 additions, 0 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
    298 changes: 298 additions & 0 deletions index.html
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,298 @@
    <!DOCTYPE html>
    <meta charset="utf-8">
    <style>

    .count {
    font-size: 300px;
    pointer-events: none;
    }

    .subunit.PNB { fill: #cdc; }
    .subunit.PNX { fill: #dcd; }
    .subunit.IDN { display: none; }
    svg { fill: rgb(216,216,216); }

    .subunit-boundary {
    fill: none;
    stroke: #777;
    stroke-dasharray: 2,2;
    stroke-linejoin: round;
    }

    .subunit-boundary.IDN {
    stroke: #aaa;
    }


    .place,
    .place-label {
    fill: #444;
    }

    text {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 30px;
    pointer-events: none;
    }

    .route {
    fill: none;
    stroke: red;
    stroke-dasharray: 2,2;
    stroke-linejoin: round;
    stroke-width: 1em;
    }
    .plane.boy {
    fill: #2b65EC;
    stroke-width: 0;
    }
    .plane.girl {
    fill: pink;
    stroke-width: 0;
    }
    .plane.both {
    fill: #fff;
    stroke: #000;
    stroke-width: 0.1 em;
    }

    </style>
    <body>
    <script src="bower_components/babel-polyfill/browser-polyfill.js"></script>
    <script src="bower_components/aureooms-js-itertools/js/dist/itertools.min.js"></script>
    <script src="bower_components/jquery/dist/jquery.min.js"></script>
    <script src="d3.min.js" charset="utf-8"></script>
    <script src="topojson.min.js"></script>
    <link href="https://fonts.googleapis.com/css?family=Faster+One|Frijole" rel="stylesheet">
    <script>
    function shuffle(array) {
    counter = array.length;

    // While there are elements in the array
    while (counter > 0) {
    // Pick a random index
    index = Math.floor(Math.random() * counter);

    // Decrease counter by 1
    counter--;

    // And swap the last element with it
    temp = array[counter];
    array[counter] = array[index];
    array[index] = temp;
    }

    return array;
    }

    var width = 1920,
    height = 1080;

    var svg = d3.select("body").append("svg")
    .attr("width", width)
    .attr("height", height);

    var projection = d3.geo.mercator()
    .center([148.5, -6.5])
    .scale(6200)
    .translate([width / 2, height / 2]);
    var path = d3.geo.path()
    .projection(projection);

    var airportMap = {};

    function transition(plane, route, percent) {
    var l = route.node().getTotalLength();
    plane.transition()
    .duration(4000)
    .attrTween("transform", delta(plane, route.node(), percent))
    .remove();
    return l*10;
    }

    function delta(plane, path, percent) {
    var l = path.getTotalLength();
    var plane = plane;
    return function(i) {
    return function(t) {
    var s = 5*Math.min(Math.sin(Math.PI * t) * 0.7, 0.3);

    if( t > percent) {
    var p = path.getPointAtLength(percent * l);
    var t2 = Math.min(t + 0.05, 1);
    var p2 = path.getPointAtLength(t2 * l);

    var x = p2.x - p.x;
    var y = p2.y - p.y;
    var r = 90 - Math.atan2(-y, x) * 180 / Math.PI + (t - percent)*360;
    } else {
    var p = path.getPointAtLength(t * l);
    var t2 = Math.min(t + 0.05, 1);
    var p2 = path.getPointAtLength(t2 * l);

    var x = p2.x - p.x;
    var y = p2.y - p.y;
    var r = 90 - Math.atan2(-y, x) * 180 / Math.PI;
    }

    return "translate(" + p.x + "," + p.y + ") scale(" + s + ") rotate(" + r + ")";
    }
    }
    }

    function fly(origin, destination, gender, percent) {
    var route = svg.append("path")
    .datum({type: "LineString", coordinates: [airportMap[origin], airportMap[destination]]})
    .attr("class", "route")
    .attr("d", path);

    var plane = svg.append("path")
    .attr("class", "plane " + gender)
    .attr("d", "m25.21488,3.93375c-0.44355,0 -0.84275,0.18332 -1.17933,0.51592c-0.33397,0.33267 -0.61055,0.80884 -0.84275,1.40377c-0.45922,1.18911 -0.74362,2.85964 -0.89755,4.86085c-0.15655,1.99729 -0.18263,4.32223 -0.11741,6.81118c-5.51835,2.26427 -16.7116,6.93857 -17.60916,7.98223c-1.19759,1.38937 -0.81143,2.98095 -0.32874,4.03902l18.39971,-3.74549c0.38616,4.88048 0.94192,9.7138 1.42461,13.50099c-1.80032,0.52703 -5.1609,1.56679 -5.85232,2.21255c-0.95496,0.88711 -0.95496,3.75718 -0.95496,3.75718l7.53,-0.61316c0.17743,1.23545 0.28701,1.95767 0.28701,1.95767l0.01304,0.06557l0.06002,0l0.13829,0l0.0574,0l0.01043,-0.06557c0,0 0.11218,-0.72222 0.28961,-1.95767l7.53164,0.61316c0,0 0,-2.87006 -0.95496,-3.75718c-0.69044,-0.64577 -4.05363,-1.68813 -5.85133,-2.21516c0.48009,-3.77545 1.03061,-8.58921 1.42198,-13.45404l18.18207,3.70115c0.48009,-1.05806 0.86881,-2.64965 -0.32617,-4.03902c-0.88969,-1.03062 -11.81147,-5.60054 -17.39409,-7.89352c0.06524,-2.52287 0.04175,-4.88024 -0.1148,-6.89989l0,-0.00476c-0.15655,-1.99844 -0.44094,-3.6683 -0.90277,-4.8561c-0.22699,-0.59493 -0.50356,-1.07111 -0.83754,-1.40377c-0.33658,-0.3326 -0.73578,-0.51592 -1.18194,-0.51592l0,0l-0.00001,0l0,0z");

    return transition(plane, route, percent);
    }

    var randomColor = (function(){
    var golden_ratio_conjugate = 0.618033988749895;
    var h = Math.random();

    var hslToRgb = function (h, s, l){
    var r, g, b;

    if(s == 0){
    r = g = b = l; // achromatic
    }else{
    function hue2rgb(p, q, t){
    if(t < 0) t += 1;
    if(t > 1) t -= 1;
    if(t < 1/6) return p + (q - p) * 6 * t;
    if(t < 1/2) return q;
    if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;
    return p;
    }

    var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
    var p = 2 * l - q;
    r = hue2rgb(p, q, h + 1/3);
    g = hue2rgb(p, q, h);
    b = hue2rgb(p, q, h - 1/3);
    }

    return '#'+Math.round(r * 255).toString(16)+Math.round(g * 255).toString(16)+Math.round(b * 255).toString(16);
    };

    return function(){
    h += golden_ratio_conjugate;
    h %= 1;
    return hslToRgb(h, 0.5, 0.60);
    };
    })();


    d3.json("png.json", function(error, papua) {
    if (error) return console.error(error);
    var subunits = topojson.feature(papua, papua.objects.subunits);
    svg.append("path")
    .datum(subunits)
    .attr("d", path);
    svg.selectAll(".subunit")
    .data(topojson.feature(papua, papua.objects.subunits).features)
    .enter().append("path")
    .attr("class", function(d) { return "subunit " +d.properties.adm0_a3 + " " + d.id; })
    .attr("d", path)
    .style({fill: randomColor});
    svg.append("path")
    .datum(topojson.mesh(papua, papua.objects.subunits, function(a, b) { return a !== b && a.properties.adm0_a3 !== "IDN"; }))
    .attr("d", path)
    .attr("class", "subunit-boundary");
    svg.append("path")
    .datum(topojson.mesh(papua, papua.objects.subunits, function(a, b) { return a === b && a.properties.adm0_a3 === "IDN"; }))
    .attr("d", path)
    .attr("class", "subunit-boundary IDN");

    svg.append("path")
    .datum(topojson.feature(papua, papua.objects.places))
    .attr("d", path)
    .attr("class", "place");

    svg.selectAll(".place-label")
    .data(topojson.feature(papua, papua.objects.places).features)
    .enter().append("text")
    .attr("class", "place-label")
    .attr("transform", function(d) { return "translate(" + projection(d.geometry.coordinates) + ")"; })
    .attr("dy", ".15em")
    .text(function(d) { return d.properties.NAME; });

    svg.selectAll(".place-label")
    .attr("x", function(d) { return d.geometry.coordinates[0] > -1 ? 6 : -6; })
    .style("text-anchor", function(d) { return d.geometry.coordinates[0] > -1 ? "start" : "end"; });

    count = svg.append("text")
    .attr("class", "count")
    .attr("x", "1350")
    .attr("y", "700")
    .style({fill: randomColor,
    "font-family": 'Faster One, cursive'})
    .text("0")

    var geos = topojson.feature(papua, papua.objects.places).features;
    for (i in geos) {
    airportMap[geos[i].properties.NAME] = geos[i].geometry.coordinates;
    }

    dests = topojson.feature(papua, papua.objects.places).features.map(function(d){return d.properties.NAME});

    });


    function handleClick(event){
    //cityGen = itertools.permutations(topojson.feature(papua, papua.objects.places).features.map(function(d){return d.properties.NAME}),2);
    //cityArray = shuffle(Array.from(cityGen)).slice(0,5);
    var costOfOneLeg = 150;
    var money = + document.getElementById("money").value;
    var gender = $('input[name="gender"]:checked').val();

    dests.splice(dests.indexOf("Port Moresby"), 1);
    dests.splice(dests.indexOf("Wewak"), 1);
    dests.splice(dests.indexOf("Mendi"), 1);

    cityArray = [];
    newDest = "Mendi";
    cityArray.push(["Port Moresby",newDest]);
    cityArray.push([newDest,"Wewak"]);
    cityArray.push(["Wewak", "Port Moresby"]);

    while( cityArray.length < money/costOfOneLeg ) {
    newDest = dests[Math.floor(Math.random()*dests.length)];
    dests.splice(dests.indexOf(newDest), 1);
    cityArray.push(["Port Moresby",newDest]);
    cityArray.push([newDest,"Wewak"]);
    cityArray.push(["Wewak", "Port Moresby"]);
    }

    var i = 0;
    fly(cityArray[i][0], cityArray[i][1], gender, money/costOfOneLeg - i );
    i++;
    intID = setInterval(function(){
    if (i <= money/costOfOneLeg) {
    count.text(i)
    .style({fill: randomColor})
    fly(cityArray[i][0], cityArray[i][1], gender, money/costOfOneLeg - i );
    i++;
    } else {
    clearInterval(intID)
    }
    }, 2000);

    return false;
    }
    /* JavaScript goes here. */

    </script>
    <br>
    <input name="Submit" type="submit" value="GO!" onclick="return handleClick()">
    <input type="text" id="money" placeholder="Money Raised&hellip;">
    <input type="radio" name="gender" value="boy"> Boys
    <input type="radio" name="gender" value="girl"> Girls
    <input type="radio" name="gender" value="both"> Together!
    1 change: 1 addition & 0 deletions png.json
    1 addition, 0 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
    1 change: 1 addition & 0 deletions topojson.min.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1 @@
    !function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(n.topojson=n.topojson||{})}(this,function(n){"use strict";function t(){}function r(n){if(!n)return t;var r,e,o=n.scale[0],i=n.scale[1],u=n.translate[0],f=n.translate[1];return function(n,t){t||(r=e=0),n[0]=(r+=n[0])*o+u,n[1]=(e+=n[1])*i+f}}function e(n){if(!n)return t;var r,e,o=n.scale[0],i=n.scale[1],u=n.translate[0],f=n.translate[1];return function(n,t){t||(r=e=0);var c=Math.round((n[0]-u)/o),a=Math.round((n[1]-f)/i);n[0]=c-r,n[1]=a-e,r=c,e=a}}function o(n,t){for(var r,e=n.length,o=e-t;o<--e;)r=n[o],n[o++]=n[e],n[e]=r}function i(n,t){for(var r=0,e=n.length;e>r;){var o=r+e>>>1;n[o]<t?r=o+1:e=o}return r}function u(n,t){return"GeometryCollection"===t.type?{type:"FeatureCollection",features:t.geometries.map(function(t){return f(n,t)})}:f(n,t)}function f(n,t){var r={type:"Feature",id:t.id,properties:t.properties||{},geometry:c(n,t)};return null==t.id&&delete r.id,r}function c(n,t){function e(n,t){t.length&&t.pop();for(var r,e=l[0>n?~n:n],i=0,u=e.length;u>i;++i)t.push(r=e[i].slice()),s(r,i);0>n&&o(t,u)}function i(n){return n=n.slice(),s(n,0),n}function u(n){for(var t=[],r=0,o=n.length;o>r;++r)e(n[r],t);return t.length<2&&t.push(t[0].slice()),t}function f(n){for(var t=u(n);t.length<4;)t.push(t[0].slice());return t}function c(n){return n.map(f)}function a(n){var t=n.type;return"GeometryCollection"===t?{type:t,geometries:n.geometries.map(a)}:t in h?{type:t,coordinates:h[t](n)}:null}var s=r(n.transform),l=n.arcs,h={Point:function(n){return i(n.coordinates)},MultiPoint:function(n){return n.coordinates.map(i)},LineString:function(n){return u(n.arcs)},MultiLineString:function(n){return n.arcs.map(u)},Polygon:function(n){return c(n.arcs)},MultiPolygon:function(n){return n.arcs.map(c)}};return a(t)}function a(n,t){function r(t){var r,e=n.arcs[0>t?~t:t],o=e[0];return n.transform?(r=[0,0],e.forEach(function(n){r[0]+=n[0],r[1]+=n[1]})):r=e[e.length-1],0>t?[r,o]:[o,r]}function e(n,t){for(var r in n){var e=n[r];delete t[e.start],delete e.start,delete e.end,e.forEach(function(n){o[0>n?~n:n]=1}),f.push(e)}}var o={},i={},u={},f=[],c=-1;return t.forEach(function(r,e){var o,i=n.arcs[0>r?~r:r];i.length<3&&!i[1][0]&&!i[1][1]&&(o=t[++c],t[c]=r,t[e]=o)}),t.forEach(function(n){var t,e,o=r(n),f=o[0],c=o[1];if(t=u[f])if(delete u[t.end],t.push(n),t.end=c,e=i[c]){delete i[e.start];var a=e===t?t:t.concat(e);i[a.start=t.start]=u[a.end=e.end]=a}else i[t.start]=u[t.end]=t;else if(t=i[c])if(delete i[t.start],t.unshift(n),t.start=f,e=u[f]){delete u[e.end];var s=e===t?t:e.concat(t);i[s.start=e.start]=u[s.end=t.end]=s}else i[t.start]=u[t.end]=t;else t=[n],i[t.start=f]=u[t.end=c]=t}),e(u,i),e(i,u),t.forEach(function(n){o[0>n?~n:n]||f.push([n])}),f}function s(n){return c(n,l.apply(this,arguments))}function l(n,t,r){function e(n){var t=0>n?~n:n;(s[t]||(s[t]=[])).push({i:n,g:c})}function o(n){n.forEach(e)}function i(n){n.forEach(o)}function u(n){"GeometryCollection"===n.type?n.geometries.forEach(u):n.type in l&&(c=n,l[n.type](n.arcs))}var f=[];if(arguments.length>1){var c,s=[],l={LineString:o,MultiLineString:i,Polygon:i,MultiPolygon:function(n){n.forEach(i)}};u(t),s.forEach(arguments.length<3?function(n){f.push(n[0].i)}:function(n){r(n[0].g,n[n.length-1].g)&&f.push(n[0].i)})}else for(var h=0,p=n.arcs.length;p>h;++h)f.push(h);return{type:"MultiLineString",arcs:a(n,f)}}function h(n){var t=n[0],r=n[1],e=n[2];return Math.abs((t[0]-e[0])*(r[1]-t[1])-(t[0]-r[0])*(e[1]-t[1]))}function p(n){for(var t,r=-1,e=n.length,o=n[e-1],i=0;++r<e;)t=o,o=n[r],i+=t[0]*o[1]-t[1]*o[0];return i/2}function v(n){return c(n,g.apply(this,arguments))}function g(n,t){function r(n){n.forEach(function(t){t.forEach(function(t){(o[t=0>t?~t:t]||(o[t]=[])).push(n)})}),i.push(n)}function e(t){return Math.abs(p(c(n,{type:"Polygon",arcs:[t]}).coordinates[0]))}var o={},i=[],u=[];return t.forEach(function(n){"Polygon"===n.type?r(n.arcs):"MultiPolygon"===n.type&&n.arcs.forEach(r)}),i.forEach(function(n){if(!n._){var t=[],r=[n];for(n._=1,u.push(t);n=r.pop();)t.push(n),n.forEach(function(n){n.forEach(function(n){o[0>n?~n:n].forEach(function(n){n._||(n._=1,r.push(n))})})})}}),i.forEach(function(n){delete n._}),{type:"MultiPolygon",arcs:u.map(function(t){var r,i=[];if(t.forEach(function(n){n.forEach(function(n){n.forEach(function(n){o[0>n?~n:n].length<2&&i.push(n)})})}),i=a(n,i),(r=i.length)>1)for(var u,f,c=1,s=e(i[0]);r>c;++c)(u=e(i[c]))>s&&(f=i[0],i[0]=i[c],i[c]=f,s=u);return i})}}function y(n){function t(n,t){n.forEach(function(n){0>n&&(n=~n);var r=o[n];r?r.push(t):o[n]=[t]})}function r(n,r){n.forEach(function(n){t(n,r)})}function e(n,t){"GeometryCollection"===n.type?n.geometries.forEach(function(n){e(n,t)}):n.type in f&&f[n.type](n.arcs,t)}var o={},u=n.map(function(){return[]}),f={LineString:t,MultiLineString:r,Polygon:r,MultiPolygon:function(n,t){n.forEach(function(n){r(n,t)})}};n.forEach(e);for(var c in o)for(var a=o[c],s=a.length,l=0;s>l;++l)for(var h=l+1;s>h;++h){var p,v=a[l],g=a[h];(p=u[v])[c=i(p,g)]!==g&&p.splice(c,0,g),(p=u[g])[c=i(p,v)]!==v&&p.splice(c,0,v)}return u}function d(n,t){return n[1][2]-t[1][2]}function m(){function n(n,t){for(;t>0;){var r=(t+1>>1)-1,o=e[r];if(d(n,o)>=0)break;e[o._=t]=o,e[n._=t=r]=n}}function t(n,t){for(;;){var r=t+1<<1,i=r-1,u=t,f=e[u];if(o>i&&d(e[i],f)<0&&(f=e[u=i]),o>r&&d(e[r],f)<0&&(f=e[u=r]),u===t)break;e[f._=t]=f,e[n._=t=u]=n}}var r={},e=[],o=0;return r.push=function(t){return n(e[t._=o]=t,o++),o},r.pop=function(){if(!(0>=o)){var n,r=e[0];return--o>0&&(n=e[o],t(e[n._=0]=n,0)),r}},r.remove=function(r){var i,u=r._;if(e[u]===r)return u!==--o&&(i=e[o],(d(i,r)<0?n:t)(e[i._=u]=i,u)),u},r}function E(n,t){function o(n){f.remove(n),n[1][2]=t(n),f.push(n)}var i=r(n.transform),u=e(n.transform),f=m();return t||(t=h),n.arcs.forEach(function(n){var r,e,c,a,s=[],l=0;for(e=0,c=n.length;c>e;++e)a=n[e],i(n[e]=[a[0],a[1],1/0],e);for(e=1,c=n.length-1;c>e;++e)r=n.slice(e-1,e+2),r[1][2]=t(r),s.push(r),f.push(r);for(e=0,c=s.length;c>e;++e)r=s[e],r.previous=s[e-1],r.next=s[e+1];for(;r=f.pop();){var h=r.previous,p=r.next;r[1][2]<l?r[1][2]=l:l=r[1][2],h&&(h.next=p,h[2]=r[2],o(h)),p&&(p.previous=h,p[0]=r[0],o(p))}n.forEach(u)}),n}var M="1.6.26";n.version=M,n.mesh=s,n.meshArcs=l,n.merge=v,n.mergeArcs=g,n.feature=u,n.neighbors=y,n.presimplify=E});
  12. ClashTheBunny created this gist Mar 3, 2017.
    201 changes: 201 additions & 0 deletions LICENSE
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,201 @@
    Apache License
    Version 2.0, January 2004
    http://www.apache.org/licenses/

    TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

    1. Definitions.

    "License" shall mean the terms and conditions for use, reproduction,
    and distribution as defined by Sections 1 through 9 of this document.

    "Licensor" shall mean the copyright owner or entity authorized by
    the copyright owner that is granting the License.

    "Legal Entity" shall mean the union of the acting entity and all
    other entities that control, are controlled by, or are under common
    control with that entity. For the purposes of this definition,
    "control" means (i) the power, direct or indirect, to cause the
    direction or management of such entity, whether by contract or
    otherwise, or (ii) ownership of fifty percent (50%) or more of the
    outstanding shares, or (iii) beneficial ownership of such entity.

    "You" (or "Your") shall mean an individual or Legal Entity
    exercising permissions granted by this License.

    "Source" form shall mean the preferred form for making modifications,
    including but not limited to software source code, documentation
    source, and configuration files.

    "Object" form shall mean any form resulting from mechanical
    transformation or translation of a Source form, including but
    not limited to compiled object code, generated documentation,
    and conversions to other media types.

    "Work" shall mean the work of authorship, whether in Source or
    Object form, made available under the License, as indicated by a
    copyright notice that is included in or attached to the work
    (an example is provided in the Appendix below).

    "Derivative Works" shall mean any work, whether in Source or Object
    form, that is based on (or derived from) the Work and for which the
    editorial revisions, annotations, elaborations, or other modifications
    represent, as a whole, an original work of authorship. For the purposes
    of this License, Derivative Works shall not include works that remain
    separable from, or merely link (or bind by name) to the interfaces of,
    the Work and Derivative Works thereof.

    "Contribution" shall mean any work of authorship, including
    the original version of the Work and any modifications or additions
    to that Work or Derivative Works thereof, that is intentionally
    submitted to Licensor for inclusion in the Work by the copyright owner
    or by an individual or Legal Entity authorized to submit on behalf of
    the copyright owner. For the purposes of this definition, "submitted"
    means any form of electronic, verbal, or written communication sent
    to the Licensor or its representatives, including but not limited to
    communication on electronic mailing lists, source code control systems,
    and issue tracking systems that are managed by, or on behalf of, the
    Licensor for the purpose of discussing and improving the Work, but
    excluding communication that is conspicuously marked or otherwise
    designated in writing by the copyright owner as "Not a Contribution."

    "Contributor" shall mean Licensor and any individual or Legal Entity
    on behalf of whom a Contribution has been received by Licensor and
    subsequently incorporated within the Work.

    2. Grant of Copyright License. Subject to the terms and conditions of
    this License, each Contributor hereby grants to You a perpetual,
    worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    copyright license to reproduce, prepare Derivative Works of,
    publicly display, publicly perform, sublicense, and distribute the
    Work and such Derivative Works in Source or Object form.

    3. Grant of Patent License. Subject to the terms and conditions of
    this License, each Contributor hereby grants to You a perpetual,
    worldwide, non-exclusive, no-charge, royalty-free, irrevocable
    (except as stated in this section) patent license to make, have made,
    use, offer to sell, sell, import, and otherwise transfer the Work,
    where such license applies only to those patent claims licensable
    by such Contributor that are necessarily infringed by their
    Contribution(s) alone or by combination of their Contribution(s)
    with the Work to which such Contribution(s) was submitted. If You
    institute patent litigation against any entity (including a
    cross-claim or counterclaim in a lawsuit) alleging that the Work
    or a Contribution incorporated within the Work constitutes direct
    or contributory patent infringement, then any patent licenses
    granted to You under this License for that Work shall terminate
    as of the date such litigation is filed.

    4. Redistribution. You may reproduce and distribute copies of the
    Work or Derivative Works thereof in any medium, with or without
    modifications, and in Source or Object form, provided that You
    meet the following conditions:

    (a) You must give any other recipients of the Work or
    Derivative Works a copy of this License; and

    (b) You must cause any modified files to carry prominent notices
    stating that You changed the files; and

    (c) You must retain, in the Source form of any Derivative Works
    that You distribute, all copyright, patent, trademark, and
    attribution notices from the Source form of the Work,
    excluding those notices that do not pertain to any part of
    the Derivative Works; and

    (d) If the Work includes a "NOTICE" text file as part of its
    distribution, then any Derivative Works that You distribute must
    include a readable copy of the attribution notices contained
    within such NOTICE file, excluding those notices that do not
    pertain to any part of the Derivative Works, in at least one
    of the following places: within a NOTICE text file distributed
    as part of the Derivative Works; within the Source form or
    documentation, if provided along with the Derivative Works; or,
    within a display generated by the Derivative Works, if and
    wherever such third-party notices normally appear. The contents
    of the NOTICE file are for informational purposes only and
    do not modify the License. You may add Your own attribution
    notices within Derivative Works that You distribute, alongside
    or as an addendum to the NOTICE text from the Work, provided
    that such additional attribution notices cannot be construed
    as modifying the License.

    You may add Your own copyright statement to Your modifications and
    may provide additional or different license terms and conditions
    for use, reproduction, or distribution of Your modifications, or
    for any such Derivative Works as a whole, provided Your use,
    reproduction, and distribution of the Work otherwise complies with
    the conditions stated in this License.

    5. Submission of Contributions. Unless You explicitly state otherwise,
    any Contribution intentionally submitted for inclusion in the Work
    by You to the Licensor shall be under the terms and conditions of
    this License, without any additional terms or conditions.
    Notwithstanding the above, nothing herein shall supersede or modify
    the terms of any separate license agreement you may have executed
    with Licensor regarding such Contributions.

    6. Trademarks. This License does not grant permission to use the trade
    names, trademarks, service marks, or product names of the Licensor,
    except as required for reasonable and customary use in describing the
    origin of the Work and reproducing the content of the NOTICE file.

    7. Disclaimer of Warranty. Unless required by applicable law or
    agreed to in writing, Licensor provides the Work (and each
    Contributor provides its Contributions) on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    implied, including, without limitation, any warranties or conditions
    of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
    PARTICULAR PURPOSE. You are solely responsible for determining the
    appropriateness of using or redistributing the Work and assume any
    risks associated with Your exercise of permissions under this License.

    8. Limitation of Liability. In no event and under no legal theory,
    whether in tort (including negligence), contract, or otherwise,
    unless required by applicable law (such as deliberate and grossly
    negligent acts) or agreed to in writing, shall any Contributor be
    liable to You for damages, including any direct, indirect, special,
    incidental, or consequential damages of any character arising as a
    result of this License or out of the use or inability to use the
    Work (including but not limited to damages for loss of goodwill,
    work stoppage, computer failure or malfunction, or any and all
    other commercial damages or losses), even if such Contributor
    has been advised of the possibility of such damages.

    9. Accepting Warranty or Additional Liability. While redistributing
    the Work or Derivative Works thereof, You may choose to offer,
    and charge a fee for, acceptance of support, warranty, indemnity,
    or other liability obligations and/or rights consistent with this
    License. However, in accepting such obligations, You may act only
    on Your own behalf and on Your sole responsibility, not on behalf
    of any other Contributor, and only if You agree to indemnify,
    defend, and hold each Contributor harmless for any liability
    incurred by, or claims asserted against, such Contributor by reason
    of your accepting any such warranty or additional liability.

    END OF TERMS AND CONDITIONS

    APPENDIX: How to apply the Apache License to your work.

    To apply the Apache License to your work, attach the following
    boilerplate notice, with the fields enclosed by brackets "{}"
    replaced with your own identifying information. (Don't include
    the brackets!) The text should be enclosed in the appropriate
    comment syntax for the file format. We also recommend that a
    file or class name and description of purpose be included on the
    same "printed page" as the copyright notice for easier
    identification within third-party archives.

    Copyright {yyyy} {name of copyright owner}

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.