diff --git a/make-base-messages.js b/make-base-messages.js new file mode 100644 index 0000000000..178a24440b --- /dev/null +++ b/make-base-messages.js @@ -0,0 +1,183 @@ +require('dotenv').config({path: 'src/.env'}); +const fs = require('fs-extra'); +const path = require('path'); +const walk = require("object-walk"); +const exec = require("child_process").exec; +const yaml = require('js-yaml'); +const shell = require('shelljs'); +const colors = require('colors'); +const args = require("optimist").argv; + +const help = "Usage:\n" + + "Update all existing base project locale po files: node make-base-messages.js\n" + + "Add a new base project locale: node make-base-messages.js --set-new-locale="; + +if (args.h || args.help) { + console.log(help); + process.exit(0); +} + +// Logging +const logError = (msg) => { + console.error("(MAKEMESSAGES) ", colors.red("(ERROR!) "), msg); +}; + +const jsTemplatesRegexObj = new RegExp(/{{#_}}([\s\S]*?){{\/_}}/, "g"); + +const basePath = path.resolve( + __dirname, + "src/base" +); +const baseLocalePath = path.resolve( + basePath, + "locale" +); +const potFilePath = path.resolve( + basePath, + "messages.pot" +); +const baseJSTemplatesPath = path.resolve( + basePath, + "jstemplates" +); +const messagesCatalogTempPath = path.resolve( + __dirname, + "temp-messages" +); +shell.mkdir('-p', messagesCatalogTempPath); + +let templatePath, + foundMessages, + jsTemplatesMessagesOutput; +const extractTemplateMessages = (jsTemplateName, jsTemplatePath) => { + if (jsTemplate.endsWith("html") || jsTemplate.endsWith("hbs")) { + foundMessages = []; + + // NOTE: we save these temp files as python files, so we can take + // advantage of Python's multiline string quoting capabilities. The JS + // equivalent (backticks) causes problems for xgettext. + jsTemplatesMessagesOutput = fs.createWriteStream( + path.resolve( + messagesCatalogTempPath, + jsTemplateName + "-messages.temp.py" + ) + ); + templateString = fs.readFileSync( + path.resolve(jsTemplatePath, jsTemplateName), + "utf8" + ); + while (foundMessage = jsTemplatesRegexObj.exec(templateString)) { + + // The second item in foundMessage represents the capture group + foundMessages.push(foundMessage[1]); + } + + foundMessages.forEach((message) => { + jsTemplatesMessagesOutput.write('_("""' + escapeQuotes(message) + '""");\n'); + }); + + jsTemplatesMessagesOutput.end(); + } +}; + +const cleanup = () => { + shell.rm('-rf', messagesCatalogTempPath); + fs.existsSync(potFilePath) && shell.rm(potFilePath); +}; + +let basePOPath, + mergedBasePOPath; +const mergeExistingLocales = () => { + const locales = fs.readdirSync(baseLocalePath) + .filter((locale) => { + + // filter out any hidden system files, like .DS_Store + return !locale.startsWith("\."); + }); + let numFinishedLocales = 0; + locales.forEach((locale) => { + basePOPath = path.resolve( + baseLocalePath, + locale, + "LC_MESSAGES/messages.po" + ); + + exec( + "msgmerge" + + " --no-location" + + " --no-fuzzy-matching" + + " --update " + + basePOPath + " " + + potFilePath, + (err) => { + if (err) { + logError("Error merging po files for " + locale + ": " + err); + logError("Aborting"); + + process.exit(1); + } + numFinishedLocales++; + + // If we're all done, remove temporary files. + if (numFinishedLocales === locales.length) { + cleanup(); + } + } + ); + }); +}; + +const generateCatalog = (merge, outputPath) => { + exec( + "xgettext" + + " --from-code=UTF-8" + + " --no-location" + + " -o " + outputPath + " " + + messagesCatalogTempPath + "/*", + (err) => { + if (err) { + logError("Error generating po template file: " + err); + logError("Aborting"); + + process.exit(1); + } + + (merge) + ? mergeExistingLocales() + : cleanup(); + } + ); +}; + +const escapeQuotes = (message) => { + return message + .split('"') + .join('\\"') + .split("'") + .join("\\'"); +}; + +// Extract trasnslatable strings from base project jstemplates +fs.readdirSync(baseJSTemplatesPath).forEach((jsTemplateName) => { + extractTemplateMessages(jsTemplateName, baseJSTemplatesPath); +}); + +// Extract translatable strings from base.hbs +extractTemplateMessages("base.hbs", path.resolve(basePath, "templates")); + +if (args["set-new-locale"]) { + + // Create a new locale + let locale = args["set-new-locale"], + localePath = path.resolve( + baseLocalePath, + locale, + "LC_MESSAGES" + ); + shell.mkdir("-p", localePath); + generateCatalog(false, localePath + "/messages.po"); +} else { + + // Update existing locales + generateCatalog(true, potFilePath); +} \ No newline at end of file diff --git a/make-flavor-messages.js b/make-flavor-messages.js new file mode 100644 index 0000000000..9e6b411bfd --- /dev/null +++ b/make-flavor-messages.js @@ -0,0 +1,229 @@ +require('dotenv').config({path: 'src/.env'}); +const fs = require('fs-extra'); +const path = require('path'); +const walk = require("object-walk"); +const exec = require("child_process").exec; +const yaml = require('js-yaml'); +const shell = require('shelljs'); +const colors = require('colors'); +const args = require("optimist").argv; + +const help = "Usage:\n" + + "Update all existing flavor locale po files for flavor the flavor set in the FLAVOR environment variable: node make-flavor-messages.js\n" + + "Add a new flavor locale: node make-flavor-messages.js --set-new-locale="; + +if (args.h || args.help) { + console.log(help); + process.exit(0); +} + +const flavor = process.env.FLAVOR; + +// Logging +const logError = (msg) => { + console.error("(MAKEMESSAGES) ", colors.red("(ERROR!) "), msg); +}; + +// Generate message catalog for the given flavor's config.yml file. +const flavorBasePath = path.resolve( + __dirname, + "src/flavors", + flavor +); +const messagesCatalogTempPath = path.resolve( + __dirname, + "src/flavors", + flavor, + "temp-messages" +); +const flavorConfigPath = path.resolve( + flavorBasePath, + "config.yml" +); +const config = yaml.safeLoad(fs.readFileSync(flavorConfigPath)); +shell.mkdir('-p', messagesCatalogTempPath); + +const configGettextRegex = /^_\(([\s\S]*?)\)$/g; +const escapeQuotes = (message) => { + return message + .split('"') + .join('\\"') + .split("'") + .join("\\'"); +}; + +const jsTemplatesRegexObj = new RegExp(/{{#_}}([\s\S]*?){{\/_}}/, "g"); +let templatePath, + foundMessages, + jsTemplatesMessagesOutput; +const extractTemplateMessages = (jsTemplate, outputPath) => { + foundMessages = []; + + // NOTE: we save these temp files as python files, so we can take + // advantage of Python's multiline string quoting capabilities. The JS + // equivalent (backticks) causes problems for xgettext. + jsTemplatesMessagesOutput = fs.createWriteStream( + path.resolve( + messagesCatalogTempPath, + jsTemplate + "-messages.temp.py" + ) + ); + templateString = fs.readFileSync( + path.resolve(outputPath, jsTemplate), + "utf8" + ); + while (foundMessage = jsTemplatesRegexObj.exec(templateString)) { + + // The second item in foundMessage represents the capture group + foundMessages.push(foundMessage[1]); + } + + foundMessages.forEach((message) => { + jsTemplatesMessagesOutput.write('_("""' + escapeQuotes(message) + '""");\n'); + }); + + jsTemplatesMessagesOutput.end(); +}; + +const cleanup = () => { + shell.rm('-rf', messagesCatalogTempPath); + fs.existsSync(potFilePath) && shell.rm(potFilePath); +}; + +const flavorLocalePath = path.resolve( + flavorBasePath, + "locale" +); +let flavorPOPath, + mergedFlavorPOPath; +const mergeExistingLocales = () => { + const locales = fs.readdirSync(flavorLocalePath) + .filter((locale) => { + + // filter out any hidden system files, like .DS_Store + return !locale.startsWith("\."); + }); + let numFinishedLocales = 0; + locales.forEach((locale) => { + flavorPOPath = path.resolve( + flavorLocalePath, + locale, + "LC_MESSAGES/messages.po" + ); + + exec( + "msgmerge" + + " --no-location" + + " --no-fuzzy-matching" + + " --update " + + flavorPOPath + " " + + potFilePath, + (e) => { + if (e) { + logError("Error merging po files for " + locale + ":" + e); + logError("Aborting"); + + process.exit(1); + } + numFinishedLocales++; + + // If we're all done, remove temporary files. + if (numFinishedLocales === locales.length) { + cleanup(); + } + } + ); + }); +}; + +const generateCatalog = (merge, outputPath) => { + exec( + "xgettext" + + " --from-code=UTF-8" + + " --no-location" + + " -o " + outputPath + " " + + messagesCatalogTempPath + "/*", + (err) => { + if (err) { + logError("Error generating po template file: " + err); + logError("Aborting"); + + process.exit(1); + } + + (merge) + ? mergeExistingLocales() + : cleanup(); + } + ); +} + +// Extract translatable messages for the config +let configMessagesOutput = fs.createWriteStream( + path.resolve( + messagesCatalogTempPath, + "config-messages.temp.py" + ) +); +let foundMessage; +walk(config, (val, prop, obj) => { + if (typeof val === "string") { + foundMessage = configGettextRegex.exec(val); + foundMessage && configMessagesOutput.write('_("""' + escapeQuotes(foundMessage[1]) + '""");\n'); + } +}); +configMessagesOutput.end(); + +// Extract translatable messages for flavor-defined jstemplates +const flavorJSTemplatesPath = path.resolve( + flavorBasePath, + "jstemplates" +); +fs.readdirSync(flavorJSTemplatesPath).forEach((jsTemplate) => { + if (jsTemplate.endsWith("html")) { + extractTemplateMessages(jsTemplate, flavorJSTemplatesPath); + } +}); + +// Extract translatable messages for flavor pages +const flavorPagesPath = path.resolve( + flavorBasePath, + "jstemplates/pages" +); +fs.readdirSync(flavorPagesPath).forEach((jsTemplate) => { + if (jsTemplate.endsWith("html")) { + extractTemplateMessages(jsTemplate, flavorPagesPath); + } +}); + +// Extract translatable messages for email templates +const emailTemplatesPath = path.resolve( + flavorBasePath, + "templates" +); +fs.readdirSync(emailTemplatesPath).forEach((emailTemplate) => { + if (emailTemplate.endsWith("txt")) { + extractTemplateMessages(emailTemplate, emailTemplatesPath); + } +}); + +const potFilePath = path.resolve( + flavorBasePath, + "messages.pot" +); +if (args["set-new-locale"]) { + + // Create a new locale + let locale = args["set-new-locale"], + localePath = path.resolve( + flavorLocalePath, + locale, + "LC_MESSAGES" + ); + shell.mkdir("-p", localePath); + generateCatalog(false, localePath + "/messages.po"); +} else { + + // Update existing locales + generateCatalog(true, potFilePath); +} \ No newline at end of file diff --git a/package.json b/package.json index 9d3fa68f86..f2936437fd 100644 --- a/package.json +++ b/package.json @@ -70,6 +70,7 @@ "mv": "^2.1.1", "node-gettext": "^2.0.0", "object-walk": "^0.1.1", + "optimist": "^0.6.1", "prettier": "^1.4.4", "sass-loader": "^6.0.6", "style-loader": "^0.18.2", diff --git a/src/base/jstemplates/templates.js b/src/base/jstemplates/templates.js deleted file mode 100644 index 2cc9dbbd04..0000000000 --- a/src/base/jstemplates/templates.js +++ /dev/null @@ -1,6 +0,0 @@ -!function(){var n=Handlebars.template,e=Handlebars.templates=Handlebars.templates||{};e.about=n({compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){return'

