{"version":3,"sources":["../../../config-wrap-start-default.js","../lib/almond.js","views/header.js","views/footer.js","views/formContent.js","models/partModel.js","models/partCollection.js","controllers/loadFilters.js","controllers/conditionalLogic.js","controllers/renderRecaptcha.js","controllers/loadControllers.js","main.js","../../../config-wrap-end-default.js"],"names":["requirejs","require","define","undef","hasProp","obj","prop","hasOwn","call","normalize","name","baseName","nameParts","nameSegment","mapValue","foundMap","lastIndex","foundI","foundStarMap","starI","i","j","part","baseParts","split","map","config","starMap","charAt","length","nodeIdCompat","jsSuffixRegExp","test","replace","slice","concat","splice","join","indexOf","substring","makeRequire","relName","forceSync","args","aps","arguments","push","req","apply","makeNormalize","makeLoad","depName","value","defined","callDep","waiting","defining","main","Error","splitPrefix","prefix","index","makeConfig","makeMap","handlers","Object","prototype","hasOwnProperty","plugin","parts","f","n","pr","p","exports","e","module","id","uri","deps","callback","cjsModule","ret","usingExports","callbackType","load","undefined","alt","setTimeout","cfg","_defined","amd","jQuery","view","Marionette","ItemView","extend","template","fullProgressBar","initialize","options","this","listenTo","collection","reRender","nfRadio","channel","fillProgressBar","model","getElement","render","templateHelpers","that","renderPartTitle","formModel","get","mp_display_titles","Backbone","Radio","request","_","invoke","getVisibleParts","title","renderBreadcrumbs","mp_breadcrumb","currentIndex","renderProgressBar","mp_progress_bar","percent","events","click .nf-breadcrumb","clickBreadcrumb","preventDefault","setElement","target","data","renderNextPrevious","showNext","showPrevious","visibleParts","where","visible","prevLabel","nfMPSettings","nextLabel","HeaderView","FooterView","LayoutView","regions","header","body","footer","changePart","renderHeaderFooter","onRender","show","formContentViewFilters","sortedArray","without","formContentView","formTop","el","closest","offset","top","window","scrollTop","click .nf-next","click .nf-previous","clickNext","next","clickPrevious","previous","Model","fieldErrors","defaults","errors","filterFormContentData","maybeChangeActivePart","cid","on","changeVisible","formContentData","formContentLoadFilters","empty","isArray","cells","partFields","pluck","each","cell","fields","flatten","union","set","fieldModel","validateFields","showFields","hideFields","PartModel","Collection","currentElement","models","at","silent","partErrors","trigger","mp_validate","partModel","FormContentView","PartCollection","controller","getformContentView","formContentLoad","first","type","partCollection","reply","showPart","hidePart","conditionModel","then","changePartVisibility","findWhere","key","checkWhen","opts","theme","sitekey","nf_recaptcha_response","grecaptcha","ConditionalLogic","RenderRecaptcha","LoadFilters","LoadControllers","NFMultiPart","Application","loadFilters","loadControllers","onStart","nfMultiPart","start"],"mappings":"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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5EA,AD6EA;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvEA,ADwEA;ACvEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5GA,AD6GA;AC5GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/EA,ADgFA;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5DA,AD6DA;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7BA,AD8BA;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5BA,AD6BA","file":"front-end.js","sourcesContent":["(function () {\n","/**\n * @license almond 0.3.1 Copyright (c) 2011-2014, The Dojo Foundation All Rights Reserved.\n * Available via the MIT or new BSD license.\n * see: http://github.com/jrburke/almond for details\n */\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\n//be followed.\n/*jslint sloppy: true */\n/*global setTimeout: false */\n\nvar requirejs, require, define;\n(function (undef) {\n var main, req, makeMap, handlers,\n defined = {},\n waiting = {},\n config = {},\n defining = {},\n hasOwn = Object.prototype.hasOwnProperty,\n aps = [].slice,\n jsSuffixRegExp = /\\.js$/;\n\n function hasProp(obj, prop) {\n return hasOwn.call(obj, prop);\n }\n\n /**\n * Given a relative module name, like ./something, normalize it to\n * a real name that can be mapped to a path.\n * @param {String} name the relative name\n * @param {String} baseName a real name that the name arg is relative\n * to.\n * @returns {String} normalized name\n */\n function normalize(name, baseName) {\n var nameParts, nameSegment, mapValue, foundMap, lastIndex,\n foundI, foundStarMap, starI, i, j, part,\n baseParts = baseName && baseName.split(\"/\"),\n map = config.map,\n starMap = (map && map['*']) || {};\n\n //Adjust any relative paths.\n if (name && name.charAt(0) === \".\") {\n //If have a base name, try to normalize against it,\n //otherwise, assume it is a top-level require that will\n //be relative to baseUrl in the end.\n if (baseName) {\n name = name.split('/');\n lastIndex = name.length - 1;\n\n // Node .js allowance:\n if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n }\n\n //Lop off the last part of baseParts, so that . matches the\n //\"directory\" and not name of the baseName's module. For instance,\n //baseName of \"one/two/three\", maps to \"one/two/three.js\", but we\n //want the directory, \"one/two\" for this normalization.\n name = baseParts.slice(0, baseParts.length - 1).concat(name);\n\n //start trimDots\n for (i = 0; i < name.length; i += 1) {\n part = name[i];\n if (part === \".\") {\n name.splice(i, 1);\n i -= 1;\n } else if (part === \"..\") {\n if (i === 1 && (name[2] === '..' || name[0] === '..')) {\n //End of the line. Keep at least one non-dot\n //path segment at the front so it can be mapped\n //correctly to disk. Otherwise, there is likely\n //no path mapping for a path starting with '..'.\n //This can still fail, but catches the most reasonable\n //uses of ..\n break;\n } else if (i > 0) {\n name.splice(i - 1, 2);\n i -= 2;\n }\n }\n }\n //end trimDots\n\n name = name.join(\"/\");\n } else if (name.indexOf('./') === 0) {\n // No baseName, so this is ID is resolved relative\n // to baseUrl, pull off the leading dot.\n name = name.substring(2);\n }\n }\n\n //Apply map config if available.\n if ((baseParts || starMap) && map) {\n nameParts = name.split('/');\n\n for (i = nameParts.length; i > 0; i -= 1) {\n nameSegment = nameParts.slice(0, i).join(\"/\");\n\n if (baseParts) {\n //Find the longest baseName segment match in the config.\n //So, do joins on the biggest to smallest lengths of baseParts.\n for (j = baseParts.length; j > 0; j -= 1) {\n mapValue = map[baseParts.slice(0, j).join('/')];\n\n //baseName segment has config, find if it has one for\n //this name.\n if (mapValue) {\n mapValue = mapValue[nameSegment];\n if (mapValue) {\n //Match, update name to the new value.\n foundMap = mapValue;\n foundI = i;\n break;\n }\n }\n }\n }\n\n if (foundMap) {\n break;\n }\n\n //Check for a star map match, but just hold on to it,\n //if there is a shorter segment match later in a matching\n //config, then favor over this star map.\n if (!foundStarMap && starMap && starMap[nameSegment]) {\n foundStarMap = starMap[nameSegment];\n starI = i;\n }\n }\n\n if (!foundMap && foundStarMap) {\n foundMap = foundStarMap;\n foundI = starI;\n }\n\n if (foundMap) {\n nameParts.splice(0, foundI, foundMap);\n name = nameParts.join('/');\n }\n }\n\n return name;\n }\n\n function makeRequire(relName, forceSync) {\n return function () {\n //A version of a require function that passes a moduleName\n //value for items that may need to\n //look up paths relative to the moduleName\n var args = aps.call(arguments, 0);\n\n //If first arg is not require('string'), and there is only\n //one arg, it is the array form without a callback. Insert\n //a null so that the following concat is correct.\n if (typeof args[0] !== 'string' && args.length === 1) {\n args.push(null);\n }\n return req.apply(undef, args.concat([relName, forceSync]));\n };\n }\n\n function makeNormalize(relName) {\n return function (name) {\n return normalize(name, relName);\n };\n }\n\n function makeLoad(depName) {\n return function (value) {\n defined[depName] = value;\n };\n }\n\n function callDep(name) {\n if (hasProp(waiting, name)) {\n var args = waiting[name];\n delete waiting[name];\n defining[name] = true;\n main.apply(undef, args);\n }\n\n if (!hasProp(defined, name) && !hasProp(defining, name)) {\n throw new Error('No ' + name);\n }\n return defined[name];\n }\n\n //Turns a plugin!resource to [plugin, resource]\n //with the plugin being undefined if the name\n //did not have a plugin prefix.\n function splitPrefix(name) {\n var prefix,\n index = name ? name.indexOf('!') : -1;\n if (index > -1) {\n prefix = name.substring(0, index);\n name = name.substring(index + 1, name.length);\n }\n return [prefix, name];\n }\n\n /**\n * Makes a name map, normalizing the name, and using a plugin\n * for normalization if necessary. Grabs a ref to plugin\n * too, as an optimization.\n */\n makeMap = function (name, relName) {\n var plugin,\n parts = splitPrefix(name),\n prefix = parts[0];\n\n name = parts[1];\n\n if (prefix) {\n prefix = normalize(prefix, relName);\n plugin = callDep(prefix);\n }\n\n //Normalize according\n if (prefix) {\n if (plugin && plugin.normalize) {\n name = plugin.normalize(name, makeNormalize(relName));\n } else {\n name = normalize(name, relName);\n }\n } else {\n name = normalize(name, relName);\n parts = splitPrefix(name);\n prefix = parts[0];\n name = parts[1];\n if (prefix) {\n plugin = callDep(prefix);\n }\n }\n\n //Using ridiculous property names for space reasons\n return {\n f: prefix ? prefix + '!' + name : name, //fullName\n n: name,\n pr: prefix,\n p: plugin\n };\n };\n\n function makeConfig(name) {\n return function () {\n return (config && config.config && config.config[name]) || {};\n };\n }\n\n handlers = {\n require: function (name) {\n return makeRequire(name);\n },\n exports: function (name) {\n var e = defined[name];\n if (typeof e !== 'undefined') {\n return e;\n } else {\n return (defined[name] = {});\n }\n },\n module: function (name) {\n return {\n id: name,\n uri: '',\n exports: defined[name],\n config: makeConfig(name)\n };\n }\n };\n\n main = function (name, deps, callback, relName) {\n var cjsModule, depName, ret, map, i,\n args = [],\n callbackType = typeof callback,\n usingExports;\n\n //Use name if no relName\n relName = relName || name;\n\n //Call the callback to define the module, if necessary.\n if (callbackType === 'undefined' || callbackType === 'function') {\n //Pull out the defined dependencies and pass the ordered\n //values to the callback.\n //Default to [require, exports, module] if no deps\n deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\n for (i = 0; i < deps.length; i += 1) {\n map = makeMap(deps[i], relName);\n depName = map.f;\n\n //Fast path CommonJS standard dependencies.\n if (depName === \"require\") {\n args[i] = handlers.require(name);\n } else if (depName === \"exports\") {\n //CommonJS module spec 1.1\n args[i] = handlers.exports(name);\n usingExports = true;\n } else if (depName === \"module\") {\n //CommonJS module spec 1.1\n cjsModule = args[i] = handlers.module(name);\n } else if (hasProp(defined, depName) ||\n hasProp(waiting, depName) ||\n hasProp(defining, depName)) {\n args[i] = callDep(depName);\n } else if (map.p) {\n map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\n args[i] = defined[depName];\n } else {\n throw new Error(name + ' missing ' + depName);\n }\n }\n\n ret = callback ? callback.apply(defined[name], args) : undefined;\n\n if (name) {\n //If setting exports via \"module\" is in play,\n //favor that over return value and exports. After that,\n //favor a non-undefined return value over exports use.\n if (cjsModule && cjsModule.exports !== undef &&\n cjsModule.exports !== defined[name]) {\n defined[name] = cjsModule.exports;\n } else if (ret !== undef || !usingExports) {\n //Use the return value from the function.\n defined[name] = ret;\n }\n }\n } else if (name) {\n //May just be an object definition for the module. Only\n //worry about defining if have a module name.\n defined[name] = callback;\n }\n };\n\n requirejs = require = req = function (deps, callback, relName, forceSync, alt) {\n if (typeof deps === \"string\") {\n if (handlers[deps]) {\n //callback in this case is really relName\n return handlers[deps](callback);\n }\n //Just return the module wanted. In this scenario, the\n //deps arg is the module name, and second arg (if passed)\n //is just the relName.\n //Normalize module name, if it contains . or ..\n return callDep(makeMap(deps, callback).f);\n } else if (!deps.splice) {\n //deps is a config object, not an array.\n config = deps;\n if (config.deps) {\n req(config.deps, config.callback);\n }\n if (!callback) {\n return;\n }\n\n if (callback.splice) {\n //callback is an array, which means it is a dependency list.\n //Adjust args if there are dependencies\n deps = callback;\n callback = relName;\n relName = null;\n } else {\n deps = undef;\n }\n }\n\n //Support require(['a'])\n callback = callback || function () {};\n\n //If relName is a function, it is an errback handler,\n //so remove it.\n if (typeof relName === 'function') {\n relName = forceSync;\n forceSync = alt;\n }\n\n //Simulate async callback;\n if (forceSync) {\n main(undef, deps, callback, relName);\n } else {\n //Using a non-zero value because of concern for what old browsers\n //do, and latest browsers \"upgrade\" to 4 if lower value is used:\n //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\n //If want a value immediately, use require('id') instead -- something\n //that works in almond on the global level, but not guaranteed and\n //unlikely to work in other AMD implementations.\n setTimeout(function () {\n main(undef, deps, callback, relName);\n }, 4);\n }\n\n return req;\n };\n\n /**\n * Just drops the config on the floor, but returns req in case\n * the config return value is used.\n */\n req.config = function (cfg) {\n return req(cfg);\n };\n\n /**\n * Expose module registry for debugging and tooling\n */\n requirejs._defined = defined;\n\n define = function (name, deps, callback) {\n if (typeof name !== 'string') {\n throw new Error('See almond README: incorrect module build, no module name');\n }\n\n //This module may not have dependencies\n if (!deps.splice) {\n //deps is not an array, so probably means\n //an object literal or factory function for\n //the value. Adjust args.\n callback = deps;\n deps = [];\n }\n\n if (!hasProp(defined, name) && !hasProp(waiting, name)) {\n waiting[name] = [name, deps, callback];\n }\n };\n\n define.amd = {\n jQuery: true\n };\n}());\n\ndefine(\"../lib/almond\", function(){});\n\n","define( 'views/header',[], function() {\n\tvar view = Marionette.ItemView.extend( {\n\t\ttemplate: \"#tmpl-nf-mp-header\",\n \t\tfullProgressBar: false,\n\n \t\tinitialize: function( options ) {\n\t\t\tthis.listenTo( this.collection, 'change:part', this.reRender );\n\t\t\tthis.listenTo( this.collection, 'change:errors', this.reRender );\n\n\t\t\tthis.listenTo( nfRadio.channel( 'forms' ), 'before:submit', this.fillProgressBar );\n\t\t},\n\n\t\treRender: function() {\n\t\t\tthis.model = this.collection.getElement();\n\t\t\tthis.render();\n\t\t},\n\n\t\ttemplateHelpers: function() {\n\t\t\tvar that = this;\n\t\t\treturn {\n\t\t\t\trenderPartTitle: function() {\n\t\t\t\t\tif ( 'undefined' == typeof that.collection.formModel.get( 'settings' ).mp_display_titles || 0 == that.collection.formModel.get( 'settings' ).mp_display_titles ) return '';\n\t\t\t\t\t\n\t\t\t\t\tvar template = Backbone.Radio.channel( 'app' ).request( 'get:template', '#tmpl-nf-mp-part-title' );\n\t\t\t\t\tvar parts = _.invoke( that.collection.getVisibleParts(), 'pick', [ 'title', 'errors', 'visible' ] )\n\t\t\t\t\tif ( 1 < parts.length ) {\n\t\t\t\t\t\treturn template( { title: this.title } );\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn ''; \n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\trenderBreadcrumbs: function() {\n\t\t\t\t\tif ( 'undefined' == typeof that.collection.formModel.get( 'settings' ).mp_breadcrumb || 0 == that.collection.formModel.get( 'settings' ).mp_breadcrumb ) return '';\n\n\t\t\t\t\tvar template = Backbone.Radio.channel( 'app' ).request( 'get:template', '#tmpl-nf-mp-breadcrumbs' );\n\t\t\t\t\tvar parts = _.invoke( that.collection.getVisibleParts(), 'pick', [ 'title', 'errors', 'visible' ] )\n\t\t\t\t\tif ( 1 < parts.length ) {\n\t\t\t\t\t\treturn template( { parts: parts, currentIndex: that.collection.getVisibleParts().indexOf( that.model ) } );\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn ''; \n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\trenderProgressBar: function() {\n\t\t\t\t\tif ( 'undefined' == typeof that.collection.formModel.get( 'settings' ).mp_progress_bar || 0 == that.collection.formModel.get( 'settings' ).mp_progress_bar ) return '';\n\t\t\t\t\t\n\t\t\t\t\tvar template = Backbone.Radio.channel( 'app' ).request( 'get:template', '#tmpl-nf-mp-progress-bar' );\n\t\t\t\t\tvar currentIndex = that.collection.getVisibleParts().indexOf( that.model );\n\t\t\t\t\tvar percent = ( that.fullProgressBar ) ? 100 : currentIndex / that.collection.getVisibleParts().length * 100;\n\t\t\t\t\tif ( 1 < that.collection.getVisibleParts().length ) {\n\t\t\t\t\t\treturn template( { percent: percent } );\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tevents: {\n\t\t\t'click .nf-breadcrumb': 'clickBreadcrumb'\n\t\t},\n\n\t\tclickBreadcrumb: function( e ) {\n\t\t\te.preventDefault();\n\t\t\tthis.collection.setElement( this.collection.getVisibleParts()[ jQuery( e.target ).data( 'index' ) ] );\n\t\t},\n\n\t\tfillProgressBar: function( formModel ) {\n\t\t\tthis.fullProgressBar = true;\n\t\t\tthis.render();\n\t\t\tthis.fullProgressBar = false;\n\t\t}\n\t} );\n\n\treturn view;\n} );\n","define( 'views/footer',[], function() {\n\tvar view = Marionette.ItemView.extend( {\n\t\ttemplate: \"#tmpl-nf-mp-footer\",\n\n\t\tinitialize: function( options ) {\n\t\t\tthis.listenTo( this.collection, 'change:part', this.reRender );\n\t\t},\n\n\t\treRender: function() {\n\t\t\tthis.model = this.collection.getElement();\n\t\t\tthis.render();\n\t\t},\n\n\t\ttemplateHelpers: function() {\n\t\t\tvar that = this;\n\t\t\treturn {\n\t\t\t\trenderNextPrevious: function() {\n\t\t\t\t\tvar template = Backbone.Radio.channel( 'app' ).request( 'get:template', '#tmpl-nf-mp-next-previous' );\n\t\t\t\t\tvar showNext = false;\n\t\t\t\t\tvar showPrevious = false;\n\t\t\t\t\tvar visibleParts = that.collection.where( { visible: true } );\n\t\t\t\t\t\n\t\t\t\t\t/*\n\t\t\t\t\t * If our collection pointer isn't on the last visible part, show Next navigation.\n\t\t\t\t\t */\n\t\t\t\t\tif ( visibleParts.indexOf( that.model ) != visibleParts.length - 1 ) {\n\t\t\t\t\t\tshowNext = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/*\n\t\t\t\t\t * If our collection pointer isn't on the first visible part, show Previous navigation.\n\t\t\t\t\t */\n\t\t\t\t\tif ( visibleParts.indexOf( that.model ) != 0 ) {\n\t\t\t\t\t\tshowPrevious = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! showNext && ! showPrevious ) return '';\n\n\t\t\t\t\tvar prevLabel = that.collection.formModel.get( 'mp_prev_label' ) || nfMPSettings.prevLabel;\n\t\t\t\t\tvar nextLabel = that.collection.formModel.get( 'mp_next_label' ) || nfMPSettings.nextLabel;\n\n\t\t\t\t\treturn template( { showNext: showNext, showPrevious: showPrevious, prevLabel: prevLabel, nextLabel: nextLabel } );\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\n\t} );\n\n\treturn view;\n} );\n\n","define( 'views/formContent',[ 'views/header', 'views/footer' ], function( HeaderView, FooterView ) {\n\tvar view = Marionette.LayoutView.extend( {\n\t\ttemplate: \"#tmpl-nf-mp-form-content\",\n\n\t\tregions: {\n\t\t\theader: '.nf-mp-header',\n\t\t\tbody: '.nf-mp-body',\n\t\t\tfooter: '.nf-mp-footer'\n\t\t},\n\n\t\tinitialize: function( options ) {\n\t\t\tthis.formModel = options.formModel;\n\t\t\tthis.collection = options.data;\n\t\t\tthis.listenTo( this.collection, 'change:part', this.changePart );\n\t\t\tthis.listenTo( this.collection, 'change:visible', this.renderHeaderFooter );\n\t\t},\n\n\t\tonRender: function() {\n\t\t\tthis.header.show( new HeaderView( { collection: this.collection, model: this.collection.getElement() } ) );\n\n\t\t\t/*\n\t\t\t * Check our fieldContentViewsFilter to see if we have any defined.\n\t\t\t * If we do, overwrite our default with the view returned from the filter.\n\t\t\t */\n\t\t\tvar formContentViewFilters = nfRadio.channel( 'formContent' ).request( 'get:viewFilters' );\n\t\t\t\n\t\t\t/* \n\t\t\t* Get our first filter, this will be the one with the highest priority.\n\t\t\t*/\n\t\t\tvar sortedArray = _.without( formContentViewFilters, undefined );\n\t\t\tvar callback = sortedArray[1];\n\t\t\tthis.formContentView = callback();\n\t\t\t\n\t\t\tthis.body.show( new this.formContentView( { collection: this.collection.getElement().get( 'formContentData' ) } ) );\n\t\t\tthis.footer.show( new FooterView( { collection: this.collection, model: this.collection.getElement() } ) );\n\t\t},\n\n\t\trenderHeaderFooter: function() {\n\t\t\tthis.header.show( new HeaderView( { collection: this.collection, model: this.collection.getElement() } ) );\n\t\t\tthis.footer.show( new FooterView( { collection: this.collection, model: this.collection.getElement() } ) );\n\t\t},\n\n\t\tchangePart: function() {\n\t\t\tthis.body.show( new this.formContentView( { collection: this.collection.getElement().get( 'formContentData' ) } ) );\n\t\t\t/*\n\t\t\t * Scroll the page to the top of the form.\n\t\t\t */\n\t\t\tvar formTop = jQuery( this.body.el ).closest( '.nf-form-cont' ).offset().top;\n\t\t\tif ( jQuery( window ).scrollTop() > formTop - 50 ) {\n\t\t\t\tjQuery( window ).scrollTop( formTop - 50 );\n\t\t\t}\n\t\t},\n\n\t\tevents: {\n\t\t\t'click .nf-next': 'clickNext',\n\t\t\t'click .nf-previous': 'clickPrevious'\n\t\t},\n\n\t\tclickNext: function( e ) {\n\t\t\te.preventDefault();\n\t\t\tthis.collection.next();\n\t\t},\n\n\t\tclickPrevious: function( e ) {\n\t\t\te.preventDefault();\n\t\t\tthis.collection.previous();\n\t\t}\n\n\t} );\n\n\treturn view;\n} );\n","define( 'models/partModel',[], function() {\n\tvar model = Backbone.Model.extend( {\n\t\tfieldErrors: {},\n\n\t\tdefaults: {\n\t\t\terrors: false,\n\t\t\tvisible: true,\n\t\t\ttitle: ''\n\t\t},\n\n\t\tinitialize: function() {\n\t\t\tthis.filterFormContentData();\n\t\t\tthis.listenTo( this.get( 'formContentData' ), 'change:errors', this.maybeChangeActivePart );\n\t\t\tthis.fieldErrors[ this.cid ] = [];\n\t\t\tthis.on( 'change:visible', this.changeVisible, this );\n\t\t},\n\n\t\tfilterFormContentData: function() {\n\t\t\tif ( ! this.get( 'formContentData' ) ) return;\n\t\t\tvar formContentData = this.get( 'formContentData' );\n\t\t\t/*\n\t\t\t * Update our formContentData by running it through our fromContentData filter\n\t\t\t */\n\t\t\tvar formContentLoadFilters = nfRadio.channel( 'formContent' ).request( 'get:loadFilters' );\n\t\t\t/* \n\t\t\t* Get our second filter, this will be the one with the highest priority after MP Forms.\n\t\t\t*/\n\t\t\tvar sortedArray = _.without( formContentLoadFilters, undefined );\n\t\t\tvar callback = sortedArray[ 1 ];\n\t\t\t/*\n\t\t\t * If our formContentData is an empty array, we want to pass the \"empty\" flag as true so that filters know it's purposefully empty.\n\t\t\t */\n\t\t\tvar empty = ( 0 == formContentData.length ) ? true : false;\n\t\t\t/*\n\t\t\t * TODO: This is a bandaid fix to prevent forms with layouts and parts from freaking out of layouts & styles are deactivated.\n\t\t\t * If Layouts is deactivated, it will try to grab the layout data and show the fields on the appropriate parts.\n\t\t\t */\n\t\t\tif ( 'undefined' == typeof formContentLoadFilters[4] && _.isArray( formContentData ) && 0 != formContentData.length && 'undefined' != typeof formContentData[0].cells ) {\n\t\t\t\t/*\n\t\t\t\t * We need to get our field keys from our layout data.\n\t\t\t\t * Layout data looks like:\n\t\t\t\t * Rows\n\t\t\t\t * Row\n\t\t\t\t * Cells\n\t\t\t\t * Cell\n\t\t\t\t * Fields\n\t\t\t\t * Cell\n\t\t\t\t * Fields\n\t\t\t\t * Row\n\t\t\t\t * Cells\n\t\t\t\t * Cell\n\t\t\t\t * Fields \n\t\t\t\t */\n\t\t\t\tvar partFields = [];\n\t\t\t\tvar cells = _.pluck( formContentData, 'cells' );\n\t\t\t\t_.each( cells, function( cell ) {\n\t\t\t\t\tvar fields = _.flatten( _.pluck( cell, 'fields' ) );\n\t\t\t\t\tpartFields = _.union( partFields, fields );\n\t\t\t\t} );\n\n\t\t\t\tformContentData = partFields;\n\n\t\t\t\tthis.set( 'formContentData', formContentData );\n\t\t\t}\n\n\t\t\tthis.set( 'formContentData', callback( formContentData, this.collection.formModel, empty, formContentData ) );\n\t\t},\n\n\t\tmaybeChangeActivePart: function( fieldModel ) {\n\t\t\t/*\n\t\t\t * If we have an error on this part, add an error to our part model.\n\t\t\t *\n\t\t\t * If we are on a part that has a higher index than the current part, set this as current.\n\t\t\t */\n\t\t\tif ( 0 < fieldModel.get( 'errors' ).length ) {\n\t\t\t\tthis.set( 'errors', true );\n\t\t\t\tthis.fieldErrors[ this.cid ].push( fieldModel.get( 'key' ) );\n\t\t\t\t// this.set( 'fieldErrors', fieldModel.get( 'key' ) );\n\t\t\t\tif (\n\t\t\t\t\tthis.collection.getElement() != this &&\n\t\t\t\t\tthis.collection.indexOf( this.collection.getElement() ) > this.collection.indexOf( this )\n\n\t\t\t\t) {\n\t\t\t\t\tthis.collection.setElement( this );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.fieldErrors[ this.cid ] = _.without( this.fieldErrors[ this.cid ], fieldModel.get( 'key' ) );\n\t\t\t\tif ( 0 == this.fieldErrors[ this.cid ].length ) {\n\t\t\t\t\tthis.set( 'errors', false );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tvalidateFields: function() {\n\t\t\tthis.get( 'formContentData' ).validateFields();\n\t\t},\n\n\t\tchangeVisible: function() {\n\t\t\tif ( this.get( 'visible' ) ) {\n\t\t\t\tthis.get( 'formContentData' ).showFields();\n\t\t\t} else {\n\t\t\t\tthis.get( 'formContentData' ).hideFields();\n\t\t\t}\n\t\t}\n\t} );\n\n\treturn model;\n} );\n\n","define( 'models/partCollection',[ 'models/partModel' ], function( PartModel ) {\n\tvar collection = Backbone.Collection.extend( {\n\t\tmodel: PartModel,\n\t\tcurrentElement: false,\n\n\t\tinitialize: function( models, options ){\n\t\t\tthis.formModel = options.formModel;\n\t\t},\n\t\t\n\t\tgetElement: function() {\n\t\t\t/*\n\t\t\t * If we haven't set an element yet, set it to the first one.\n\t\t\t */\n\t\t\tif ( ! this.currentElement ) {\n\t\t\t\tthis.setElement( this.at( 0 ), true );\n\t\t\t}\n\t\t\treturn this.currentElement;\n\t\t},\n\t\t \n\t\tsetElement: function( model, silent ) {\n\t\t\tsilent = silent || false;\n\t\t\t/*\n\t\t\t * If we have part errors and aren't updating silently, check for part errors.\n\t\t\t */\n\t\t\tif ( ! silent ) {\n\t\t\t\tif ( this.partErrors() ) return;\n\t\t\t}\n\t\t\t\n\t\t\tthis.currentElement = model;\n\t\t\tif ( ! silent ) {\n\t\t\t\tthis.trigger( 'change:part', this );\n\t\t\t\tnfRadio.channel( 'nfMP' ).trigger( 'change:part', this );\n\t\t\t} \n\t\t},\n\t\t\n\t\tnext: function (){\n\t\t\t/*\n\t\t\t * If this isn't the last visible part, move forward.\n\t\t\t */\n\t\t\tif ( this.getVisibleParts().length - 1 != this.getVisibleParts().indexOf( this.getElement() ) ) {\n\t\t\t\tthis.setElement( this.getVisibleParts()[ this.getVisibleParts().indexOf( this.getElement() ) + 1 ] );\n\t\t\t}\n\t\t\t\n\t\t\treturn this;\n\t\t},\n\n\t\tprevious: function() {\n\t\t\t/*\n\t\t\t * If this isn't the first visible part, move backward.\n\t\t\t */\n\t\t\tif ( 0 != this.getVisibleParts().indexOf( this.getElement() ) ) {\n\t\t\t\tthis.setElement( this.getVisibleParts()[ this.getVisibleParts().indexOf( this.getElement() ) - 1 ] );\t\n\t\t\t}\n\t\t\t\n\t\t\treturn this;\n\t\t},\n\n\t\tpartErrors: function() {\n\t\t\tif ( 'undefined' == typeof this.formModel.get( 'settings' ).mp_validate || 0 == this.formModel.get( 'settings' ).mp_validate ) return false;\n\t\t\t/*\n\t\t\t * Check to see if our parts have any errors.\n\t\t\t */\n\t\t\tthis.currentElement.validateFields();\n\t\t\treturn this.currentElement.get( 'errors' );\n\t\t},\n\n\t\tvalidateFields: function() {\n\t\t\t/*\n\t\t\t * call validateFields on each visible part\n\t\t\t */\n\t\t\t_.each( this.getVisibleParts(), function( partModel ) { partModel.validateFields(); } );\n\t\t},\n\n\t\tgetVisibleParts: function() {\n\t\t\treturn this.where( { visible: true } );\n\t\t}\n\t} );\n\n\treturn collection;\n} );\n","/**\n * Interprets formContent data when a form is loaded.\n * Also returns our MP Layout View to use in place of the standard form layout view.\n * \n * @package Ninja Forms Front-End\n * @subpackage Main App\n * @copyright (c) 2016 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/loadFilters',[ 'views/formContent', 'models/partCollection' ], function( FormContentView, PartCollection ) {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tnfRadio.channel( 'formContent' ).request( 'add:viewFilter', this.getformContentView, 1 );\n\t\t\tnfRadio.channel( 'formContent' ).request( 'add:loadFilter', this.formContentLoad, 1 );\n\t\t},\n\n\t\t/**\n\t\t * Return the MP Content View\n\t\t * \n\t\t * @since 3.0\n\t\t * @param {Backbon.Collection} collection formContentData\n\t\t * @return {Backbone.View} Our MP Content View\n\t\t */\n\t\tgetformContentView: function( formContentData ) {\n\t\t\treturn FormContentView;\n\t\t},\n\n\t\t/**\n\t\t * When we load our front-end view, we filter the formContentData.\n\t\t * This turns the saved object into a Backbone Collection.\n\t\t * \n\t\t * @since 3.0\n\t\t * @param array formContentData current value of our formContentData.\n\t\t * @return Backbone.Collection\n\t\t */\n\t\tformContentLoad: function( formContentData, formModel ) {\n\t\t\t/*\n\t\t\t * If the data has already been converted, just return it.\n\t\t\t */\n\t\t\tif ( true === formContentData instanceof PartCollection ) return formContentData;\n\t\t\t/*\n\t\t\t * If the data isn't converted, but is an array, let's make sure it's part data.\n\t\t\t */\n\t\t\tif ( _.isArray( formContentData ) && 0 != _.isArray( formContentData ).length && 'undefined' != typeof _.first( formContentData ) && 'part' == _.first( formContentData ).type ) {\n\t\t\t\t/*\n\t\t\t\t * We have multi-part data. Let's convert it to a collection.\n\t\t\t\t */\n\t\t\t\tvar partCollection = new PartCollection( formContentData, { formModel: formModel } );\n\t\t\t} else {\n\t\t\t\t/*\n\t\t\t\t * We have unknown data. Create a new part collection and use the data as the content.\n\t\t\t\t */\n\t\t\t\tvar partCollection = new PartCollection( { formContentData: formContentData }, { formModel: formModel } );\n\t\t\t}\n\n\t\t\treturn partCollection;\n\t\t}\n\t});\n\n\treturn controller;\n} );\n","/**\n * Handles showing and hiding parts in response to Conditional Logic triggers.\n * \n * @package Ninja Forms Front-End\n * @subpackage Main App\n * @copyright (c) 2016 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/conditionalLogic',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tnfRadio.channel( 'condition:trigger' ).reply( 'show_part', this.showPart, this );\n\t\t\tnfRadio.channel( 'condition:trigger' ).reply( 'hide_part', this.hidePart, this );\n\t\t},\n\n\t\tshowPart: function( conditionModel, then ) {\n\t\t\tconditionModel.set( 'alreadyTriggered', true );\n\t\t\tthis.changePartVisibility( conditionModel, then, true );\n\t\t\tconditionModel.set( 'alreadyTriggered', false );\n\t\t},\n\n\t\thidePart: function( conditionModel, then ) {\n\t\t\tconditionModel.set( 'alreadyTriggered', true );\n\t\t\tthis.changePartVisibility( conditionModel, then, false );\n\t\t\tconditionModel.set( 'alreadyTriggered', false );\n\t\t},\n\n\t\tchangePartVisibility: function( conditionModel, then, visible ) {\n\t\t\tvar partCollection = conditionModel.collection.formModel.get( 'formContentData' );\n\t\t\tpartCollection.findWhere( { key: then.key } ).set( 'visible', visible );\n\n\t\t\t/*\n\t\t\t * Check our conditions again because we have just shown/hidden a part that could have conditions on it.\n\t\t\t */\n\t\t\tconditionModel.collection.each( function( model ) {\n\t\t\t\tif ( model != conditionModel && ! model.get( 'alreadyTriggered' ) ) {\n\t\t\t\t\tmodel.checkWhen();\n\t\t\t\t\tmodel.set( 'alreadyTriggered', true );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t});\n\n\treturn controller;\n} );\n","/**\n * Handles making sure that any google recaptcha fields render if they are on this part.\n * \n * @package Ninja Forms Front-End\n * @subpackage Main App\n * @copyright (c) 2016 WP Ninjas\n * @since 3.0\n */\ndefine( 'controllers/renderRecaptcha',[], function() {\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tthis.listenTo( nfRadio.channel( 'nfMP' ), 'change:part', this.changePart, this );\n\t\t},\n\n\t\tchangePart: function( conditionModel, then ) {\n\t\t\tjQuery( '.g-recaptcha' ).each( function() {\n\t\t\t\tvar opts = {\n\t\t\t\t\ttheme: jQuery( this ).data( 'theme' ),\n\t\t\t\t\tsitekey: jQuery( this ).data( 'sitekey' ),\n\t\t\t\t\tcallback: nf_recaptcha_response\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tgrecaptcha.render( jQuery( this )[0], opts );\n\t\t\t} );\n\t\t},\n\n\t});\n\n\treturn controller;\n} );\n","define( \n\t'controllers/loadControllers',[\n\t\t'controllers/conditionalLogic',\n\t\t'controllers/renderRecaptcha'\n\t], \n\tfunction\n\t(\n\t\tConditionalLogic,\n\t\tRenderRecaptcha\n\t)\n\t{\n\tvar controller = Marionette.Object.extend( {\n\t\tinitialize: function() {\n\t\t\tnew ConditionalLogic();\n\t\t\tnew RenderRecaptcha();\n\t\t}\n\n\t});\n\n\treturn controller;\n} );\n","var nfRadio = Backbone.Radio;\n\nrequire( [ 'controllers/loadFilters', 'controllers/loadControllers' ], function( LoadFilters, LoadControllers ) {\n\n\tvar NFMultiPart = Marionette.Application.extend( {\n\n\t\tinitialize: function( options ) {\n\t\t\t// console.log( 'init mp' );\n\t\t\tthis.listenTo( nfRadio.channel( 'form' ), 'before:filterData', this.loadFilters );\n\t\t\tthis.listenTo( nfRadio.channel( 'form' ), 'loaded', this.loadControllers );\n\t\t},\n\n\t\tloadFilters: function( formModel ) {\n\t\t\tnew LoadFilters();\n\t\t},\n\n\t\tloadControllers: function( formModel ) {\n\t\t\tnew LoadControllers();\n\t\t},\n\n\t\tonStart: function() {\n\t\t}\n\t} );\n\n\tvar nfMultiPart = new NFMultiPart();\n\tnfMultiPart.start();\n} );\ndefine(\"main\", function(){});\n\n","}());"],"sourceRoot":"/source/"}