-require("include/tile.js");
-require("include/render.js");
-
-OPENSTREETMAP("openstreetmap.org", TILE_RECORDS, RENDER_RECORDS);
-OPENSTREETMAP("openstreetmap.com");
-OPENSTREETMAP("openstreetmap.net");
-OPENSTREETMAP("openstreetmap.ca");
-OPENSTREETMAP("openstreetmap.eu");
-OPENSTREETMAP("openstreetmap.pro");
-OPENSTREETMAP("openstreetmaps.org");
-OPENSTREETMAP("osm.org");
-OPENSTREETMAP("openmaps.org");
-OPENSTREETMAP("openstreetmap.io");
-OPENSTREETMAP("osm.io");
-OPENSTREETMAP("openworldmap.org");
-OPENSTREETMAP("freeosm.org");
-OPENSTREETMAP("open-maps.org");
-OPENSTREETMAP("open-maps.com");
-OPENSTREETMAP("osmbugs.org");
+require("include/sshfp.js");
+require("include/nominatim.js");
+
+try {
+ require("include/geo.js");
+} catch (e) {
+ var GEO_NS_RECORDS = [];
+}
+
+OPENSTREETMAP_ORG_RECORDS = [
+ CNAME("_acme-challenge.tile", "bxve5ryiwwv7woiraq.fastly-validations.com.", TTL("10m"))
+]
+
+OSM_ORG_RECORDS = [
+ CNAME("_acme-challenge.tile", "21gvdfyyxjoc4lmsem.fastly-validations.com.", TTL("10m"))
+]
+
+OPENSTREETMAP("openstreetmap.org", REG_GANDI, OPENSTREETMAP_ORG_RECORDS, SSHFP_RECORDS, GEO_NS_RECORDS, NOMINATIM_RECORDS);
+OPENSTREETMAP("openstreetmap.com", REG_GANDI);
+OPENSTREETMAP("openstreetmap.net", REG_GANDI);
+OPENSTREETMAP("openstreetmap.ca", REG_GANDI);
+OPENSTREETMAP("openstreetmap.eu", REG_NONE);
+OPENSTREETMAP("openstreetmap.pro", REG_GANDI);
+OPENSTREETMAP("openstreetmap.gay", REG_GANDI);
+OPENSTREETMAP("openstreetmaps.org", REG_GANDI);
+OPENSTREETMAP("osm.org", REG_GANDI, OSM_ORG_RECORDS, SSHFP_RECORDS);
+OPENSTREETMAP("openmaps.org", REG_GANDI);
+OPENSTREETMAP("openstreetmap.io", REG_GANDI);
+OPENSTREETMAP("osm.io", REG_GANDI);
+OPENSTREETMAP("openstreetmap.li", REG_GANDI);
+OPENSTREETMAP("openworldmap.org", REG_GANDI);
+OPENSTREETMAP("freeosm.org", REG_GANDI);
+OPENSTREETMAP("open-maps.org", REG_GANDI);
+OPENSTREETMAP("open-maps.com", REG_GANDI);
+OPENSTREETMAP("osmbugs.org", REG_GANDI);
+OPENSTREETMAP("openstreetmap.ai", REG_GANDI);
+OPENSTREETMAP("openstreetmap.am", REG_GANDI);
+OPENSTREETMAP("openstreetmap.fi", REG_GANDI);
+OPENSTREETMAP("openstreetmap.gr", REG_GANDI);
+OPENSTREETMAP("openstreetmap.me", REG_GANDI);
+OPENSTREETMAP("openstreetmap.mx", REG_GANDI);
+OPENSTREETMAP("openstreetmap.nz", REG_GANDI);
+OPENSTREETMAP("openstreetmap.pe", REG_GANDI);
+OPENSTREETMAP("openstreetmap.ph", REG_GANDI);
+OPENSTREETMAP("openstreetmap.sg", REG_GANDI);
+OPENSTREETMAP("openstreetmap.tv", REG_GANDI);
+OPENSTREETMAP("openstreetmap.wales", REG_GANDI);
+OPENSTREETMAP("openstreetmapdata.org", REG_GANDI);
+
+// Disable due to registration issue
+// OPENSTREETMAP("openstreetmap.al", REG_NONE);
+
+// Mastodon redirects to en.osm.town
+var OPENSTREETMAP_TOWN = loadTemplate("openstreetmap-town");
+OPENSTREETMAP_TOWN("openstreetmap.town", REG_GANDI);
+
+// Domain owned by Amanda McCann
+// osm.town
+
+// Managed independently by Guillaume Rischard
+// openstreetmap.lu
+// osm.lu
+
+var OSM_LI = loadTemplate("osm-li");
+
+OSM_LI("osm.li", REG_GANDI);