Greensboro Participatory Budgeting:

\n

Our Community, Our Decision!

\n
\n

Greensboro Participatory Budgeting is a democratic process in which community members from all five City Council districts are directly deciding how to spend $500,000 ($100,000 per district).

\n\n

From April to November 2017, volunteer budget delegates will work to develop these initial ideas into full project proposals. Greensboro residents will able to vote in October 2017 to determine the winning projects.\n

\n\n

For more information on participatory budgeting in Greensboro, visit greensboro-nc.gov/pb.

\n\n

For information on the nationwide movement for PB, visit the website of the Participatory Budgeting Project.

\n\n
\n
\n \n
'},useData:!0}),e["activity-list-item"]=n({1:function(n,e,a,l,t){var o;return n.escapeExpression(n.lambda(null!=(o=null!=e?e.place:e)?o["url-title"]:o,e))},3:function(n,e,a,l,t){var o,i=n.lambda,r=n.escapeExpression;return r(i(null!=(o=null!=e?e.place:e)?o.datasetSlug:o,e))+"/"+r(i(null!=(o=null!=e?e.place:e)?o.id:o,e))},5:function(n,e,a,l,t){var o;return"/response/"+n.escapeExpression(n.lambda(null!=(o=null!=e?e.target:e)?o.id:o,e))},7:function(n,e,a,l,t){var o;return' \n'},9:function(n,e,a,l,t){var o;return' \n'},11:function(n,e,a,l,t){var o;return" "+n.escapeExpression(n.lambda(null!=(o=null!=(o=null!=e?e.target:e)?o.submitter:o)?o.name:o,e))+"\n"},13:function(n,e,a,l,t){var o;return" "+n.escapeExpression(n.lambda(null!=(o=null!=e?e.target:e)?o.submitter_name:o,e))+"\n"},15:function(n,e,a,l,t){var o,i,r=null!=e?e:n.nullContext||{},s=n.escapeExpression;return" "+s((i=null!=(i=a.action||(null!=e?e.action:e))?i:a.helperMissing,"function"==typeof i?i.call(r,{name:"action",hash:{},data:t}):i))+': '+s(n.lambda(null!=(o=null!=e?e.place:e)?o.name:o,e))+"\n\x3c!-- \n"+(null!=(o=a.if.call(r,null!=(o=null!=e?e.place:e)?o.location_text:o,{name:"if",hash:{},fn:n.program(16,t,0),inverse:n.noop,data:t}))?o:"")+" --\x3e\n"},16:function(n,e,a,l,t){var o;return' at '+(null!=(o=n.invokePartial(l["location-string"],null!=(o=null!=e?e.place:e)?o.location_text:o,{name:"location-string",data:t,helpers:a,partials:l,decorators:n.decorators}))?o:"")+"\n"},18:function(n,e,a,l,t){var o,i,r=null!=e?e:n.nullContext||{};return" "+n.escapeExpression((i=null!=(i=a.action||(null!=e?e.action:e))?i:a.helperMissing,"function"==typeof i?i.call(r,{name:"action",hash:{},data:t}):i))+":\n"+(null!=(o=a.if.call(r,null!=(o=null!=e?e.place:e)?o.name:o,{name:"if",hash:{},fn:n.program(19,t,0),inverse:n.program(21,t,0),data:t}))?o:"")},19:function(n,e,a,l,t){var o;return' '+n.escapeExpression(n.lambda(null!=(o=null!=e?e.place:e)?o.name:o,e))+"\n"},21:function(n,e,a,l,t){var o,i=n.lambda;return" a"+(null!=(o=a.blockHelperMissing.call(e,i(null!=(o=null!=e?e.place:e)?o.type_starts_with_vowel:o,e),{name:"place.type_starts_with_vowel",hash:{},fn:n.program(22,t,0),inverse:n.noop,data:t}))?o:"")+" "+n.escapeExpression(i(null!=(o=null!=e?e.place:e)?o.place_type_label:o,e))+"\n"},22:function(n,e,a,l,t){return"n"},compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){var o,i,r=null!=e?e:n.nullContext||{},s=n.escapeExpression;return'
  • \n \n\n'+(null!=(o=a.if.call(r,null!=(o=null!=(o=null!=e?e.target:e)?o.submitter:o)?o.avatar_url:o,{name:"if",hash:{},fn:n.program(7,t,0),inverse:n.program(9,t,0),data:t}))?o:"")+"\n"+(null!=(o=a.if.call(r,null!=(o=null!=(o=null!=e?e.target:e)?o.submitter:o)?o.name:o,{name:"if",hash:{},fn:n.program(11,t,0),inverse:n.program(13,t,0),data:t}))?o:"")+"\n \n\n"+(null!=(o=a.if.call(r,null!=e?e.is_place:e,{name:"if",hash:{},fn:n.program(15,t,0),inverse:n.program(18,t,0),data:t}))?o:"")+" \n
  • \n"},usePartial:!0,useData:!0}),e["activity-list"]=n({1:function(n,e,a,l,t){var o;return null!=(o=n.invokePartial(l["activity-list-item"],e,{name:"activity-list-item",data:t,indent:" ",helpers:a,partials:l,decorators:n.decorators}))?o:""},compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){var o,i,r,s="";return i=null!=(i=a.activities||(null!=e?e.activities:e))?i:a.helperMissing,r={name:"activities",hash:{},fn:n.program(1,t,0),inverse:n.noop,data:t},o="function"==typeof i?i.call(null!=e?e:n.nullContext||{},r):i,a.activities||(o=a.blockHelperMissing.call(e,o,r)),null!=o&&(s+=o),s},usePartial:!0,useData:!0}),e["add-places"]=n({1:function(n,e,a,l,t){var o,i=null!=e?e:n.nullContext||{};return'\t
    \n'+(null!=(o=a.if.call(i,null!=e?e.add_button_label:e,{name:"if",hash:{},fn:n.program(2,t,0),inverse:n.noop,data:t}))?o:"")+(null!=(o=a.if.call(i,null!=e?e.story_button_label:e,{name:"if",hash:{},fn:n.program(4,t,0),inverse:n.noop,data:t}))?o:"")+"\t
    \n"},2:function(n,e,a,l,t){var o;return'\t\t \n\t\t '+n.escapeExpression((o=null!=(o=a.add_button_label||(null!=e?e.add_button_label:e))?o:a.helperMissing,"function"==typeof o?o.call(null!=e?e:n.nullContext||{},{name:"add_button_label",hash:{},data:t}):o))+"\n\t\t \n"},4:function(n,e,a,l,t){var o;return'\t\t \n\t\t '+n.escapeExpression((o=null!=(o=a.story_button_label||(null!=e?e.story_button_label:e))?o:a.helperMissing,"function"==typeof o?o.call(null!=e?e:n.nullContext||{},{name:"story_button_label",hash:{},data:t}):o))+"\n\t\t \n"},compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){var o,i,r;return i=null!=(i=a.adding_supported||(null!=e?e.adding_supported:e))?i:a.helperMissing,r={name:"adding_supported",hash:{},fn:n.program(1,t,0),inverse:n.noop,data:t},o="function"==typeof i?i.call(null!=e?e:n.nullContext||{},r):i,a.adding_supported||(o=a.blockHelperMissing.call(e,o,r)),null!=o?o:""},useData:!0}),e["auth-nav"]=n({1:function(n,e,a,l,t){var o,i=null!=e?e:n.nullContext||{},r=n.escapeExpression;return'\n'},3:function(n,e,a,l,t){var o,i=null!=e?e:n.nullContext||{},r=a.helperMissing,s=n.escapeExpression;return'\n'},compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){var o;return null!=(o=a.is_authenticated.call(null!=e?e:n.nullContext||{},{name:"is_authenticated",hash:{},fn:n.program(1,t,0),inverse:n.program(3,t,0),data:t}))?o:""},useData:!0}),e.background=n({compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){return'

    Background

    \n\n

    The Duwamish River is Seattle\'s only river, and is one of the most polluted waterways in the US. After 100 years of urban industrialization, it contains more than 40 toxic chemicals above safe limits for humans and the environment, including PCBs, dioxins, carcinogenic PAHs, and arsenic. Studies show that the low income communities living along the river have higher rates of heart disease, asthma, and other illnesses than other Seattle areas. It is also home to salmon, osprey, sea lions, and other creatures who face unsafe levels of contamination.

    \n\n

    The history here is rich. The Duwamish Tribe lived along the shores of this river for over 10,000 years, since the last ice age, until they were removed by incoming settlers who came about a century and a half ago.

    \n\n

    In 2001, the US Environmental Protection Agency declared the lower 5 miles of the Duwamish to be a superfund site, which mandates a cleanup paid by those responsible for the pollution. After more than a decade of public deliberation, the EPA came to a final decision in December 2014, and ordered a $342 million cleanup to take place over the next 17 years.

    \n\n

    The responsible parties named so far are Boeing, King County, the City of Seattle, and the Port of Seattle, with several more expected to be named over the coming years.

    \n\n

    We hope that \'Hey Duwamish\' can be used as a community monitoring system to help ensure that the $342 million is well spent. We want to restore the health of our watershed to its maximum potential and highlight the progress being made through initiatives such as the Duwamish Opportunity Fund.

    \n\n

    Take me to the map!

    \n'},useData:!0}),e.build=n({compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){return'

    How to Build a Rain Garden

    \n

    diagram

    \n

    If you’re interested in how to build a rain garden, a step-by-step process can be easily learned by attending a rain garden workshop, studying the Washington State University Rain Garden Handbook for Homeowners (18MB PDF download) and viewing the “How to build a rain garden WSU” online video (below). You will learn rain garden design and construction basics like:

    \n\n

    You don’t have to be a gardener or an engineer to build a rain garden, but it is important to consider your site carefully before you get started.

    \n

    '},useData:!0}),e.centerpoint=n({compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){return''},useData:!0}),e["colorpicker-container"]=n({compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){return"\x3c!-- Template for the Spectrum colorpicker container --\x3e\n\n
    "},useData:!0}),e["colorpicker-controls"]=n({compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){return"\x3c!-- A template for adding additional controls to the Spectrum colorpicker --\x3e\n\n\n"},useData:!0}),e.contribute=n({compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){return'

    Get involved

    \n\n

    Want to help out? Awesome!

    \n\n

    The best way to get involved is to submit a report on the map, or comment on someone else\'s report.

    \n\n

    We could also use help writing code, designing a better interface, and promoting the project. Contribute to our repository on GitHub!

    \n\n

    If you want to see a project like this in your community, let us know!

    \n\nSend us a message and we\'ll be in touch ;)\n'},useData:!0}),e["count-meter"]=n({compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){var o,i,r=null!=e?e:n.nullContext||{},s=a.helperMissing,u=n.escapeExpression,c=n.lambda;return'
    \n
    \n '+u((i=null!=(i=a.value_pretty||(null!=e?e.value_pretty:e))?i:s,"function"==typeof i?i.call(r,{name:"value_pretty",hash:{},data:t}):i))+" / "+u((i=null!=(i=a.counter_max_pretty||(null!=e?e.counter_max_pretty:e))?i:s,"function"==typeof i?i.call(r,{name:"counter_max_pretty",hash:{},data:t}):i))+':\n
    \n
    \n \n
    \n
    \n'},useData:!0}),e.features=n({compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){return"

    Features

    \n\n

    For users,

    \n\n\n\n

    For designers and developers,

    \n\n\n\n

    For project managers during a project,

    \n\n\n"},useData:!0}),e["filter-menu"]=n({1:function(n,e,a,l,t){var o=n.lambda,i=n.escapeExpression;return'\t\n'},compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){var o;return'\x3c!-- A template for displaying a menu of location_type filter options --\x3e\n\n
    \n\t\n\tReset filters\n
    \n\n
    \n\n'+(null!=(o=a.each.call(null!=e?e:n.nullContext||{},null!=e?e.activeFilters:e,{name:"each",hash:{},fn:n.program(1,t,0),inverse:n.noop,data:t}))?o:"")},useData:!0}),e["geocode-address"]=n({compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){var o;return'\n
    \n \n \n \n
    \n'},useData:!0}),e["geometry-style-panel"]=n({compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){return'\n'},useData:!0}),e.getinvolved=n({compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){return'

    積極參與此活動

    \n\n

    已經提交了看法嗎?有很多方式可以參與預算編制活動:

    \n\n

    志願者

    \n\n

    有很多方式可以參與奧克蘭的PB活動!您可以幫助把資訊傳遞給地區居民,促進小組會議舉行,為PB活動提供支援等。登記這裡

    \n\n

    聯絡我們

    \n\n

    有問題?請隨時聯絡我們。

    \n\n\n\n\n

    屋崙參與式預算制定究竟如何運作?

    \n

    \n參與式預算制定(PB) 是一項富於革新精神的民主進程,它授權屋崙市議會第一和第二選區的居民就聯邦社區發展綜合補助金(CDBG)應如何使用訂立優先順序,用以改善他們區内低至中等收入的社區。 第二區2017-19年的社區發展綜合補助金( CDBG)每年撥款$278,685 ,為期兩年,亦即總金額$557,370。那些獲選票最多的項目,算至撥款金額完盡為止,將成為本區社區發展綜合補助金的優先項目。屋崙市政府將發佈一項「提交建議書邀請」(RFP),然後,市及非牟利機構可以申請撥款來貫徹那些優先項目。社區發展區委員會的委員將審查所有回應「提交建議書邀請」的申請書,並向市府建議哪些申請應獲撥款。\n

    \n'},useData:!0}),e.instructions=n({compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){return"

    Detailed instructions

    "},useData:!0}),e.involved=n({compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){ -return'

    Get More Involved

    \n\n

    Already submitted an idea? There are many more ways to get involved in participatory budgeting:

    \n\n
    Attend a Neighborhood Assembly
    \n

    Each district will have a neighborhood assembly and other, informal idea collection events, to encourage widespread participation. Click here for upcoming assembly dates, times, and locations.

    \n\n
    Connect with Us
    \n

    Find us on Facebook and follow us on Twitter!

    \n\n
    Contact Us
    \n

    Have a question?
    \nPlease contact Valerie Warren, Community Outreach Coordinator for Participatory Budgeting Greensboro, by email at valerie@participatorybudgeting.org or phone at 336‑373‑7750.\n

    '},useData:!0}),e["layer-info-window"]=n({compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){var o,i,r=null!=e?e:n.nullContext||{},s=a.helperMissing;return'\x3c!-- A template for rendering popup layer info windows --\x3e\n
    \n
    \n\t
    \n\t\t
    \n\t\t
    '+n.escapeExpression((i=null!=(i=a.title||(null!=e?e.title:e))?i:s,"function"==typeof i?i.call(r,{name:"title",hash:{},data:t}):i))+'
    \n\t\t
    \n\t
    \n\t
    \n\t\t
    '+(null!=(i=null!=(i=a.body||(null!=e?e.body:e))?i:s,o="function"==typeof i?i.call(r,{name:"body",hash:{},data:t}):i)?o:"")+"
    \n\t
    \n
    \n"},useData:!0}),e.legend=n({1:function(n,e,a,l,t){var o,i,r,s=null!=e?e:n.nullContext||{},u=a.helperMissing,c="function",p=n.escapeExpression,m='
  • \n \n '+p((i=null!=(i=a.title||(null!=e?e.title:e))?i:u,typeof i===c?i.call(s,{name:"title",hash:{},data:t}):i))+'\n
      \n';return i=null!=(i=a.items||(null!=e?e.items:e))?i:u,r={name:"items",hash:{},fn:n.program(2,t,0),inverse:n.noop,data:t},o=typeof i===c?i.call(s,r):i,a.items||(o=a.blockHelperMissing.call(e,o,r)),null!=o&&(m+=o),m+"
    \n\n
  • \n"},2:function(n,e,a,l,t){var o,i=null!=e?e:n.nullContext||{},r=a.helperMissing,s=n.escapeExpression;return'
  • \n '+s((o=null!=(o=a.title||(null!=e?e.title:e))?o:r,"function"==typeof o?o.call(i,{name:"title",hash:{},data:t}):o))+"\n
  • \n"},compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){var o,i,r,s='\x3c!-- SHAREABOUTS LAYERS --\x3e\n\n"},useData:!0}),e["location-string"]=n({1:function(n,e,a,l,t){var o,i=null!=e?e:n.nullContext||{};return(null!=(o=a.is.call(i,null!=e?e.geocodeQuality:e,"POINT",{name:"is",hash:{},fn:n.program(2,t,0),inverse:n.noop,data:t}))?o:"")+"\n"+(null!=(o=a.is.call(i,null!=e?e.geocodeQuality:e,"ADDRESS",{name:"is",hash:{},fn:n.program(2,t,0),inverse:n.noop,data:t}))?o:"")+"\n"+(null!=(o=a.is.call(i,null!=e?e.geocodeQuality:e,"ZIP",{name:"is",hash:{},fn:n.program(4,t,0),inverse:n.noop,data:t}))?o:"")+"\n"+(null!=(o=a.is.call(i,null!=e?e.geocodeQuality:e,"CITY",{name:"is",hash:{},fn:n.program(6,t,0),inverse:n.noop,data:t}))?o:"")+"\n"+(null!=(o=a.is.call(i,null!=e?e.geocodeQuality:e,"STREET",{name:"is",hash:{},fn:n.program(2,t,0),inverse:n.noop,data:t}))?o:"")},2:function(n,e,a,l,t){var o,i=null!=e?e:n.nullContext||{},r=a.helperMissing,s=n.escapeExpression;return" "+s((o=null!=(o=a.street||(null!=e?e.street:e))?o:r,"function"==typeof o?o.call(i,{name:"street",hash:{},data:t}):o))+", "+s((o=null!=(o=a.adminArea5||(null!=e?e.adminArea5:e))?o:r,"function"==typeof o?o.call(i,{name:"adminArea5",hash:{},data:t}):o))+" "+s((o=null!=(o=a.adminArea3||(null!=e?e.adminArea3:e))?o:r,"function"==typeof o?o.call(i,{name:"adminArea3",hash:{},data:t}):o))+"\n"},4:function(n,e,a,l,t){var o,i=null!=e?e:n.nullContext||{},r=a.helperMissing,s=n.escapeExpression;return" "+s((o=null!=(o=a.adminArea5||(null!=e?e.adminArea5:e))?o:r,"function"==typeof o?o.call(i,{name:"adminArea5",hash:{},data:t}):o))+", "+s((o=null!=(o=a.adminArea3||(null!=e?e.adminArea3:e))?o:r,"function"==typeof o?o.call(i,{name:"adminArea3",hash:{},data:t}):o))+" "+s((o=null!=(o=a.postalCode||(null!=e?e.postalCode:e))?o:r,"function"==typeof o?o.call(i,{name:"postalCode",hash:{},data:t}):o))+"\n"},6:function(n,e,a,l,t){var o,i=null!=e?e:n.nullContext||{},r=a.helperMissing,s=n.escapeExpression;return" "+s((o=null!=(o=a.adminArea5||(null!=e?e.adminArea5:e))?o:r,"function"==typeof o?o.call(i,{name:"adminArea5",hash:{},data:t}):o))+", "+s((o=null!=(o=a.adminArea3||(null!=e?e.adminArea3:e))?o:r,"function"==typeof o?o.call(i,{name:"adminArea3",hash:{},data:t}):o))+"\n"},compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){var o;return null!=(o=a.if.call(null!=e?e:n.nullContext||{},e,{name:"if",hash:{},fn:n.program(1,t,0),inverse:n.noop,data:t}))?o:""},useData:!0}),e.overview=n({compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){return'

    Welcome

    \n\n\x3c!--

    We are here to educate and inspire the environmental stewardship of Longfellow Creek in West Seattle, starting with Roxhill Bog, all the way down to Elliot Bay!

    \n\n\n

    Start Mapping!

    \n
    \n
    \n
    \nThis project made possible by our generous sponsors. --\x3e\n\n

    We are here to educate and inspire action for our Central Puget Sound watersheds

    \n\x3c!-- \n
    \n\t\n\t
    \n\t

    Lake Sammamish Watershed

    \n\t
    \n\t

    \n\t
    \n\t
    \n
    \n
    \n\t\n
    \n

    Cedar River / Lake Washington Watershed

    \n
    \n

    \n
    \n
    \n
    \n
    \n\ttools\n
    \n

    Green / Duwamish Watershed

    \n
    \n

    \n
    \n
    \n
    \n
    \n tools\n
    \n

    Puyallup / White Watershed

    \n
    \n

    \n
    \n
    \n
    \n

    \n --\x3e\n\n
    \n \n \n
    \n

    Cedar River / Lake Washington Watershed

    \n
    \n
    \n
    \n\n
    \n \n \n
    \n

    Green / Duwamish Watershed

    \n
    \n
    \n
    \n\n
    \n \n \n
    \n

    Lake Sammamish Watershed

    \n
    \n
    \n
    \n\n
    \n\n
    \n \n \n
    \n

    Puyallup / White Watershed

    \n
    \n
    \n
    \n\n
    \n\nThis project made possible by our generous sponsors.'},useData:!0}),e["page-nav-item"]=n({1:function(n,e,a,l,t){var o;return" internal-menu-item menu-item-"+n.escapeExpression((o=null!=(o=a.slug||(null!=e?e.slug:e))?o:a.helperMissing,"function"==typeof o?o.call(null!=e?e:n.nullContext||{},{name:"slug",hash:{},data:t}):o))},3:function(n,e,a,l,t){var o,i=null!=e?e:n.nullContext||{},r=a.helperMissing,s=n.escapeExpression;return' '+s((o=null!=(o=a.title||(null!=e?e.title:e))?o:r,"function"==typeof o?o.call(i,{name:"title",hash:{},data:t}):o))+"\n"},5:function(n,e,a,l,t){var o,i,r,s=null!=e?e:n.nullContext||{},u=a.helperMissing,c=a.blockHelperMissing,p="";return i=null!=(i=a.slug||(null!=e?e.slug:e))?i:u,r={name:"slug",hash:{},fn:n.program(6,t,0),inverse:n.noop,data:t},o="function"==typeof i?i.call(s,r):i,a.slug||(o=c.call(e,o,r)),null!=o&&(p+=o),i=null!=(i=a.slug||(null!=e?e.slug:e))?i:u,r={name:"slug",hash:{},fn:n.noop,inverse:n.program(8,t,0),data:t},o="function"==typeof i?i.call(s,r):i,a.slug||(o=c.call(e,o,r)),null!=o&&(p+=o),p},6:function(n,e,a,l,t){var o,i=null!=e?e:n.nullContext||{},r=a.helperMissing,s=n.escapeExpression;return' '+s((o=null!=(o=a.title||(null!=e?e.title:e))?o:r,"function"==typeof o?o.call(i,{name:"title",hash:{},data:t}):o))+"\n"},8:function(n,e,a,l,t){var o;return" "+n.escapeExpression((o=null!=(o=a.title||(null!=e?e.title:e))?o:a.helperMissing,"function"==typeof o?o.call(null!=e?e:n.nullContext||{},{name:"title",hash:{},data:t}):o))+"\n"},10:function(n,e,a,l,t){var o;return null!=(o=n.invokePartial(l["page-nav-item"],e,{name:"page-nav-item",data:t,indent:" ",helpers:a,partials:l,decorators:n.decorators}))?o:""},compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){var o,i,r,s=null!=e?e:n.nullContext||{},u=a.helperMissing,c=a.blockHelperMissing,p='\n"},usePartial:!0,useData:!0}),e["pages-nav-item"]=n({1:function(n,e,a,l,t){var o,i,r=null!=e?e:n.nullContext||{};return(null!=(o=a.unless.call(r,null!=e?e.pages:e,{name:"unless",hash:{},fn:n.program(2,t,0),inverse:n.noop,data:t}))?o:"")+" menu-item-"+n.escapeExpression((i=null!=(i=a.slug||(null!=e?e.slug:e))?i:a.helperMissing,"function"==typeof i?i.call(r,{name:"slug",hash:{},data:t}):i))},2:function(n,e,a,l,t){return" internal-menu-item"},4:function(n,e,a,l,t){var o,i,r,s=null!=e?e:n.nullContext||{},u=a.helperMissing,c='\n '+n.escapeExpression((i=null!=(i=a.title||(null!=e?e.title:e))?i:u,"function"==typeof i?i.call(s,{name:"title",hash:{},data:t}):i))+"\n \n\n"},5:function(n,e,a,l,t){var o;return null!=(o=n.invokePartial(l["pages-nav-item"],e,{name:"pages-nav-item",data:t,indent:" ",helpers:a,partials:l,decorators:n.decorators}))?o:""},7:function(n,e,a,l,t){var o;return"\n"+(null!=(o=a.if.call(null!=e?e:n.nullContext||{},null!=e?e.external:e,{name:"if",hash:{},fn:n.program(8,t,0),inverse:n.program(10,t,0),data:t}))?o:"")+"\n"},8:function(n,e,a,l,t){var o,i=null!=e?e:n.nullContext||{},r=a.helperMissing,s=n.escapeExpression;return' '+s((o=null!=(o=a.title||(null!=e?e.title:e))?o:r,"function"==typeof o?o.call(i,{name:"title",hash:{},data:t}):o))+"\n"},10:function(n,e,a,l,t){var o;return null!=(o=a.if.call(null!=e?e:n.nullContext||{},null!=e?e.slug:e,{name:"if",hash:{},fn:n.program(11,t,0),inverse:n.program(13,t,0),data:t}))?o:""},11:function(n,e,a,l,t){var o,i=null!=e?e:n.nullContext||{},r=a.helperMissing,s=n.escapeExpression;return' '+s((o=null!=(o=a.title||(null!=e?e.title:e))?o:r,"function"==typeof o?o.call(i,{name:"title",hash:{},data:t}):o))+"\n"},13:function(n,e,a,l,t){var o,i=null!=e?e:n.nullContext||{},r=a.helperMissing,s=n.escapeExpression;return' '+s((o=null!=(o=a.title||(null!=e?e.title:e))?o:r,"function"==typeof o?o.call(i,{name:"title",hash:{},data:t}):o))+"\n"},compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){var o,i=null!=e?e:n.nullContext||{};return'\n"},usePartial:!0,useData:!0}),e["pages-nav"]=n({1:function(n,e,a,l,t){return'\n'},3:function(n,e,a,l,t){var o;return"\n"+(null!=(o=n.invokePartial(l["pages-nav-item"],e,{name:"pages-nav-item",data:t,indent:" ",helpers:a,partials:l,decorators:n.decorators}))?o:"")+"\n"},5:function(n,e,a,l,t){var o;return"\n"+(null!=(o=n.invokePartial(l["pages-nav-item"],e,{name:"pages-nav-item",data:t,indent:" ",helpers:a,partials:l,decorators:n.decorators}))?o:"")+"\n"},compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){var o,i,r,s=null!=e?e:n.nullContext||{},u=a.helperMissing,c="function",p=a.blockHelperMissing,m=n.escapeExpression,h="";return i=null!=(i=a.has_pages||(null!=e?e.has_pages:e))?i:u,r={name:"has_pages",hash:{},fn:n.program(1,t,0),inverse:n.noop,data:t},o=typeof i===c?i.call(s,r):i,a.has_pages||(o=p.call(e,o,r)),null!=o&&(h+=o),h+='\n\x3c!-- Begin flavor-specific code --\x3e\n\x3c!-- --\x3e\n\x3c!-- End flavor-specific code --\x3e\n\n\n\n\n\n\x3c!-- Begin flavor-specific code --\x3e\n
    \n \n
    \n\x3c!-- End flavor-specific code --\x3e"},usePartial:!0,useData:!0}),e["place-detail-edit-bar"]=n({1:function(n,e,a,l,t){var o;return'
    \n
    \n Edit this post\n
    \n\n'+(null!=(o=a.if.call(null!=e?e:n.nullContext||{},null!=e?e.isEditingToggled:e,{name:"if",hash:{},fn:n.program(2,t,0),inverse:n.noop,data:t}))?o:"")+"
    \n"},2:function(n,e,a,l,t){var o;return'
    \n Remove\n
    \n
    \n Save\n
    \n'},3:function(n,e,a,l,t){return" isModified"},compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){var o;return"\x3c!-- Template for the row of editor buttons visible at the top of place\n detail views. --\x3e\n\n"+(null!=(o=a.if.call(null!=e?e:n.nullContext||{},null!=e?e.isEditable:e,{name:"if",hash:{},fn:n.program(1,t,0),inverse:n.noop,data:t}))?o:"")},useData:!0}),e["place-detail-field-types"]=n({1:function(n,e,a,l,t,o,i){var r=n.escapeExpression;return'

    '+r(a.nlToBr.call(null!=e?e:n.nullContext||{},null!=e?e.content:e,{name:"nlToBr",hash:{},data:t}))+"

    \n"},3:function(n,e,a,l,t,o,i){var r;return'

    '+(null!=(r=a.nlToBr.call(null!=e?e:n.nullContext||{},null!=e?e.content:e,{name:"nlToBr",hash:{},data:t}))?r:"")+"

    \n"},5:function(n,e,a,l,t,o,i){var r,s;return' '+(null!=(s=null!=(s=a.content||(null!=e?e.content:e))?s:a.helperMissing,r="function"==typeof s?s.call(null!=e?e:n.nullContext||{},{name:"content",hash:{},data:t}):s)?r:"")+"\n"},7:function(n,e,a,l,t){var o;return" \n"},8:function(n,e,a,l,t){var o;return null!=(o=a.if.call(null!=e?e:n.nullContext||{},null!=e?e.selected:e,{name:"if",hash:{},fn:n.program(9,t,0),inverse:n.noop,data:t}))?o:""},9:function(n,e,a,l,t){var o;return'
  • '+n.escapeExpression((o=null!=(o=a.label||(null!=e?e.label:e))?o:a.helperMissing,"function"==typeof o?o.call(null!=e?e:n.nullContext||{},{name:"label",hash:{},data:t}):o))+"
  • \n"},11:function(n,e,a,l,t){var o;return"

    \n"+(null!=(o=a.if.call(null!=e?e:n.nullContext||{},null!=(o=null!=e?e.content:e)?o.selected:o,{name:"if",hash:{},fn:n.program(12,t,0),inverse:n.program(14,t,0),data:t}))?o:"")+"

    \n"},12:function(n,e,a,l,t){var o;return" "+n.escapeExpression(n.lambda(null!=(o=null!=e?e.content:e)?o.selectedLabel:o,e))+"\n"},14:function(n,e,a,l,t){var o;return" "+n.escapeExpression(n.lambda(null!=(o=null!=e?e.content:e)?o.unselectedLabel:o,e))+"\n"},16:function(n,e,a,l,t){var o;return null!=(o=a.each.call(null!=e?e:n.nullContext||{},null!=e?e.content:e,{name:"each",hash:{},fn:n.program(17,t,0),inverse:n.noop,data:t}))?o:""},17:function(n,e,a,l,t){var o;return"

    \n"+(null!=(o=a.if.call(null!=e?e:n.nullContext||{},null!=e?e.selected:e,{name:"if",hash:{},fn:n.program(18,t,0),inverse:n.noop,data:t}))?o:"")+"

    \n"},18:function(n,e,a,l,t){return" "+n.escapeExpression(a.nlToBr.call(null!=e?e:n.nullContext||{},null!=e?e.label:e,{name:"nlToBr",hash:{},data:t}))+"\n"},compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t,o,i){var r,s=null!=e?e:n.nullContext||{};return"\x3c!-- Template for all fields displayed by the place detail view. --\x3e\n\n"+(null!=(r=a.is.call(s,null!=e?e.type:e,"datetime",{name:"is",hash:{},fn:n.program(1,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"\n"+(null!=(r=a.is.call(s,null!=e?e.type:e,"text",{name:"is",hash:{},fn:n.program(1,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"\n"+(null!=(r=a.is.call(s,null!=e?e.type:e,"textarea",{name:"is",hash:{},fn:n.program(3,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"\n"+(null!=(r=a.is.call(s,null!=e?e.type:e,"richTextarea",{name:"is",hash:{},fn:n.program(5,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"\n"+(null!=(r=a.is.call(s,null!=e?e.type:e,"radio_big_buttons",{name:"is",hash:{},fn:n.program(7,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"\n"+(null!=(r=a.is.call(s,null!=e?e.type:e,"checkbox_big_buttons",{name:"is",hash:{},fn:n.program(7,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"\n"+(null!=(r=a.is.call(s,null!=e?e.type:e,"binary_toggle",{name:"is",hash:{},fn:n.program(11,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"\n"+(null!=(r=a.is.call(s,null!=e?e.type:e,"dropdown",{name:"is",hash:{},fn:n.program(16,t,0,o,i),inverse:n.noop,data:t}))?r:"")+'\n
    '},useData:!0,useDepths:!0}),e["place-detail-promotion-bar"]=n({1:function(n,e,a,l,t){return" single-line"},3:function(n,e,a,l,t){return"single-line"},compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){var o,i=null!=e?e:n.nullContext||{};return'
    \n
    \n \n
    '},useData:!0}),e["place-detail-story-bar-tagline"]=n({1:function(n,e,a,l,t){var o,i=null!=e?e:n.nullContext||{};return'\t
    \n\t\t\n\t\t\n\t\t\n\t
    \n'},2:function(n,e,a,l,t){return"story-nav-disabled"},compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){var o;return null!=(o=a.if.call(null!=e?e:n.nullContext||{},null!=e?e.story:e,{name:"if",hash:{},fn:n.program(1,t,0),inverse:n.noop,data:t}))?o:""},useData:!0}),e["place-detail-story-bar"]=n({1:function(n,e,a,l,t){var o,i=null!=e?e:n.nullContext||{};return'\t
    \n\t\t\n\t\t\n\t\t\n\t
    \n'},2:function(n,e,a,l,t){return"story-nav-disabled"},4:function(n,e,a,l,t){var o;return"\t\t\t\t\t"+n.escapeExpression((o=null!=(o=a.fullTitle||(null!=e?e.fullTitle:e))?o:a.helperMissing,"function"==typeof o?o.call(null!=e?e:n.nullContext||{},{name:"fullTitle",hash:{},data:t}):o))+"\n"},6:function(n,e,a,l,t){var o;return null!=(o=a.if.call(null!=e?e:n.nullContext||{},null!=e?e.title:e,{name:"if",hash:{},fn:n.program(7,t,0),inverse:n.program(9,t,0),data:t}))?o:""},7:function(n,e,a,l,t){var o;return"\t\t\t\t\t\t"+n.escapeExpression((o=null!=(o=a.title||(null!=e?e.title:e))?o:a.helperMissing,"function"==typeof o?o.call(null!=e?e:n.nullContext||{},{name:"title",hash:{},data:t}):o))+"\n"},9:function(n,e,a,l,t){var o;return"\t\t\t\t\t\t"+n.escapeExpression((o=null!=(o=a.name||(null!=e?e.name:e))?o:a.helperMissing,"function"==typeof o?o.call(null!=e?e:n.nullContext||{},{name:"name",hash:{},data:t}):o))+"\n"},compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){var o;return null!=(o=a.if.call(null!=e?e:n.nullContext||{},null!=e?e.story:e,{name:"if",hash:{},fn:n.program(1,t,0),inverse:n.noop,data:t}))?o:""},useData:!0}),e["place-detail-support"]=n({1:function(n,e,a,l,t){return' checked="checked"'},3:function(n,e,a,l,t){var o;return n.escapeExpression((o=null!=(o=a.count||(null!=e?e.count:e))?o:a.helperMissing,"function"==typeof o?o.call(null!=e?e:n.nullContext||{},{name:"count",hash:{},data:t}):o))},5:function(n,e,a,l,t){return"0"},compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){var o,i,r,s=null!=e?e:n.nullContext||{},u=a.helperMissing,c='
    \n \n \n \n \n
    \n"},useData:!0}),e["place-detail-survey"]=n({1:function(n,e,a,l,t,o,i){var r,s,u,c=null!=e?e:n.nullContext||{},p=a.helperMissing,m=a.blockHelperMissing,h='

    \n '+n.escapeExpression(n.lambda(null!=(r=null!=e?e.responses:e)?r.length:r,e))+"\n ";return s=null!=(s=a.has_single_response||(null!=e?e.has_single_response:e))?s:p,u={name:"has_single_response",hash:{},fn:n.program(2,t,0,o,i),inverse:n.noop,data:t},r="function"==typeof s?s.call(c,u):s,a.has_single_response||(r=m.call(e,r,u)),null!=r&&(h+=r),h+="\n ",s=null!=(s=a.has_single_response||(null!=e?e.has_single_response:e))?s:p,u={name:"has_single_response",hash:{},fn:n.noop,inverse:n.program(4,t,0,o,i),data:t},r="function"==typeof s?s.call(c,u):s,a.has_single_response||(r=m.call(e,r,u)),null!=r&&(h+=r),h+="\n

    \n\n"+(null!=(r=a.if.call(c,null!=(r=null!=e?e.survey_config:e)?r.single_submission:r,{name:"if",hash:{},fn:n.program(6,t,0,o,i),inverse:n.program(9,t,0,o,i),data:t}))?r:"")+'\n
      \n',s=null!=(s=a.responses||(null!=e?e.responses:e))?s:p,u={name:"responses",hash:{},fn:n.program(11,t,0,o,i),inverse:n.noop,data:t},r="function"==typeof s?s.call(c,u):s,a.responses||(r=m.call(e,r,u)),null!=r&&(h+=r),h+"
    \n"},2:function(n,e,a,l,t){var o;return n.escapeExpression(n.lambda(null!=(o=null!=e?e.survey_config:e)?o.response_name:o,e))},4:function(n,e,a,l,t){var o;return n.escapeExpression(n.lambda(null!=(o=null!=e?e.survey_config:e)?o.response_plural_name:o,e))},6:function(n,e,a,l,t){var o;return null!=(o=a.if.call(null!=e?e:n.nullContext||{},null!=e?e.user_submitted:e,{name:"if",hash:{},fn:n.noop,inverse:n.program(7,t,0),data:t}))?o:""},7:function(n,e,a,l,t){var o;return' '+n.escapeExpression(n.lambda(null!=(o=null!=e?e.survey_config:e)?o.form_link_text:o,e))+"\n"},9:function(n,e,a,l,t){var o;return' '+n.escapeExpression(n.lambda(null!=(o=null!=e?e.survey_config:e)?o.form_link_text:o,e))+"\n"},11:function(n,e,a,l,t,o,i){var r,s,u,c=null!=e?e:n.nullContext||{},p=a.helperMissing,m=n.escapeExpression,h='
  • \n
    \n
    \n \n'+(null!=(r=a.if.call(c,null!=e?e.submitter:e,{name:"if",hash:{},fn:n.program(12,t,0,o,i),inverse:n.program(14,t,0,o,i),data:t}))?r:"")+' \n \n around '+m((s=null!=(s=a.pretty_created_datetime||(null!=e?e.pretty_created_datetime:e))?s:p,"function"==typeof s?s.call(c,{name:"pretty_created_datetime",hash:{},data:t}):s))+'\n \n \n
    \n\n
    \n';return s=null!=(s=a.items||(null!=e?e.items:e))?s:p,u={name:"items",hash:{},fn:n.program(16,t,0,o,i),inverse:n.noop,data:t},r="function"==typeof s?s.call(c,u):s,a.items||(r=a.blockHelperMissing.call(e,r,u)),null!=r&&(h+=r),h+"
    \n
    \n
  • \n"},12:function(n,e,a,l,t){var o,i=n.lambda,r=n.escapeExpression;return' '+r(i(null!=(o=null!=e?e.submitter:e)?o.name:o,e))+"\n"},14:function(n,e,a,l,t){var o,i=null!=e?e:n.nullContext||{},r=a.helperMissing,s=n.escapeExpression -;return" \x3c!-- TODO: FIXME: don't hardcode image URL --\x3e\n '+s((o=null!=(o=a.submitter_name||(null!=e?e.submitter_name:e))?o:r,"function"==typeof o?o.call(i,{name:"submitter_name",hash:{},data:t}):o))+"\n"},16:function(n,e,a,l,t,o,i){var r,s,u=null!=e?e:n.nullContext||{},c=a.helperMissing,p=n.escapeExpression;return'
    \n '+p((s=null!=(s=a.label||(null!=e?e.label:e))?s:c,"function"==typeof s?s.call(u,{name:"label",hash:{},data:t}):s))+"\n"+(null!=(r=a.if.call(u,null!=i[2]?i[2].isEditingToggled:i[2],{name:"if",hash:{},fn:n.program(17,t,0,o,i),inverse:n.program(19,t,0,o,i),data:t}))?r:"")+"\n"+(null!=(r=a.if.call(u,null!=i[2]?i[2].isEditingToggled:i[2],{name:"if",hash:{},fn:n.program(21,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"
    \n"},17:function(n,e,a,l,t){var o,i=null!=e?e:n.nullContext||{},r=a.helperMissing,s=n.escapeExpression;return'
    \n \n"},19:function(n,e,a,l,t){var o,i,r,s=null!=e?e:n.nullContext||{},u=a.helperMissing,c="function",p=n.escapeExpression,m=a.blockHelperMissing,h='
    "+(null!=(i=null!=(i=a.content||(null!=e?e.content:e))?i:u,o=typeof i===c?i.call(s,{name:"content",hash:{},data:t}):i)?o:"")+"
    \n"},20:function(n,e,a,l,t){return" is-autocomplete"},22:function(n,e,a,l,t,o,i){var r;return"
    \n"+(null!=(r=a.each.call(null!=e?e:n.nullContext||{},null!=e?e.content:e,{name:"each",hash:{},fn:n.program(23,t,0,o,i),inverse:n.noop,data:t}))?r:"")+'
    \n
    \n'},23:function(n,e,a,l,t,o,i){var r,s,u=n.lambda,c=n.escapeExpression,p=null!=e?e:n.nullContext||{},m=a.helperMissing;return' \n \n"},24:function(n,e,a,l,t){return"checked"},26:function(n,e,a,l,t){return"is-autocomplete"},28:function(n,e,a,l,t,o,i){var r;return'
    \n'+(null!=(r=a.each.call(null!=e?e:n.nullContext||{},null!=e?e.content:e,{name:"each",hash:{},fn:n.program(29,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"
    \n"},29:function(n,e,a,l,t,o,i){var r,s,u=n.escapeExpression,c=null!=e?e:n.nullContext||{},p=a.helperMissing;return' \n \n"},31:function(n,e,a,l,t){var o,i,r=null!=e?e:n.nullContext||{},s=a.helperMissing,u=n.escapeExpression;return'
    \n \n \n
    \n"},32:function(n,e,a,l,t){var o;return"\n "+n.escapeExpression(n.lambda(null!=(o=null!=e?e.content:e)?o.selectedValue:o,e))+"\n"},34:function(n,e,a,l,t){var o;return" "+n.escapeExpression(n.lambda(null!=(o=null!=e?e.content:e)?o.unselectedValue:o,e))+"\n"},36:function(n,e,a,l,t){var o;return"\n "+n.escapeExpression(n.lambda(null!=(o=null!=e?e.content:e)?o.unselectedValue:o,e))+"\n"},38:function(n,e,a,l,t){var o;return" "+n.escapeExpression(n.lambda(null!=(o=null!=e?e.content:e)?o.selectedValue:o,e))+"\n"},40:function(n,e,a,l,t){var o;return"\n "+n.escapeExpression(n.lambda(null!=(o=null!=e?e.content:e)?o.unselectedLabel:o,e))+"\n"},42:function(n,e,a,l,t){var o;return" "+n.escapeExpression(n.lambda(null!=(o=null!=e?e.content:e)?o.selectedLabel:o,e))+"\n "},44:function(n,e,a,l,t){var o;return n.escapeExpression(n.lambda(null!=(o=null!=e?e.content:e)?o.selectedLabel:o,e))},46:function(n,e,a,l,t){var o;return n.escapeExpression(n.lambda(null!=(o=null!=e?e.content:e)?o.unselectedLabel:o,e))},48:function(n,e,a,l,t,o,i){var r,s,u,c=null!=e?e:n.nullContext||{},p="
    \n \n
    \n
    \n'},49:function(n,e,a,l,t){var o,i,r=null!=e?e:n.nullContext||{},s=a.helperMissing,u=n.escapeExpression;return" \n"},50:function(n,e,a,l,t){return"selected"},52:function(n,e,a,l,t,o,i){var r,s,u,c=n.lambda,p=n.escapeExpression,m=null!=e?e:n.nullContext||{},h='
    \n \n
    \n
    \n'},54:function(n,e,a,l,t){var o,i,r,s=null!=e?e:n.nullContext||{},u=a.helperMissing,c="function",p=n.escapeExpression,m=a.blockHelperMissing,h='
    \n

    Your post will be accessible at:

    \n

    \n \n \n

    \n
    \n \n
    \n \n \n
    \n'},56:function(n,e,a,l,t,o,i){var r;return'
    \n
    \n

    Click on a tool below to draw on the map

    \n \n \n \n \n \n \n \n \n \n
    \n
    \n \n \n \n
    \n \n
    \n \n
    \n"},57:function(n,e,a,l,t,o,i){var r,s,u=n.lambda,c=n.escapeExpression,p=null!=e?e:n.nullContext||{},m=a.helperMissing,h="function";return' \n \n"},59:function(n,e,a,l,t){var o,i=null!=e?e:n.nullContext||{};return'
    \n \n \n \n \n
    \n
    \n

    When created, this post will be visible to all map users

    \n \n

    When saved, this post will be visible to all map users

    \n

    When saved, this post will be visible only to logged-in editors

    \n
    \n
    \n'},60:function(n,e,a,l,t){return" hidden"},62:function(n,e,a,l,t){var o,i,r,s=null!=e?e:n.nullContext||{},u=a.helperMissing,c="function",p=n.escapeExpression,m=' \n '+p((i=null!=(i=a.inputfile_label||(null!=e?e.inputfile_label:e))?i:u,typeof i===c?i.call(s,{name:"inputfile_label",hash:{},data:t}):i))+'\n \n \n \n '+(null!=(o=a.if_fileinput_not_supported.call(s,{name:"if_fileinput_not_supported",hash:{},fn:n.program(67,t,0),inverse:n.noop,data:t}))?o:"")+"\n \n"},63:function(n,e,a,l,t){return" btn-disabled"},65:function(n,e,a,l,t){return" disabled"},67:function(n,e,a,l,t){return"Sorry, your browser doesn't support file uploads."},69:function(n,e,a,l,t){var o;return'
    \n \n
    \n'},71:function(n,e,a,l,t){var o;return'
    '+n.escapeExpression((o=null!=(o=a.annotation||(null!=e?e.annotation:e))?o:a.helperMissing,"function"==typeof o?o.call(null!=e?e:n.nullContext||{},{name:"annotation",hash:{},data:t}):o))+"
    \n"},compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t,o,i){var r,s=null!=e?e:n.nullContext||{};return"\x3c!-- Template for all input types, used by both the place form view and the \n place detail view in editor mode. --\x3e\n\n"+(null!=(r=a.if.call(s,null!=e?e.horizontal_rule:e,{name:"if",hash:{},fn:n.program(1,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"\n"+(null!=(r=a.if.call(s,null!=e?e.prompt:e,{name:"if",hash:{},fn:n.program(3,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"\n"+(null!=(r=a.is.call(s,null!=e?e.type:e,"geocoding",{name:"is",hash:{},fn:n.program(6,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"\n"+(null!=(r=a.is.call(s,null!=e?e.type:e,"datetime",{name:"is",hash:{},fn:n.program(9,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"\n"+(null!=(r=a.is.call(s,null!=e?e.type:e,"text",{name:"is",hash:{},fn:n.program(14,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"\n"+(null!=(r=a.is.call(s,null!=e?e.type:e,"textarea",{name:"is",hash:{},fn:n.program(17,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"\n"+(null!=(r=a.is.call(s,null!=e?e.type:e,"richTextarea",{name:"is",hash:{},fn:n.program(19,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"\n"+(null!=(r=a.is.call(s,null!=e?e.type:e,"radio_big_buttons",{name:"is",hash:{},fn:n.program(22,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"\n"+(null!=(r=a.is.call(s,null!=e?e.type:e,"checkbox_big_buttons",{name:"is",hash:{},fn:n.program(28,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"\n"+(null!=(r=a.is.call(s,null!=e?e.type:e,"binary_toggle",{name:"is",hash:{},fn:n.program(31,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"\n"+(null!=(r=a.is.call(s,null!=e?e.type:e,"dropdown",{name:"is",hash:{},fn:n.program(48,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"\n"+(null!=(r=a.is.call(s,null!=e?e.type:e,"dropdown-autocomplete",{name:"is",hash:{},fn:n.program(52,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"\n"+(null!=(r=a.is.call(s,null!=e?e.type:e,"url-title",{name:"is",hash:{},fn:n.program(54,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"\n"+(null!=(r=a.is.call(s,null!=e?e.type:e,"geometryToolbar",{name:"is",hash:{},fn:n.program(56,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"\n"+(null!=(r=a.is.call(s,null!=e?e.type:e,"publishControl",{name:"is",hash:{},fn:n.program(59,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"\n"+(null!=(r=a.is.call(s,null!=e?e.type:e,"file",{name:"is",hash:{},fn:n.program(62,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"\n"+(null!=(r=a.is.call(s,null!=e?e.type:e,"submit",{name:"is",hash:{},fn:n.program(69,t,0,o,i),inverse:n.noop,data:t}))?r:"")+'
    \n\n\x3c!-- optional message appearing after the input type --\x3e\n'+(null!=(r=a.if.call(s,null!=e?e.annotation:e,{name:"if",hash:{},fn:n.program(71,t,0,o,i),inverse:n.noop,data:t}))?r:"")+"\n"},useData:!0,useDepths:!0}),e["place-form-fields"]=n({1:function(n,e,a,l,t){var o;return null!=(o=a.if.call(null!=e?e:n.nullContext||{},null!=e?e.isRenderable:e,{name:"if",hash:{},fn:n.program(2,t,0),inverse:n.noop,data:t}))?o:""},2:function(n,e,a,l,t){var o,i,r=null!=e?e:n.nullContext||{};return'
    \n'+(null!=(o=n.invokePartial(l["place-form-field-types"],e,{name:"place-form-field-types",data:t,indent:" ",helpers:a,partials:l,decorators:n.decorators}))?o:"")+"
    \n"},3:function(n,e,a,l,t){return" is-admin-field"},5:function(n,e,a,l,t){var o;return null!=(o=a.if.call(null!=e?e:n.nullContext||{},null!=e?e.isRenderable:e,{name:"if",hash:{},fn:n.program(6,t,0),inverse:n.noop,data:t}))?o:""},6:function(n,e,a,l,t){var o,i,r=null!=e?e:n.nullContext||{};return'
    \n'+(null!=(o=n.invokePartial(l["place-form-field-types"],e,{name:"place-form-field-types",data:t,indent:" ",helpers:a,partials:l,decorators:n.decorators}))?o:"")+"
    \n"},compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){var o,i,r=null!=e?e:n.nullContext||{};return'\x3c!-- Template for dynamic form fields --\x3e\n\n
    \n \n \n\n \x3c!-- selected category fields --\x3e\n'+(null!=(o=a.each.call(r,null!=(o=null!=e?e.selectedCategoryConfig:e)?o.fields:o,{name:"each",hash:{},fn:n.program(1,t,0),inverse:n.noop,data:t}))?o:"")+'\n \x3c!-- common form elements, included at the bottom of all forms --\x3e\n
    \n'+(null!=(o=a.each.call(r,null!=e?e.commonFormElements:e,{name:"each",hash:{},fn:n.program(5,t,0),inverse:n.noop,data:t}))?o:"")+'
    \n\n
    \n
    '},usePartial:!0,useData:!0}),e["place-form-messages"]=n({compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){var o;return'\x3c!-- Template for dynamic form alert/warning messages --\x3e\n\n

    首先,拖動地圖以設置您的位置

    \n\n\n\n\n\n

    '+n.escapeExpression(n.lambda(null!=(o=null!=e?e.placeConfig:e)?o.help_text:o,e))+"

    "},useData:!0}),e["place-form"]=n({compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){return'\x3c!-- Template for the dynamic form container, with sections for alert/warning\n\tmessages, category selection buttons, and form fields. --\x3e\n\n\x3c!-- alert/warning messages --\x3e\n
    \n\n\x3c!-- category selection buttons --\x3e\n
    \n\n\x3c!-- form fields --\x3e\n
    \n'},useData:!0}),e["place-list"]=n({compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){var o=null!=e?e:n.nullContext||{},i=n.escapeExpression;return'\n\n'},useData:!0}),e["place-survey-form"]=n({1:function(n,e,a,l,t){var o,i,r,s=null!=e?e:n.nullContext||{},u=a.helperMissing,c="function",p=n.escapeExpression,m=a.blockHelperMissing,h='\n
    \n'+(null!=(o=a.is_authenticated.call(s,{name:"is_authenticated",hash:{},fn:n.program(2,t,0),inverse:n.program(6,t,0),data:t}))?o:"")+'\n
    \n';return i=null!=(i=a.is_input||(null!=e?e.is_input:e))?i:u,r={name:"is_input",hash:{},fn:n.program(8,t,0),inverse:n.noop,data:t},o=typeof i===c?i.call(s,r):i,a.is_input||(o=m.call(e,o,r)),null!=o&&(h+=o),h+="\n",i=null!=(i=a.is_textarea||(null!=e?e.is_textarea:e))?i:u,r={name:"is_textarea",hash:{},fn:n.program(15,t,0),inverse:n.noop,data:t},o=typeof i===c?i.call(s,r):i,a.is_textarea||(o=m.call(e,o,r)),null!=o&&(h+=o),h+="\n",i=null!=(i=a.is_select||(null!=e?e.is_select:e))?i:u,r={name:"is_select",hash:{},fn:n.program(17,t,0),inverse:n.noop,data:t},o=typeof i===c?i.call(s,r):i,a.is_select||(o=m.call(e,o,r)),null!=o&&(h+=o),h+"
    \n\n"+(null!=(o=a.if.call(s,null!=e?e.help_text:e,{name:"if",hash:{},fn:n.program(24,t,0),inverse:n.noop,data:t}))?o:"")+"
    \n\n"},2:function(n,e,a,l,t){var o;return null!=(o=a.is_submitter_name.call(null!=e?e:n.nullContext||{},{name:"is_submitter_name",hash:{},fn:n.noop,inverse:n.program(3,t,0),data:t}))?o:""},3:function(n,e,a,l,t){var o,i,r,s=null!=e?e:n.nullContext||{},u=a.helperMissing,c=n.escapeExpression,p=' \n"},4:function(n,e,a,l,t){return" (optional)"},6:function(n,e,a,l,t){var o,i,r,s=null!=e?e:n.nullContext||{},u=a.helperMissing,c=n.escapeExpression,p=' \n"},8:function(n,e,a,l,t){var o;return null!=(o=a.is_submitter_name.call(null!=e?e:n.nullContext||{},{name:"is_submitter_name",hash:{},fn:n.program(9,t,0),inverse:n.program(13,t,0),data:t}))?o:""},9:function(n,e,a,l,t){var o;return null!=(o=a.is_authenticated.call(null!=e?e:n.nullContext||{},{name:"is_authenticated",hash:{},fn:n.noop,inverse:n.program(10,t,0),data:t}))?o:""},10:function(n,e,a,l,t){var o,i,r,s=null!=e?e:n.nullContext||{},u=a.helperMissing,c=n.escapeExpression,p=' \n'},11:function(n,e,a,l,t){var o,i=null!=e?e:n.nullContext||{},r=a.helperMissing,s=n.escapeExpression;return" "+s((o=null!=(o=a.key||(null!=e?e.key:e))?o:r,"function"==typeof o?o.call(i,{name:"key",hash:{},data:t}):o))+'="'+s((o=null!=(o=a.value||(null!=e?e.value:e))?o:r,"function"==typeof o?o.call(i,{name:"value",hash:{},data:t}):o))+'"'},13:function(n,e,a,l,t){var o,i,r,s=null!=e?e:n.nullContext||{},u=a.helperMissing,c=n.escapeExpression,p=' \n'},15:function(n,e,a,l,t){var o,i,r,s=null!=e?e:n.nullContext||{},u=a.helperMissing,c=n.escapeExpression,p=' \n"},17:function(n,e,a,l,t){var o,i,r,s=null!=e?e:n.nullContext||{},u=a.helperMissing,c=n.escapeExpression,p=' \n"},18:function(n,e,a,l,t){var o,i,r,s="";return i=null!=(i=a.options||(null!=e?e.options:e))?i:a.helperMissing,r={name:"options",hash:{},fn:n.program(19,t,0),inverse:n.noop,data:t},o="function"==typeof i?i.call(null!=e?e:n.nullContext||{},r):i,a.options||(o=a.blockHelperMissing.call(e,o,r)),null!=o&&(s+=o),s},19:function(n,e,a,l,t){var o;return null!=(o=a.if.call(null!=e?e:n.nullContext||{},null!=e?e.label:e,{name:"if",hash:{},fn:n.program(20,t,0),inverse:n.program(22,t,0),data:t}))?o:""},20:function(n,e,a,l,t){var o,i=null!=e?e:n.nullContext||{},r=a.helperMissing,s=n.escapeExpression;return' \n"},22:function(n,e,a,l,t){var o=n.lambda,i=n.escapeExpression;return' \n"},24:function(n,e,a,l,t){var o,i=null!=e?e:n.nullContext||{},r=a.helperMissing,s=n.escapeExpression;return'
    '+s((o=null!=(o=a.help_text||(null!=e?e.help_text:e))?o:r,"function"==typeof o?o.call(i,{name:"help_text",hash:{},data:t}):o))+"
    \n"},26:function(n,e,a,l,t){var o=null!=e?e:n.nullContext||{},i=n.escapeExpression;return'

    '+i(a.current_user.call(o,"name",{name:"current_user",hash:{},data:t}))+'. Log Out

    \n'},28:function(n,e,a,l,t){return""},compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){var o,i,r=null!=e?e:n.nullContext||{},s=a.helperMissing,u=n.escapeExpression,c=n.lambda;return'
    \n

    '+u((i=null!=(i=a.title||(null!=e?e.title:e))?i:s,"function"==typeof i?i.call(r,{name:"title",hash:{},data:t}):i))+'

    \n
    \n \n \n\n
    \n'+(null!=(o=a.blockHelperMissing.call(e,c(null!=(o=null!=e?e.survey_config:e)?o.items:o,e),{name:"survey_config.items",hash:{},fn:n.program(1,t,0),inverse:n.noop,data:t}))?o:"")+'
    \n\n \n\n'+(null!=(o=a.is_authenticated.call(r,{name:"is_authenticated",hash:{},fn:n.program(26,t,0),inverse:n.program(28,t,0),data:t}))?o:"")+'\n
    \n\n
    \n
    \n'},useData:!0}),e["place-survey-response"]=n({compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){return'
    \n
    Thanks for participating!
    \n'},useData:!0}),e.reporting=n({compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){return"

    What to look for

    "},useData:!0}),e["right-sidebar"]=n({compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){return'\n\n'},useData:!0}),e["sidebar-story-detail"]=n({1:function(n,e,a,l,t){var o;return"\t\t"+n.escapeExpression((o=null!=(o=a.fullTitle||(null!=e?e.fullTitle:e))?o:a.helperMissing,"function"==typeof o?o.call(null!=e?e:n.nullContext||{},{name:"fullTitle",hash:{},data:t}):o))+"\n"},3:function(n,e,a,l,t){var o;return null!=(o=a.if.call(null!=e?e:n.nullContext||{},null!=e?e.title:e,{name:"if",hash:{},fn:n.program(4,t,0),inverse:n.program(6,t,0),data:t}))?o:""},4:function(n,e,a,l,t){var o;return"\t\t\t"+n.escapeExpression((o=null!=(o=a.title||(null!=e?e.title:e))?o:a.helperMissing,"function"==typeof o?o.call(null!=e?e:n.nullContext||{},{name:"title",hash:{},data:t}):o))+"\n"},6:function(n,e,a,l,t){var o;return"\t\t\t"+n.escapeExpression((o=null!=(o=a.name||(null!=e?e.name:e))?o:a.helperMissing,"function"==typeof o?o.call(null!=e?e:n.nullContext||{},{name:"name",hash:{},data:t}):o))+"\n"},compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){var o,i,r=null!=e?e:n.nullContext||{};return'\n

    \n'+(null!=(o=a.if.call(r,null!=e?e.fullTitle:e,{name:"if",hash:{},fn:n.program(1,t,0),inverse:n.program(3,t,0),data:t}))?o:"")+"

    "},useData:!0}),e.sidebar=n({1:function(n,e,a,l,t){var o,i=null!=e?e:n.nullContext||{},r=a.helperMissing,s=n.escapeExpression;return'
  • \n'},3:function(n,e,a,l,t){var o,i,r=null!=e?e:n.nullContext||{},s=a.helperMissing,u=n.escapeExpression;return' \n"},4:function(n,e,a,l,t){return' \n'},compiler:[7,">= 4.0.0"],main:function(n,e,a,l,t){var o,i=n.lambda,r=a.blockHelperMissing -;return'