From cb6240f82bae145817bfa9dd05b892073fc43e50 Mon Sep 17 00:00:00 2001
From: Justin
Date: Fri, 28 Oct 2016 21:19:21 +0000
Subject: [PATCH] fix FS urls; fix #100
---
fs-check.js | 52 +++++++++++++++++++++---------------------
fs-check.min.js | 7 +++---
fs-check.min.js.map | 2 +-
lang/en/fs-check-en.js | 2 +-
lang/es/fs-check-es.js | 2 +-
5 files changed, 33 insertions(+), 32 deletions(-)
diff --git a/fs-check.js b/fs-check.js
index bf8a618..5a51230 100644
--- a/fs-check.js
+++ b/fs-check.js
@@ -2509,31 +2509,6 @@ function isUndefined(obj){
return typeof obj === 'undefined';
}
},{"gedcomx-date":48,"marked":54,"mustache":55}],42:[function(_dereq_,module,exports){
-if (typeof Object.create === 'function') {
- // implementation from standard node.js 'util' module
- module.exports = function inherits(ctor, superCtor) {
- ctor.super_ = superCtor
- ctor.prototype = Object.create(superCtor.prototype, {
- constructor: {
- value: ctor,
- enumerable: false,
- writable: true,
- configurable: true
- }
- });
- };
-} else {
- // old school shim for old browsers
- module.exports = function inherits(ctor, superCtor) {
- ctor.super_ = superCtor
- var TempCtor = function () {}
- TempCtor.prototype = superCtor.prototype
- ctor.prototype = new TempCtor()
- ctor.prototype.constructor = ctor
- }
-}
-
-},{}],43:[function(_dereq_,module,exports){
// shim for using process in browser
var process = module.exports = {};
@@ -2595,6 +2570,31 @@ process.chdir = function (dir) {
throw new Error('process.chdir is not supported');
};
+},{}],43:[function(_dereq_,module,exports){
+if (typeof Object.create === 'function') {
+ // implementation from standard node.js 'util' module
+ module.exports = function inherits(ctor, superCtor) {
+ ctor.super_ = superCtor
+ ctor.prototype = Object.create(superCtor.prototype, {
+ constructor: {
+ value: ctor,
+ enumerable: false,
+ writable: true,
+ configurable: true
+ }
+ });
+ };
+} else {
+ // old school shim for old browsers
+ module.exports = function inherits(ctor, superCtor) {
+ ctor.super_ = superCtor
+ var TempCtor = function () {}
+ TempCtor.prototype = superCtor.prototype
+ ctor.prototype = new TempCtor()
+ ctor.prototype.constructor = ctor
+ }
+}
+
},{}],44:[function(_dereq_,module,exports){
module.exports = function isBuffer(arg) {
return arg && typeof arg === 'object'
@@ -3192,7 +3192,7 @@ function hasOwnProperty(obj, prop) {
}
}).call(this,_dereq_("/home/ubuntu/workspace/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js"),typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{"./support/isBuffer":44,"/home/ubuntu/workspace/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js":43,"inherits":42}],46:[function(_dereq_,module,exports){
+},{"./support/isBuffer":44,"/home/ubuntu/workspace/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js":42,"inherits":43}],46:[function(_dereq_,module,exports){
var util = _dereq_('util'),
Simple = _dereq_('./simple.js');
diff --git a/fs-check.min.js b/fs-check.min.js
index 344e934..b687454 100644
--- a/fs-check.min.js
+++ b/fs-check.min.js
@@ -1,7 +1,8 @@
!function(e){if("object"==typeof exports)module.exports=e();else if("function"==typeof define&&define.amd)define(e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.FSCheck=e()}}(function(){var define,module,exports;return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o0){var template={pid:person.id,personName:person.$getDisplayName(),personBirth:person.$getDisplayBirthDate(),parents:birthBeforeParentBirth};return utils.createOpportunity(this,person,template)}}}},{"../help":39,"../util":41}],2:[function(_dereq_,module,exports){var utils=_dereq_("../util"),GedcomXDate=_dereq_("gedcomx-date");module.exports={id:"childBeforeMarriage",type:"problem",signature:"relationships",help:["addingAndCorrecting","parentRelationshipType"],check:function(person,relationships,persons){var marriages=relationships.getSpouseRelationships(),childrenBeforeMarriage=[];if(marriages.length===0){return}for(var i=0;i0){var children=[];for(var i=0;i1){duplicates.push(simplified[s])}}if(duplicates.length>0){var template={pid:person.id,name:person.$getDisplayName(),duplicates:duplicates};return utils.createOpportunity(this,person,template)}}}},{"../help":39,"../util":41}],6:[function(_dereq_,module,exports){var utils=_dereq_("../util"),help=_dereq_("../help");module.exports={id:"manyAlternateNames",type:"cleanup",signature:"person",help:["addingAndCorrecting","customEvents"],check:function(person){var names=person.$getNames();if(names&&names.length>=6){var alternates=[];for(var i=0;i0){var spouses=[];for(var i=0;i0){var spouses=[];for(var i=0;i1,spouse:spouses[0],spouses:spouses};return utils.createOpportunity(this,person,template)}}}},{"../util.js":41}],9:[function(_dereq_,module,exports){var utils=_dereq_("../util.js");module.exports={id:"missingBirth",type:"person",signature:"person",help:[],check:function(person){var birth=person.$getBirth();if(birth){if(utils.getFactPlace(birth)!==undefined||utils.getFactYear(birth)!==undefined){return}}var template={name:person.$getDisplayName(),pid:person.id};return utils.createOpportunity(this,person,template,utils.gensearchPerson(person))}}},{"../util.js":41}],10:[function(_dereq_,module,exports){var utils=_dereq_("../util.js");module.exports={id:"missingBirthDate",type:"person",signature:"person",help:[],check:function(person){var birth=person.$getBirth();if(!birth){return}if(utils.getFactYear(birth)!==undefined){return}var place=utils.getFactPlace(birth);if(place===undefined){return}var template={name:person.$getDisplayName(),pid:person.id};return utils.createOpportunity(this,person,template,utils.gensearchPerson(person))}}},{"../util.js":41}],11:[function(_dereq_,module,exports){var utils=_dereq_("../util.js");module.exports={id:"missingBirthPlace",type:"person",signature:"person",help:[],check:function(person){var birth=person.$getBirth();if(!birth){return}if(utils.getFactPlace(birth)!==undefined){return}var year=utils.getFactYear(birth);if(year===undefined){return}var template={name:person.$getDisplayName(),pid:person.id};return utils.createOpportunity(this,person,template,utils.gensearchPerson(person))}}},{"../util.js":41}],12:[function(_dereq_,module,exports){var utils=_dereq_("../util.js");module.exports={id:"missingBirthSource",type:"source",signature:"personSource",help:[],check:function(person,sourceRefs){var birth=person.$getBirth();if(!birth){return}var year=utils.getFactYear(birth),place=utils.getFactPlace(birth);if(year===undefined||place===undefined){return}var sourceArr=sourceRefs.getSourceRefs(),tagged=false;for(var x in sourceArr){if(sourceArr[x].$getTags().indexOf("http://gedcomx.org/Birth")!==-1){tagged=true}}if(!tagged){var findarecord={tags:["birth"],from:year?year-3:undefined,to:year?year+3:undefined,place:place};var template={name:person.$getDisplayName(),pid:person.id};return utils.createOpportunity(this,person,template,utils.gensearchPerson(person))}}}},{"../util.js":41}],13:[function(_dereq_,module,exports){var utils=_dereq_("../util.js");module.exports={id:"missingDeath",type:"person",signature:"person",help:[],check:function(person){var death=person.$getDeath();if(death){if(utils.getFactPlace(death)!==undefined||utils.getFactYear(death)!==undefined){return}}var template={name:person.$getDisplayName(),pid:person.id};return utils.createOpportunity(this,person,template,utils.gensearchPerson(person))}}},{"../util.js":41}],14:[function(_dereq_,module,exports){var utils=_dereq_("../util.js");module.exports={id:"missingDeathDate",type:"person",signature:"person",help:[],check:function(person){var death=person.$getDeath();if(!death){return}if(utils.getFactYear(death)!==undefined){return}var place=utils.getFactPlace(death);if(place===undefined){return}var template={name:person.$getDisplayName(),pid:person.id};return utils.createOpportunity(this,person,template,utils.gensearchPerson(person))}}},{"../util.js":41}],15:[function(_dereq_,module,exports){var utils=_dereq_("../util.js");module.exports={id:"missingDeathPlace",type:"person",signature:"person",help:[],check:function(person){var death=person.$getDeath();if(!death){return}if(utils.getFactPlace(death)!==undefined){return}var year=utils.getFactYear(death);if(year===undefined){return}var template={name:person.$getDisplayName(),pid:person.id};return utils.createOpportunity(this,person,template,utils.gensearchPerson(person))}}},{"../util.js":41}],16:[function(_dereq_,module,exports){var utils=_dereq_("../util.js");module.exports={id:"missingDeathSource",type:"source",signature:"personSource",help:[],check:function(person,sourceRefs){var death=person.$getDeath();if(!death){return}var year=utils.getFactYear(death),place=utils.getFactPlace(death);if(year===undefined||place==undefined){return}var sourceArr=sourceRefs.getSourceRefs(),tagged=false;for(var x in sourceArr){if(sourceArr[x].$getTags().indexOf("http://gedcomx.org/Death")!==-1){tagged=true}}if(!tagged){var findarecord={tags:["death"],from:year?year-3:undefined,to:year?year+3:undefined,place:place};var template={name:person.$getDisplayName(),pid:person.id};return utils.createOpportunity(this,person,template,utils.gensearchPerson(person))}}}},{"../util.js":41}],17:[function(_dereq_,module,exports){var utils=_dereq_("../util.js");module.exports={id:"missingFather",type:"family",signature:"child",help:[],check:function(child,mother,father,childRelationship){if(!father){var birth=child.$getBirth(),birthYear,birthPlace;if(birth){birthYear=utils.getFactYear(birth);birthPlace=utils.getFactPlace(birth)}var template={mothername:mother.$getDisplayName(),mid:mother.id,name:child.$getDisplayName(),pid:child.id};var gensearch={givenName:child.$getGivenName(),familyName:child.$getSurname(),birthPlace:birthPlace,birthDate:birthYear+"",motherGivenName:mother.$getGivenName(),motherFamilyName:mother.$getSurname()};return utils.createOpportunity(this,child,template,gensearch)}}}},{"../util.js":41}],18:[function(_dereq_,module,exports){var utils=_dereq_("../util"),help=_dereq_("../help");module.exports={id:"missingGivenName",type:"person",signature:"person",help:["addingAndCorrecting","customEvents"],check:function(person){var givenName=person.$getGivenName(),surname=person.$getSurname();if(surname&&(givenName===undefined||givenName==="")){return utils.createOpportunity(this,person,{},utils.gensearchPerson(person))}}}},{"../help":39,"../util":41}],19:[function(_dereq_,module,exports){var utils=_dereq_("../util");module.exports={id:"missingMarriageDate",type:"family",signature:"marriage",help:[],check:function(wife,husband,marriage){if(!wife||!husband){return}var facts=marriage.$getFacts(),count=0;for(var x in facts){if(facts[x].type=="http://gedcomx.org/Marriage"){count++}}if(count!=1){return}var marriageFact=marriage.$getMarriageFact();if(utils.getFactYear(marriageFact)!==undefined){return}var place=utils.getFactPlace(marriageFact);if(place===undefined){return}var template={crid:marriage.id,wid:wife.id,hid:husband.id,wifeName:wife.$getDisplayName(),husbandName:husband.$getDisplayName()};var gensearch=utils.gensearchPerson(wife);gensearch.marriagePlace=place;gensearch.spouseGivenName=husband.$getGivenName();gensearch.spouseFamilyName=husband.$getSurname();return utils.createOpportunity(this,wife,template,gensearch)}}},{"../util":41}],20:[function(_dereq_,module,exports){var utils=_dereq_("../util");module.exports={id:"missingMarriageFact",type:"family",signature:"marriage",help:[],check:function(wife,husband,marriage){if(!wife||!husband){return}var facts=marriage.$getFacts(),count=0;for(var x in facts){if(facts[x].type=="http://gedcomx.org/Marriage"){count++}}if(count>1){return}var marriageFact=marriage.$getMarriageFact();if(marriageFact&&(utils.getFactYear(marriageFact)!==undefined||utils.getFactPlace(marriageFact)!==undefined)){return}var template={crid:marriage.id,wid:wife.id,hid:husband.id,wifeName:wife.$getDisplayName(),husbandName:husband.$getDisplayName()};var gensearch=utils.gensearchPerson(wife);gensearch.spouseGivenName=husband.$getGivenName();gensearch.spouseFamilyName=husband.$getSurname();return utils.createOpportunity(this,wife,template,gensearch)}}},{"../util":41}],21:[function(_dereq_,module,exports){var utils=_dereq_("../util.js");module.exports={id:"missingMarriagePlace",type:"family",signature:"marriage",help:[],check:function(wife,husband,marriage){if(!wife||!husband){return}var facts=marriage.$getFacts(),count=0;for(var x in facts){if(facts[x].type=="http://gedcomx.org/Marriage"){count++}}if(count!=1){return}var marriageFact=marriage.$getMarriageFact();if(utils.getFactPlace(marriageFact)!==undefined){return}var date=utils.getFactYear(marriageFact);if(date===undefined){return}var template={crid:marriage.id,wid:wife.id,hid:husband.id,wifeName:wife.$getDisplayName(),husbandName:husband.$getDisplayName()};var gensearch=utils.gensearchPerson(wife);gensearch.marriageDate=date+"";gensearch.spouseGivenName=husband.$getGivenName();gensearch.spouseFamilyName=husband.$getSurname();return utils.createOpportunity(this,wife,template,gensearch)}}},{"../util.js":41}],22:[function(_dereq_,module,exports){var utils=_dereq_("../util");module.exports={id:"missingMarriageSource",type:"source",signature:"marriageSource",help:[],check:function(wife,husband,marriage,sourceRefs){var marriageFact=marriage.$getMarriageFact();if(!marriageFact){return}var person=wife,spouse=husband;if(!person){return}var facts=marriage.$getFacts(),count=0;for(var x in facts){if(facts[x].type=="http://gedcomx.org/Marriage"){count++}}if(count!=1){return}var marriageYear=utils.getFactYear(marriageFact),marriagePlace=utils.getFactPlace(marriageFact);if(marriageYear==undefined||marriagePlace==undefined){return}if(sourceRefs.length>0){return}var template={cid:marriage.id,couple:wife.$getDisplayName()+" and "+husband.$getDisplayName(),wifeName:wife.$getDisplayName(),husbandName:husband.$getDisplayName(),wid:wife.id,hid:husband.id};var gensearch=utils.gensearchPerson(person);gensearch.marriageDate=marriageYear+"";gensearch.marriagePlace=marriagePlace;if(spouse!==undefined){gensearch.spouseGivenName=spouse.$getGivenName();gensearch.spouseFamilyName=spouse.$getSurname()}return utils.createOpportunity(this,person,template,gensearch)}}},{"../util":41}],23:[function(_dereq_,module,exports){var utils=_dereq_("../util.js");module.exports={id:"missingMother",type:"family",signature:"child",help:[],check:function(child,mother,father,childRelationship){if(!mother){var birth=child.$getBirth(),birthYear,birthPlace;if(birth){birthYear=utils.getFactYear(birth);birthPlace=utils.getFactPlace(birth)}var template={fathername:father.$getDisplayName(),fid:father.id,name:child.$getDisplayName(),pid:child.id};var gensearch={givenName:child.$getGivenName(),familyName:child.$getSurname(),birthPlace:birthPlace,birthDate:birthYear+"",fatherGivenName:father.$getGivenName(),fatherFamilyName:father.$getSurname()};return utils.createOpportunity(this,child,template,gensearch)}}}},{"../util.js":41}],24:[function(_dereq_,module,exports){var utils=_dereq_("../util"),help=_dereq_("../help");module.exports={id:"missingName",type:"person",signature:"person",help:["addingAndCorrecting","customEvents"],check:function(person){if(!person.names||person.names.length===0){return utils.createOpportunity(this,person,{},utils.gensearchPerson(person))}}}},{"../help":39,"../util":41}],25:[function(_dereq_,module,exports){var utils=_dereq_("../util.js");module.exports={id:"missingParents",type:"family",signature:"parents",help:[],check:function(child,parents){if(!parents||parents.length===0){var birth=child.$getBirth(),birthYear,birthPlace;if(birth){birthYear=utils.getFactYear(birth);birthPlace=utils.getFactPlace(birth)}var template={name:child.$getDisplayName(),pid:child.id};return utils.createOpportunity(this,child,template,utils.gensearchPerson(child))}}}},{"../util.js":41}],26:[function(_dereq_,module,exports){var utils=_dereq_("../util"),help=_dereq_("../help");module.exports={id:"missingSurname",type:"person",signature:"person",help:["addingAndCorrecting","customEvents"],check:function(person){var givenName=person.$getGivenName(),surname=person.$getSurname();if(givenName&&(surname===undefined||surname==="")){return utils.createOpportunity(this,person,{},utils.gensearchPerson(person))}}}},{"../help":39,"../util":41}],27:[function(_dereq_,module,exports){var utils=_dereq_("../util"),help=_dereq_("../help");module.exports={id:"multipleMarriageFacts",type:"cleanup",signature:"marriage",help:["addingAndCorrecting"],check:function(wife,husband,marriage){if(!wife||!husband){return}var facts=marriage.$getFacts(),count=0;for(var x in facts){if(facts[x].type==="http://gedcomx.org/Marriage"){count++}}if(count<2){return}var template={crid:marriage.id,wifeName:wife.$getDisplayName(),husbandName:husband.$getDisplayName()};return utils.createOpportunity(this,wife,template,utils.gensearchPerson(wife))}}},{"../help":39,"../util":41}],28:[function(_dereq_,module,exports){var utils=_dereq_("../util"),help=_dereq_("../help");module.exports={id:"multipleParents",type:"family",signature:"relationships",help:["addingAndCorrecting","parentRelationshipType"],check:function(person,relationships,people){var parentRelationships=relationships.getParentRelationships();if(parentRelationships.length<2){return}var biologicalParentIds={};for(var i=0;i2){var template={name:person.$getDisplayName(),pid:person.id};return utils.createOpportunity(this,person,template)}}}},{"../help":39,"../util":41}],29:[function(_dereq_,module,exports){var utils=_dereq_("../util"),help=_dereq_("../help"),regex=/ or /;module.exports={id:"orInName",type:"cleanup",signature:"person",help:["addingAndCorrecting","customEvents"],check:function(person){var name=person.$getPreferredName(),nameText=name&&name.$getFullText()?name.$getFullText():"",nameMatches=nameText.match(regex),template={pid:person.id};if(nameMatches){template.preferred=true;return utils.createOpportunity(this,person,template)}else if(person.$getNames().length>1){var names=person.$getNames(),badNames=[];for(var i=0;i0){template.badNames=badNames;template.preferred=false;return utils.createOpportunity(this,person,template)}}}}},{"../help":39,"../util":41}],30:[function(_dereq_,module,exports){var utils=_dereq_("../util"),help=_dereq_("../help");module.exports={id:"possibleDuplicates",type:"problem",signature:"duplicates",help:["mergingDuplicates"],check:function(person,matches){var count=matches.getResultsCount();if(count===0){return}var goodMatches=0,results=matches.getSearchResults();for(var i=0;i=3){goodMatches++}}if(goodMatches===0){return}var template={pid:person.id,name:person.$getDisplayName(),count:goodMatches,singular:goodMatches===1};return utils.createOpportunity(this,person,template)}}},{"../help":39,"../util":41}],31:[function(_dereq_,module,exports){var utils=_dereq_("../util"),help=_dereq_("../help");module.exports={id:"recordHints",type:"source",signature:"recordHints",help:["recordHints"],check:function(person,matches){var count=matches.getResultsCount();if(count===0){return}var results=matches.getSearchResults(),titles=[];for(var i=0;i\!\@\#\$\%\^\&\*\+\=\/\|\\\?\_]/g;module.exports={id:"unusualCharactersInName",type:"cleanup",signature:"person",help:["addingAndCorrecting","customEvents"],check:function(person){var name=person.$getPreferredName(),nameText=name&&name.$getFullText()?name.$getFullText():"",nameMatches=nameText.match(badChars),template;if(nameMatches){template={chars:"`"+nameMatches.join("`, `")+"`",pid:person.id,brackets:nameText.match(/(\([^\)]*\))|(\{[^\}]*\})|(\[[^\]]*\])|(\<[^\>]*\>)/)!==null,preferred:true}}else if(person.$getNames().length>1){var names=person.$getNames(),badNames=[];for(var i=0;i0){template={badNames:badNames,pid:person.id,preferred:false}}}if(template){return utils.createOpportunity(this,person,template)}}}},{"../help":39,"../util":41}],39:[function(_dereq_,module,exports){module.exports={addingAndCorrecting:"https://familysearch.org/ask/salesforce/viewArticle?urlname=Adding-and-Correcting-Information-about-People-and-Relationships",customEvents:"https://familysearch.org/ask/salesforce/viewArticle?urlname=Adding-a-Custom-Event-or-Fact-to-a-Person",deletingInformation:"https://familysearch.org/ask/salesforce/viewArticle?urlname=Deleting-a-Person-from-the-System",mergingDuplicates:"https://familysearch.org/ask/salesforce/viewArticle?urlname=Merging-Duplicate-Records-in-Family-Tree-1381814853391",nonexactDates:"https://familysearch.org/ask/salesforce/viewArticle?urlname=Do-not-know-exact-birth-date-or-death-date",recordHints:"https://familysearch.org/ask/salesforce/viewArticle?urlname=Record-Hints",standardizing:"https://familysearch.org/ask/salesforce/viewArticle?urlname=Entering-Standardized-Dates-and-Places",parentRelationshipType:"https://familysearch.org/ask/salesforce/viewArticle?urlname=Adding-Changing-and-Deleting-Relationship-Types-between-Parents-and-Children"}},{}],40:[function(_dereq_,module,exports){var utils=_dereq_("./util"),help=_dereq_("./help");var ids={};var signatures={};var types={};var languages={};module.exports={all:function(){return checks},id:function(checkId){return ids[checkId]},signature:function(signature){return signatures[signature]},signatures:function(){var list=[];for(var s in signatures){list.push(s)}return list},type:function(type){return types[type]},types:function(){var list=[];for(var t in types){list.push(t)}return list},add:function(check,templates){ids[check.id]=check;var signature=check.signature;if(!signatures[signature]){signatures[signature]=[]}signatures[signature].push(check);var type=check.type;if(!types[type]){types[type]=[]}types[type].push(check);if(templates){for(var lang in templates){if(!languages[lang]){languages[lang]={code:lang,help:{},checks:{}}}languages[lang].checks[check.id]=templates[lang]}}},remove:function(checkId){var check=ids[checkId];
-if(check){delete ids[checkId];var signature=check.signature;for(var i=0;i"+text+"\n"};utils.getFactYear=function(fact){if(fact.$getFormalDate()){var simple=utils.getSimpleFormalDate(fact.$getFormalDate());if(simple){return simple.getYear()}}else if(fact.$getDate()){return utils.extractYearFromDateString(fact.$getDate())}};utils.getFactPlace=function(fact){if(fact.$getNormalizedPlace()){return fact.$getNormalizedPlace()}else if(fact.$getPlace()){return fact.$getPlace()}};utils.getFormalDate=function(fact){if(fact.$getFormalDate()){var date=utils.getSimpleFormalDate(fact.$getFormalDate());if(date){return date.toFormalString()}}else if(fact.$getDate()){if(/^\d{4}$/.test(fact.$getDate())){return"+"+fact.$getDate()}else{var date=new Date(fact.$getDate());if(isNaN(date.getTime())){return}else{return GedcomXDate.fromJSDate(date).toFormalString().substring(0,11)}}}};utils.getSimpleFormalDate=function(formalDateString){var date=new GedcomXDate(formalDateString);if(date.getType()!="single"){if(date.getStart()&&!date.getEnd()){date=date.getStart()}else if(!date.getStart()&&date.getEnd()){date=date.getEnd()}else{var start=date.getStart(),duration=date.getDuration(),halfDuration=GedcomXDate.multiplyDuration(duration,.5);date=GedcomXDate.addDuration(start,halfDuration)}}return date};utils.extractYearFromDateString=function(date){if(/^\d{4}$/.test(date)){return date}else{var year=new Date(date).getFullYear();if(parseInt(year)==year){return year}}};utils.markdown=function(text,data,partials){return marked(mustache.render(text,data,partials),{renderer:renderer})};utils.gensearchPerson=function(person){var gensearch={};var givenName=person.$getGivenName();if(givenName){gensearch.givenName=givenName}var familyName=person.$getSurname();if(familyName){gensearch.familyName=familyName}var birth=person.$getBirth();if(birth!==undefined){var birthPlace=utils.getFactPlace(birth);if(birthPlace){gensearch.birthPlace=birthPlace}var birthDate=utils.getFactYear(birth);if(birthDate){gensearch.birthDate=birthDate+""}}var death=person.$getDeath();if(death!==undefined){var deathPlace=utils.getFactPlace(death);if(deathPlace){gensearch.deathPlace=deathPlace}var deathDate=utils.getFactYear(death);if(deathDate){gensearch.deathDate=deathDate+""}}return gensearch};utils.compareFormalDates=function(date1,date2){return GedcomXDate.compare(date1,date2)};utils.createOpportunity=function(check,person,template,gensearch){return{id:check.id+":"+person.id,type:check.type,checkId:check.id,personId:person.id,person:person,gensearch:gensearch,template:template}};utils.isFullDate=function(date){if(isString(date)){return date.length>=11}else{try{if(isUndefined(date.getYear())||isUndefined(date.getMonth())||isUndefined(date.getDay())){return false}else{return true}}catch(e){throw new Error("Expected either a formal date string or a GedcomXDate simple object.")}}};utils.ensureFullDate=function(date,newMonth,newDay){try{if(!newMonth){newMonth=1}if(newMonth>12){newMonth=12}if(!newDay){newDay=1}if(isUndefined(date.getMonth())){date._month=newMonth}if(isUndefined(date.getDay())){var validDayMax=GedcomXDate.daysInMonth(date.getMonth(),date.getYear());if(newDay>validDayMax){newDay=validDayMax}date._day=newDay}}catch(e){throw new Error("Expected date to be a GedcomXDate object.")}};utils.isBiologicalChildAndParents=function(childAndParents){var fatherFacts=childAndParents.$getFatherFacts(),motherFacts=childAndParents.$getMotherFacts();if(childAndParents.$getFatherId()){if(!fatherFacts||!containsBiologicalParentFact(fatherFacts)){return false}}if(childAndParents.$getMotherId()){if(!motherFacts||!containsBiologicalParentFact(motherFacts)){return false}}return true};function containsBiologicalParentFact(facts){for(var i=0;i0){var fn=queue.shift();fn()}}},true);return function nextTick(fn){queue.push(fn);window.postMessage("process-tick","*")}}return function nextTick(fn){setTimeout(fn,0)}}();process.title="browser";process.browser=true;process.env={};process.argv=[];function noop(){}process.on=noop;process.once=noop;process.off=noop;process.emit=noop;process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")}},{}],44:[function(_dereq_,module,exports){module.exports=function isBuffer(arg){return arg&&typeof arg==="object"&&typeof arg.copy==="function"&&typeof arg.fill==="function"&&typeof arg.readUInt8==="function"}},{}],45:[function(_dereq_,module,exports){(function(process,global){var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(!isString(f)){var objects=[];for(var i=0;i=len)return x;switch(x){case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}});for(var x=args[i];i=3)ctx.depth=arguments[2];if(arguments.length>=4)ctx.colors=arguments[3];if(isBoolean(opts)){ctx.showHidden=opts}else if(opts){exports._extend(ctx,opts)}if(isUndefined(ctx.showHidden))ctx.showHidden=false;if(isUndefined(ctx.depth))ctx.depth=2;if(isUndefined(ctx.colors))ctx.colors=false;if(isUndefined(ctx.customInspect))ctx.customInspect=true;if(ctx.colors)ctx.stylize=stylizeWithColor;return formatValue(ctx,obj,ctx.depth)}exports.inspect=inspect;inspect.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]};inspect.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"};function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];if(style){return"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m"}else{return str}}function stylizeNoColor(str,styleType){return str}function arrayToHash(array){var hash={};array.forEach(function(val,idx){hash[val]=true});return hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&!(value.constructor&&value.constructor.prototype===value)){var ret=value.inspect(recurseTimes,ctx);if(!isString(ret)){ret=formatValue(ctx,ret,recurseTimes)}return ret}var primitive=formatPrimitive(ctx,value);if(primitive){return primitive}var keys=Object.keys(value);var visibleKeys=arrayToHash(keys);if(ctx.showHidden){keys=Object.getOwnPropertyNames(value)}if(isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0)){return formatError(value)}if(keys.length===0){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}if(isDate(value)){return ctx.stylize(Date.prototype.toString.call(value),"date")}if(isError(value)){return formatError(value)}}var base="",array=false,braces=["{","}"];if(isArray(value)){array=true;braces=["[","]"]}if(isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)){base=" "+RegExp.prototype.toString.call(value)}if(isDate(value)){base=" "+Date.prototype.toUTCString.call(value)}if(isError(value)){base=" "+formatError(value)}if(keys.length===0&&(!array||value.length==0)){return braces[0]+base+braces[1]}if(recurseTimes<0){if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}else{return ctx.stylize("[Object]","special")}}ctx.seen.push(value);var output;if(array){output=formatArray(ctx,value,recurseTimes,visibleKeys,keys)}else{output=keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)})}ctx.seen.pop();return reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}if(isNumber(value))return ctx.stylize(""+value,"number");if(isBoolean(value))return ctx.stylize(""+value,"boolean");if(isNull(value))return ctx.stylize("null","null")}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){var output=[];for(var i=0,l=value.length;i-1){if(array){str=str.split("\n").map(function(line){return" "+line}).join("\n").substr(2)}else{str="\n"+str.split("\n").map(function(line){return" "+line}).join("\n")}}}else{str=ctx.stylize("[Circular]","special")}}if(isUndefined(name)){if(array&&key.match(/^\d+$/)){return str}name=JSON.stringify(""+key);if(name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)){name=name.substr(1,name.length-2);name=ctx.stylize(name,"name")}else{name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'");name=ctx.stylize(name,"string")}}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0;var length=output.reduce(function(prev,cur){numLinesEst++;if(cur.indexOf("\n")>=0)numLinesEst++;return prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0);if(length>60){return braces[0]+(base===""?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]}return braces[0]+base+" "+output.join(", ")+" "+braces[1]}function isArray(ar){return Array.isArray(ar)}exports.isArray=isArray;function isBoolean(arg){return typeof arg==="boolean"}exports.isBoolean=isBoolean;function isNull(arg){return arg===null}exports.isNull=isNull;function isNullOrUndefined(arg){return arg==null}exports.isNullOrUndefined=isNullOrUndefined;function isNumber(arg){return typeof arg==="number"}exports.isNumber=isNumber;function isString(arg){return typeof arg==="string"}exports.isString=isString;function isSymbol(arg){return typeof arg==="symbol"}exports.isSymbol=isSymbol;function isUndefined(arg){return arg===void 0}exports.isUndefined=isUndefined;function isRegExp(re){return isObject(re)&&objectToString(re)==="[object RegExp]"}exports.isRegExp=isRegExp;function isObject(arg){return typeof arg==="object"&&arg!==null}exports.isObject=isObject;function isDate(d){return isObject(d)&&objectToString(d)==="[object Date]"}exports.isDate=isDate;function isError(e){return isObject(e)&&(objectToString(e)==="[object Error]"||e instanceof Error)}exports.isError=isError;function isFunction(arg){return typeof arg==="function"}exports.isFunction=isFunction;function isPrimitive(arg){return arg===null||typeof arg==="boolean"||typeof arg==="number"||typeof arg==="string"||typeof arg==="symbol"||typeof arg==="undefined"}exports.isPrimitive=isPrimitive;exports.isBuffer=_dereq_("./support/isBuffer");function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return n<10?"0"+n.toString(10):n.toString(10)}var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function timestamp(){var d=new Date;var time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}exports.log=function(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))};exports.inherits=_dereq_("inherits");exports._extend=function(origin,add){if(!add||!isObject(add))return origin;var keys=Object.keys(add);var i=keys.length;while(i--){origin[keys[i]]=add[keys[i]]}return origin};function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}}).call(this,_dereq_("/home/ubuntu/workspace/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js"),typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./support/isBuffer":44,"/home/ubuntu/workspace/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js":43,inherits:42}],46:[function(_dereq_,module,exports){var util=_dereq_("util"),Simple=_dereq_("./simple.js");function Approximate(){if(arguments.length>0){if(arguments[0].length<1||arguments[0].charAt(0)!="A"){throw new Error("Invalid Approximate Date")}try{Simple.call(this,arguments[0].substr(1))}catch(e){throw new Error(e.message+" in Approximate Date")}}else{Simple.call(this)}}util.inherits(Approximate,Simple);Approximate.prototype.isApproximate=function(){return true};Approximate.prototype.toFormalString=function(){return"A"+Approximate.super_.prototype.toFormalString.call(this)};module.exports=Approximate},{"./simple.js":51,util:45}],47:[function(_dereq_,module,exports){function Duration(str){if(str.length<1||str.charAt(0)!="P"){throw new Error("Invalid Duration")}var duration=str.substr(1);if(duration.length<1){throw new Error("Invalid Duration")}if(/\s/.test(duration)){throw new Error("Non normalized durations not implemented")}else{this._parseNormalized(duration)}}Duration.prototype._parseNormalized=function(str){var duration=str.split(""),currentNum="",inTime=false,seen=[],valid=["Y","Mo","D","T","H","Mi","S"];for(var x in duration){var character=duration[x];if(/[0-9]/.test(character)){currentNum+=character+"";continue}switch(character){case"Y":if(currentNum.length<1){throw new Error("Invalid Duration: invalid years")}if(seen.indexOf("Y")!=-1){throw new Error("Invalid Duration: duplicate years")}if(valid.indexOf("Y")==-1){throw new Error("Invalid Duration: years out of order")}this._years=parseInt(currentNum,10);seen.push("Y");valid=valid.slice(valid.indexOf("Y")+1);currentNum="";break;case"M":if(inTime){if(currentNum.length<1){throw new Error("Invalid Duration: invalid minutes")}if(seen.indexOf("Mi")!=-1){throw new Error("Invalid Duration: duplicate minutes")}if(valid.indexOf("Mi")==-1){throw new Error("Invalid Duration: minutes out of order")}this._minutes=parseInt(currentNum,10);seen.push("Mi");valid=valid.slice(valid.indexOf("Mi")+1);currentNum=""}else{if(currentNum.length<1){throw new Error("Invalid Duration: invalid months")}if(seen.indexOf("Mo")!=-1){throw new Error("Invalid Duration: duplicate months")}if(valid.indexOf("Mo")==-1){throw new Error("Invalid Duration: months out of order")}this._months=parseInt(currentNum,10);valid=valid.slice(valid.indexOf("Mo")+1);seen.push("Mo");currentNum=""}break;case"D":if(currentNum.length<1){throw new Error("Invalid Duration: invalid days")}if(seen.indexOf("D")!=-1){throw new Error("Invalid Duration: duplicate days")}if(valid.indexOf("D")==-1){throw new Error("Invalid Duration: days out of order")}this._days=parseInt(currentNum,10);seen.push("D");valid=valid.slice(valid.indexOf("D")+1);currentNum="";break;case"H":if(!inTime){throw new Error("Invalid Duration: Missing T before hours")}if(currentNum.length<1){throw new Error("Invalid Duration: invalid hours")}if(seen.indexOf("H")!=-1){throw new Error("Invalid Duration: duplicate hours")}if(valid.indexOf("H")==-1){throw new Error("Invalid Duration: hours out of order")}this._hours=parseInt(currentNum,10);seen.push("H");valid=valid.slice(valid.indexOf("H")+1);currentNum="";break;case"S":if(!inTime){throw new Error("Invalid Duration: Missing T before seconds")}if(currentNum.length<1){throw new Error("Invalid Duration: invalid seconds")}if(seen.indexOf("S")!=-1){throw new Error("Invalid Duration: duplicate seconds")}this._seconds=parseInt(currentNum,10);seen.push("S");valid=[];currentNum="";break;case"T":if(seen.indexOf("T")!=-1){throw new Error("Invalid Duration: duplicate T")}inTime=true;seen.push("T");valid=valid.slice(valid.indexOf("T")+1);break;default:throw new Error("Invalid Duration: Unknown Letter "+character)}}if(currentNum!=""){throw new Error("Invalid Duration: No letter after "+currentNum)}};Duration.prototype.getType=function(){return"duration"};Duration.prototype.isApproximate=function(){return false};Duration.prototype.getYears=function(){return this._years};Duration.prototype.getMonths=function(){return this._months};Duration.prototype.getDays=function(){return this._days};Duration.prototype.getHours=function(){return this._hours};Duration.prototype.getMinutes=function(){return this._minutes};Duration.prototype.getSeconds=function(){return this._seconds};Duration.prototype.toFormalString=function(){var duration="P";if(this._years){duration+=this._years+"Y"}if(this._months){duration+=this._months+"M"}if(this._days){duration+=this._days+"D"}if(this._hours||this._minutes||this._seconds){duration+="T";if(this._hours){duration+=this._hours+"H"}if(this._minutes){duration+=this._minutes+"M"}if(this._seconds){duration+=this._seconds+"S"}}return duration};module.exports=Duration},{}],48:[function(_dereq_,module,exports){var GedUtil=_dereq_("./util.js"),Simple=_dereq_("./simple.js"),Approximate=_dereq_("./approximate.js"),Recurring=_dereq_("./recurring.js"),Range=_dereq_("./range.js");function GedcomXDate(str){if(str==""){throw new Error("Invalid Date")}if(str.charAt(0)=="R"){return new Recurring(str)}else if(/\//.test(str)){return new Range(str)}else if(str.charAt(0)=="A"){return new Approximate(str)}else{return new Simple(str)}}GedcomXDate.version="0.3.2";GedcomXDate.addDuration=GedUtil.addDuration;GedcomXDate.multiplyDuration=GedUtil.multiplyDuration;GedcomXDate.getDuration=GedUtil.getDuration;GedcomXDate.daysInMonth=GedUtil.daysInMonth;GedcomXDate.now=GedUtil.now;GedcomXDate.fromJSDate=GedUtil.fromJSDate;GedcomXDate.compare=GedUtil.compare;module.exports=GedcomXDate},{"./approximate.js":46,"./range.js":49,"./recurring.js":50,"./simple.js":51,"./util.js":53}],49:[function(_dereq_,module,exports){var GedUtil=_dereq_("./util.js"),Simple=_dereq_("./simple.js"),Duration=_dereq_("./duration.js"),Approximate=_dereq_("./approximate.js");function Range(str){var range=str;if(range.charAt(0)=="A"){this._approximate=true;range=str.substr(1)}var parts=range.split("/");if(parts.length!=2||!parts[0]&&!parts[1]){throw new Error("Invalid Date Range")}if(parts[0]){try{this.start=new Simple(parts[0])}catch(e){throw new Error(e.message+" in Range Start Date")}}if(parts[1]){if(parts[1].charAt(0)=="P"){if(!this.start){throw new Error("A Range may not end with a duration if missing a start date")}try{this.duration=new Duration(parts[1])}catch(e){throw new Error(e.message+" in Range End Date")}this.end=GedUtil.addDuration(this.start,this.duration)}else{try{this.end=new Simple(parts[1])}catch(e){throw new Error(e.message+" in Range End Date")}if(this.start){this.duration=GedUtil.getDuration(this.start,this.end)}}}}Range.prototype.getType=function(){return"range"};Range.prototype.isApproximate=function(){if(this._approximate){return true}else{return false}};Range.prototype.getStart=function(){return this.start};Range.prototype.getDuration=function(){return this.duration};Range.prototype.getEnd=function(){return this.end};Range.prototype.toFormalString=function(){var range="";if(this._approximate){range+="A"}if(this.start){range+=this.start.toFormalString()}range+="/";if(this.duration){range+=this.duration.toFormalString()}else if(this.end){range+=this.end.toFormalString()}return range};module.exports=Range},{"./approximate.js":46,"./duration.js":47,"./simple.js":51,"./util.js":53}],50:[function(_dereq_,module,exports){var util=_dereq_("util"),GedUtil=_dereq_("./util.js"),Range=_dereq_("./range.js");function Recurring(str){var parts=str.split("/");if(str.charAt(0)!="R"||parts.length!=3){throw new Error("Invalid Recurring Date")}if(!parts[1]||!parts[2]){throw new Error("Recurring must have a start and end")}var countNum=parts[0].substr(1);if(countNum){if(!/^[0-9]+$/.test(countNum)){throw new Error("Invalid recurrence count: not a number")}this.count=parseInt(countNum,10);if(this.count<0)throw new Error("Invalid recurrence count")}Range.call(this,parts[1]+"/"+parts[2]);delete this.end;if(this.count){this.end=this.getNth(this.count)}}util.inherits(Recurring,Range);Recurring.prototype.getType=function(){return"recurring"};Recurring.prototype.getCount=function(){if(this.count==undefined){return Infinity}else{return this.count}};Recurring.prototype.getNth=function(multiplier){var duration=GedUtil.multiplyDuration(this.duration,multiplier);return GedUtil.addDuration(this.start,duration)};Recurring.prototype.toFormalString=function(){var range=Recurring.super_.prototype.toFormalString.call(this);if(this.count){return"R"+this.count+"/"+range}else{return"R/"+range}};module.exports=Recurring},{"./range.js":49,"./util.js":53,util:45}],51:[function(_dereq_,module,exports){var GlobalUtil=_dereq_("./util-global.js");function Simple(){if(arguments.length>0){this._parse(arguments[0])}else{var date=new Date;this._year=date.getUTCFullYear();this._month=date.getUTCMonth();this._day=date.getUTCDay();this._hours=date.getUTCHours();this._minutes=date.getUTCMinutes();this._seconds=date.getUTCSeconds();this._tzHours=0;this._tzMinutes=0}}Simple.prototype._parse=function(str){var end=str.length,offset=0;if(str.length<5)throw new Error("Invalid Date");var year=str.substr(offset,5);if(year.match(/^[+-][0-9]{4}$/)===null){throw new Error("Invalid Date: Malformed year")}this._year=parseInt(year,10);offset+=5;if(offset==end){return}if(str.charAt(offset)=="T"){return this._parseTime(str.substr(offset+1))}if(str.charAt(offset)!="-"){throw new Error("Invalid Date: Malformed year-month separator")}if(end-offset<3){throw new Error("Invalid Date: Malformed month")}var month=str.substr(offset+1,2);if(month.match(/^(0[1-9]|1[0-2])$/)===null){throw new Error("Invalid Date: Malformed month")}this._month=parseInt(month,10);offset+=3;if(offset==end){return}if(str.charAt(offset)=="T"){return this._parseTime(str.substr(offset+1))}if(str.charAt(offset)!="-"){throw new Error("Invalid Date: Malformed month-day separator")}if(end-offset<3){throw new Error("Invalid Date: Malformed day")}var day=str.substr(offset+1,2);var daysInMonth=GlobalUtil.daysInMonth(this._month,this._year);switch(daysInMonth){case 31:if(day.match(/^(0[1-9]|[1-2][0-9]|3[0-1])$/)===null){throw new Error("Invalid Date: Malformed day (31 in month "+this._month+")")}break;case 30:if(day.match(/^(0[1-9]|[1-2][0-9]|30)$/)===null){throw new Error("Invalid Date: Malformed day (30 in month "+this._month+")")}break;case 29:if(day.match(/^(0[1-9]|1[0-9]|2[0-9])$/)===null){throw new Error("Invalid Date: Malformed day (29 in month "+this._month+" - leapyear)")}break;case 28:if(day.match(/^(0[1-9]|1[0-9]|2[0-8])$/)===null){throw new Error("Invalid Date: Malformed day (28 in month "+this._month+")")}break}this._day=parseInt(day,10);offset+=3;if(offset==end)return;if(str.charAt(offset)=="T"){return this._parseTime(str.substr(offset+1))}else{throw new Error("Invalid Date")}};Simple.prototype._parseTime=function(str){var offset=0,end=str.length,flag24=false;var tempDate=new Date,tempOffset=tempDate.getTimezoneOffset();this._tzHours=tempOffset/60;this._tzMinutes=tempOffset%60;if(str.length<2)throw new Error("Invalid Date: Malformed hours");var hours=str.substr(offset,2);if(hours.match(/^([0-1][0-9]|2[0-3])$/)===null){if(hours=="24"){flag24=true}else{throw new Error("Invalid Date: Malformed hours")}}this._hours=parseInt(hours,10);offset+=2;if(offset==end){return}if(str.charAt(offset)=="+"||str.charAt(offset)=="-"||str.charAt(offset)=="Z"){return this._parseTimezone(str.substr(offset))}if(str.charAt(offset)!=":"){throw new Error("Invalid Date: Malformed hour-minute separator")}if(end-offset<3){throw new Error("Invalid Date: Malformed minutes")}var minutes=str.substr(offset+1,2);if(minutes.match(/^[0-5][0-9]$/)===null){throw new Error("Invalid Date: Malformed minutes")}if(flag24&&minutes!="00"){throw new Error("Invalid Date: Hour of 24 requires 00 minutes")}this._minutes=parseInt(minutes,10);offset+=3;if(offset==end){return}if(str.charAt(offset)=="+"||str.charAt(offset)=="-"||str.charAt(offset)=="Z"){return this._parseTimezone(str.substr(offset))}if(str.charAt(offset)!=":"){throw new Error("Invalid Date: Malformed minute-second separator");
+if(check){delete ids[checkId];var signature=check.signature;for(var i=0;i"+text+"\n"};utils.getFactYear=function(fact){if(fact.$getFormalDate()){var simple=utils.getSimpleFormalDate(fact.$getFormalDate());if(simple){return simple.getYear()}}else if(fact.$getDate()){return utils.extractYearFromDateString(fact.$getDate())}};utils.getFactPlace=function(fact){if(fact.$getNormalizedPlace()){return fact.$getNormalizedPlace()}else if(fact.$getPlace()){return fact.$getPlace()}};utils.getFormalDate=function(fact){if(fact.$getFormalDate()){var date=utils.getSimpleFormalDate(fact.$getFormalDate());if(date){return date.toFormalString()}}else if(fact.$getDate()){if(/^\d{4}$/.test(fact.$getDate())){return"+"+fact.$getDate()}else{var date=new Date(fact.$getDate());if(isNaN(date.getTime())){return}else{return GedcomXDate.fromJSDate(date).toFormalString().substring(0,11)}}}};utils.getSimpleFormalDate=function(formalDateString){var date=new GedcomXDate(formalDateString);if(date.getType()!="single"){if(date.getStart()&&!date.getEnd()){date=date.getStart()}else if(!date.getStart()&&date.getEnd()){date=date.getEnd()}else{var start=date.getStart(),duration=date.getDuration(),halfDuration=GedcomXDate.multiplyDuration(duration,.5);date=GedcomXDate.addDuration(start,halfDuration)}}return date};utils.extractYearFromDateString=function(date){if(/^\d{4}$/.test(date)){return date}else{var year=new Date(date).getFullYear();if(parseInt(year)==year){return year}}};utils.markdown=function(text,data,partials){return marked(mustache.render(text,data,partials),{renderer:renderer})};utils.gensearchPerson=function(person){var gensearch={};var givenName=person.$getGivenName();if(givenName){gensearch.givenName=givenName}var familyName=person.$getSurname();if(familyName){gensearch.familyName=familyName}var birth=person.$getBirth();if(birth!==undefined){var birthPlace=utils.getFactPlace(birth);if(birthPlace){gensearch.birthPlace=birthPlace}var birthDate=utils.getFactYear(birth);if(birthDate){gensearch.birthDate=birthDate+""}}var death=person.$getDeath();if(death!==undefined){var deathPlace=utils.getFactPlace(death);if(deathPlace){gensearch.deathPlace=deathPlace}var deathDate=utils.getFactYear(death);if(deathDate){gensearch.deathDate=deathDate+""}}return gensearch};utils.compareFormalDates=function(date1,date2){return GedcomXDate.compare(date1,date2)};utils.createOpportunity=function(check,person,template,gensearch){return{id:check.id+":"+person.id,type:check.type,checkId:check.id,personId:person.id,person:person,gensearch:gensearch,template:template}};utils.isFullDate=function(date){if(isString(date)){return date.length>=11}else{try{if(isUndefined(date.getYear())||isUndefined(date.getMonth())||isUndefined(date.getDay())){return false}else{return true}}catch(e){throw new Error("Expected either a formal date string or a GedcomXDate simple object.")}}};utils.ensureFullDate=function(date,newMonth,newDay){try{if(!newMonth){newMonth=1}if(newMonth>12){newMonth=12}if(!newDay){newDay=1}if(isUndefined(date.getMonth())){date._month=newMonth}if(isUndefined(date.getDay())){var validDayMax=GedcomXDate.daysInMonth(date.getMonth(),date.getYear());if(newDay>validDayMax){newDay=validDayMax}date._day=newDay}}catch(e){throw new Error("Expected date to be a GedcomXDate object.")}};utils.isBiologicalChildAndParents=function(childAndParents){var fatherFacts=childAndParents.$getFatherFacts(),motherFacts=childAndParents.$getMotherFacts();if(childAndParents.$getFatherId()){if(!fatherFacts||!containsBiologicalParentFact(fatherFacts)){return false}}if(childAndParents.$getMotherId()){if(!motherFacts||!containsBiologicalParentFact(motherFacts)){return false}}return true};function containsBiologicalParentFact(facts){for(var i=0;i0){var fn=queue.shift();fn()}}},true);return function nextTick(fn){queue.push(fn);window.postMessage("process-tick","*")}}return function nextTick(fn){setTimeout(fn,0)}}();process.title="browser";process.browser=true;process.env={};process.argv=[];function noop(){}process.on=noop;process.once=noop;process.off=noop;process.emit=noop;process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")}},{}],43:[function(_dereq_,module,exports){if(typeof Object.create==="function"){module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:false,writable:true,configurable:true}})}}else{module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor;ctor.prototype.constructor=ctor}}},{}],44:[function(_dereq_,module,exports){module.exports=function isBuffer(arg){return arg&&typeof arg==="object"&&typeof arg.copy==="function"&&typeof arg.fill==="function"&&typeof arg.readUInt8==="function"}},{}],45:[function(_dereq_,module,exports){(function(process,global){var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(!isString(f)){var objects=[];for(var i=0;i=len)return x;switch(x){case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}});for(var x=args[i];i=3)ctx.depth=arguments[2];if(arguments.length>=4)ctx.colors=arguments[3];if(isBoolean(opts)){ctx.showHidden=opts}else if(opts){exports._extend(ctx,opts)}if(isUndefined(ctx.showHidden))ctx.showHidden=false;if(isUndefined(ctx.depth))ctx.depth=2;if(isUndefined(ctx.colors))ctx.colors=false;if(isUndefined(ctx.customInspect))ctx.customInspect=true;if(ctx.colors)ctx.stylize=stylizeWithColor;return formatValue(ctx,obj,ctx.depth)}exports.inspect=inspect;inspect.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]};inspect.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"};function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];if(style){return"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m"}else{return str}}function stylizeNoColor(str,styleType){return str}function arrayToHash(array){var hash={};array.forEach(function(val,idx){hash[val]=true});return hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&!(value.constructor&&value.constructor.prototype===value)){var ret=value.inspect(recurseTimes,ctx);if(!isString(ret)){ret=formatValue(ctx,ret,recurseTimes)}return ret}var primitive=formatPrimitive(ctx,value);if(primitive){return primitive}var keys=Object.keys(value);var visibleKeys=arrayToHash(keys);if(ctx.showHidden){keys=Object.getOwnPropertyNames(value)}if(isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0)){return formatError(value)}if(keys.length===0){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}if(isDate(value)){return ctx.stylize(Date.prototype.toString.call(value),"date")}if(isError(value)){return formatError(value)}}var base="",array=false,braces=["{","}"];if(isArray(value)){array=true;braces=["[","]"]}if(isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)){base=" "+RegExp.prototype.toString.call(value)}if(isDate(value)){base=" "+Date.prototype.toUTCString.call(value)}if(isError(value)){base=" "+formatError(value)}if(keys.length===0&&(!array||value.length==0)){return braces[0]+base+braces[1]}if(recurseTimes<0){if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}else{return ctx.stylize("[Object]","special")}}ctx.seen.push(value);var output;if(array){output=formatArray(ctx,value,recurseTimes,visibleKeys,keys)}else{output=keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)})}ctx.seen.pop();return reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}if(isNumber(value))return ctx.stylize(""+value,"number");if(isBoolean(value))return ctx.stylize(""+value,"boolean");if(isNull(value))return ctx.stylize("null","null")}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){var output=[];for(var i=0,l=value.length;i-1){if(array){str=str.split("\n").map(function(line){return" "+line}).join("\n").substr(2)}else{str="\n"+str.split("\n").map(function(line){return" "+line}).join("\n")}}}else{str=ctx.stylize("[Circular]","special")}}if(isUndefined(name)){if(array&&key.match(/^\d+$/)){return str}name=JSON.stringify(""+key);if(name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)){name=name.substr(1,name.length-2);name=ctx.stylize(name,"name")}else{name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'");name=ctx.stylize(name,"string")}}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0;var length=output.reduce(function(prev,cur){numLinesEst++;if(cur.indexOf("\n")>=0)numLinesEst++;return prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0);if(length>60){return braces[0]+(base===""?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]}return braces[0]+base+" "+output.join(", ")+" "+braces[1]}function isArray(ar){return Array.isArray(ar)}exports.isArray=isArray;function isBoolean(arg){return typeof arg==="boolean"}exports.isBoolean=isBoolean;function isNull(arg){return arg===null}exports.isNull=isNull;function isNullOrUndefined(arg){return arg==null}exports.isNullOrUndefined=isNullOrUndefined;function isNumber(arg){return typeof arg==="number"}exports.isNumber=isNumber;function isString(arg){return typeof arg==="string"}exports.isString=isString;function isSymbol(arg){return typeof arg==="symbol"}exports.isSymbol=isSymbol;function isUndefined(arg){return arg===void 0}exports.isUndefined=isUndefined;function isRegExp(re){return isObject(re)&&objectToString(re)==="[object RegExp]"}exports.isRegExp=isRegExp;function isObject(arg){return typeof arg==="object"&&arg!==null}exports.isObject=isObject;function isDate(d){return isObject(d)&&objectToString(d)==="[object Date]"}exports.isDate=isDate;function isError(e){return isObject(e)&&(objectToString(e)==="[object Error]"||e instanceof Error)}exports.isError=isError;function isFunction(arg){return typeof arg==="function"}exports.isFunction=isFunction;function isPrimitive(arg){return arg===null||typeof arg==="boolean"||typeof arg==="number"||typeof arg==="string"||typeof arg==="symbol"||typeof arg==="undefined"}exports.isPrimitive=isPrimitive;exports.isBuffer=_dereq_("./support/isBuffer");function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return n<10?"0"+n.toString(10):n.toString(10)}var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function timestamp(){var d=new Date;var time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}exports.log=function(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))};exports.inherits=_dereq_("inherits");exports._extend=function(origin,add){if(!add||!isObject(add))return origin;var keys=Object.keys(add);var i=keys.length;while(i--){origin[keys[i]]=add[keys[i]]}return origin};function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}}).call(this,_dereq_("/home/ubuntu/workspace/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js"),typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./support/isBuffer":44,"/home/ubuntu/workspace/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js":42,inherits:43}],46:[function(_dereq_,module,exports){var util=_dereq_("util"),Simple=_dereq_("./simple.js");function Approximate(){if(arguments.length>0){if(arguments[0].length<1||arguments[0].charAt(0)!="A"){throw new Error("Invalid Approximate Date")}try{Simple.call(this,arguments[0].substr(1))}catch(e){throw new Error(e.message+" in Approximate Date")}}else{Simple.call(this)}}util.inherits(Approximate,Simple);Approximate.prototype.isApproximate=function(){return true};Approximate.prototype.toFormalString=function(){return"A"+Approximate.super_.prototype.toFormalString.call(this)};module.exports=Approximate},{"./simple.js":51,util:45}],47:[function(_dereq_,module,exports){function Duration(str){if(str.length<1||str.charAt(0)!="P"){throw new Error("Invalid Duration")}var duration=str.substr(1);if(duration.length<1){throw new Error("Invalid Duration")}if(/\s/.test(duration)){throw new Error("Non normalized durations not implemented")}else{this._parseNormalized(duration)}}Duration.prototype._parseNormalized=function(str){var duration=str.split(""),currentNum="",inTime=false,seen=[],valid=["Y","Mo","D","T","H","Mi","S"];for(var x in duration){var character=duration[x];if(/[0-9]/.test(character)){currentNum+=character+"";continue}switch(character){case"Y":if(currentNum.length<1){throw new Error("Invalid Duration: invalid years")}if(seen.indexOf("Y")!=-1){throw new Error("Invalid Duration: duplicate years")}if(valid.indexOf("Y")==-1){throw new Error("Invalid Duration: years out of order")}this._years=parseInt(currentNum,10);seen.push("Y");valid=valid.slice(valid.indexOf("Y")+1);currentNum="";break;case"M":if(inTime){if(currentNum.length<1){throw new Error("Invalid Duration: invalid minutes")}if(seen.indexOf("Mi")!=-1){throw new Error("Invalid Duration: duplicate minutes")}if(valid.indexOf("Mi")==-1){throw new Error("Invalid Duration: minutes out of order")}this._minutes=parseInt(currentNum,10);seen.push("Mi");valid=valid.slice(valid.indexOf("Mi")+1);currentNum=""}else{if(currentNum.length<1){throw new Error("Invalid Duration: invalid months")}if(seen.indexOf("Mo")!=-1){throw new Error("Invalid Duration: duplicate months")}if(valid.indexOf("Mo")==-1){throw new Error("Invalid Duration: months out of order")}this._months=parseInt(currentNum,10);valid=valid.slice(valid.indexOf("Mo")+1);seen.push("Mo");currentNum=""}break;case"D":if(currentNum.length<1){throw new Error("Invalid Duration: invalid days")}if(seen.indexOf("D")!=-1){throw new Error("Invalid Duration: duplicate days")}if(valid.indexOf("D")==-1){throw new Error("Invalid Duration: days out of order")}this._days=parseInt(currentNum,10);seen.push("D");valid=valid.slice(valid.indexOf("D")+1);currentNum="";break;case"H":if(!inTime){throw new Error("Invalid Duration: Missing T before hours")}if(currentNum.length<1){throw new Error("Invalid Duration: invalid hours")}if(seen.indexOf("H")!=-1){throw new Error("Invalid Duration: duplicate hours")}if(valid.indexOf("H")==-1){throw new Error("Invalid Duration: hours out of order")}this._hours=parseInt(currentNum,10);seen.push("H");valid=valid.slice(valid.indexOf("H")+1);currentNum="";break;case"S":if(!inTime){throw new Error("Invalid Duration: Missing T before seconds")}if(currentNum.length<1){throw new Error("Invalid Duration: invalid seconds")}if(seen.indexOf("S")!=-1){throw new Error("Invalid Duration: duplicate seconds")}this._seconds=parseInt(currentNum,10);seen.push("S");valid=[];currentNum="";break;case"T":if(seen.indexOf("T")!=-1){throw new Error("Invalid Duration: duplicate T")}inTime=true;seen.push("T");valid=valid.slice(valid.indexOf("T")+1);break;default:throw new Error("Invalid Duration: Unknown Letter "+character)}}if(currentNum!=""){throw new Error("Invalid Duration: No letter after "+currentNum)}};Duration.prototype.getType=function(){return"duration"};Duration.prototype.isApproximate=function(){return false};Duration.prototype.getYears=function(){return this._years};Duration.prototype.getMonths=function(){return this._months};Duration.prototype.getDays=function(){return this._days};Duration.prototype.getHours=function(){return this._hours};Duration.prototype.getMinutes=function(){return this._minutes};Duration.prototype.getSeconds=function(){return this._seconds};Duration.prototype.toFormalString=function(){var duration="P";if(this._years){duration+=this._years+"Y"}if(this._months){duration+=this._months+"M"}if(this._days){duration+=this._days+"D"}if(this._hours||this._minutes||this._seconds){duration+="T";if(this._hours){duration+=this._hours+"H"}if(this._minutes){duration+=this._minutes+"M"}if(this._seconds){duration+=this._seconds+"S"}}return duration};module.exports=Duration},{}],48:[function(_dereq_,module,exports){var GedUtil=_dereq_("./util.js"),Simple=_dereq_("./simple.js"),Approximate=_dereq_("./approximate.js"),Recurring=_dereq_("./recurring.js"),Range=_dereq_("./range.js");function GedcomXDate(str){if(str==""){throw new Error("Invalid Date")}if(str.charAt(0)=="R"){return new Recurring(str)}else if(/\//.test(str)){return new Range(str)}else if(str.charAt(0)=="A"){return new Approximate(str)}else{return new Simple(str)}}GedcomXDate.version="0.3.2";GedcomXDate.addDuration=GedUtil.addDuration;GedcomXDate.multiplyDuration=GedUtil.multiplyDuration;GedcomXDate.getDuration=GedUtil.getDuration;GedcomXDate.daysInMonth=GedUtil.daysInMonth;GedcomXDate.now=GedUtil.now;GedcomXDate.fromJSDate=GedUtil.fromJSDate;GedcomXDate.compare=GedUtil.compare;module.exports=GedcomXDate},{"./approximate.js":46,"./range.js":49,"./recurring.js":50,"./simple.js":51,"./util.js":53}],49:[function(_dereq_,module,exports){var GedUtil=_dereq_("./util.js"),Simple=_dereq_("./simple.js"),Duration=_dereq_("./duration.js"),Approximate=_dereq_("./approximate.js");function Range(str){var range=str;if(range.charAt(0)=="A"){this._approximate=true;range=str.substr(1)}var parts=range.split("/");if(parts.length!=2||!parts[0]&&!parts[1]){throw new Error("Invalid Date Range")}if(parts[0]){try{this.start=new Simple(parts[0])}catch(e){throw new Error(e.message+" in Range Start Date")}}if(parts[1]){if(parts[1].charAt(0)=="P"){if(!this.start){throw new Error("A Range may not end with a duration if missing a start date")}try{this.duration=new Duration(parts[1])}catch(e){throw new Error(e.message+" in Range End Date")}this.end=GedUtil.addDuration(this.start,this.duration)}else{try{this.end=new Simple(parts[1])}catch(e){throw new Error(e.message+" in Range End Date")}if(this.start){this.duration=GedUtil.getDuration(this.start,this.end)}}}}Range.prototype.getType=function(){return"range"};Range.prototype.isApproximate=function(){if(this._approximate){return true}else{return false}};Range.prototype.getStart=function(){return this.start};Range.prototype.getDuration=function(){return this.duration};Range.prototype.getEnd=function(){return this.end};Range.prototype.toFormalString=function(){var range="";if(this._approximate){range+="A"}if(this.start){range+=this.start.toFormalString()}range+="/";if(this.duration){range+=this.duration.toFormalString()}else if(this.end){range+=this.end.toFormalString()}return range};module.exports=Range},{"./approximate.js":46,"./duration.js":47,"./simple.js":51,"./util.js":53}],50:[function(_dereq_,module,exports){var util=_dereq_("util"),GedUtil=_dereq_("./util.js"),Range=_dereq_("./range.js");function Recurring(str){var parts=str.split("/");if(str.charAt(0)!="R"||parts.length!=3){throw new Error("Invalid Recurring Date")}if(!parts[1]||!parts[2]){throw new Error("Recurring must have a start and end")}var countNum=parts[0].substr(1);if(countNum){if(!/^[0-9]+$/.test(countNum)){throw new Error("Invalid recurrence count: not a number")}this.count=parseInt(countNum,10);if(this.count<0)throw new Error("Invalid recurrence count")}Range.call(this,parts[1]+"/"+parts[2]);delete this.end;if(this.count){this.end=this.getNth(this.count)}}util.inherits(Recurring,Range);Recurring.prototype.getType=function(){return"recurring"};Recurring.prototype.getCount=function(){if(this.count==undefined){return Infinity}else{return this.count}};Recurring.prototype.getNth=function(multiplier){var duration=GedUtil.multiplyDuration(this.duration,multiplier);return GedUtil.addDuration(this.start,duration)};Recurring.prototype.toFormalString=function(){var range=Recurring.super_.prototype.toFormalString.call(this);if(this.count){return"R"+this.count+"/"+range}else{return"R/"+range}};module.exports=Recurring},{"./range.js":49,"./util.js":53,util:45}],51:[function(_dereq_,module,exports){var GlobalUtil=_dereq_("./util-global.js");function Simple(){if(arguments.length>0){this._parse(arguments[0])}else{var date=new Date;this._year=date.getUTCFullYear();this._month=date.getUTCMonth();this._day=date.getUTCDay();this._hours=date.getUTCHours();this._minutes=date.getUTCMinutes();this._seconds=date.getUTCSeconds();this._tzHours=0;this._tzMinutes=0}}Simple.prototype._parse=function(str){var end=str.length,offset=0;if(str.length<5)throw new Error("Invalid Date");var year=str.substr(offset,5);if(year.match(/^[+-][0-9]{4}$/)===null){throw new Error("Invalid Date: Malformed year")}this._year=parseInt(year,10);offset+=5;if(offset==end){return}if(str.charAt(offset)=="T"){return this._parseTime(str.substr(offset+1))}if(str.charAt(offset)!="-"){throw new Error("Invalid Date: Malformed year-month separator")}if(end-offset<3){throw new Error("Invalid Date: Malformed month")}var month=str.substr(offset+1,2);if(month.match(/^(0[1-9]|1[0-2])$/)===null){throw new Error("Invalid Date: Malformed month")}this._month=parseInt(month,10);offset+=3;if(offset==end){return}if(str.charAt(offset)=="T"){return this._parseTime(str.substr(offset+1))}if(str.charAt(offset)!="-"){throw new Error("Invalid Date: Malformed month-day separator")}if(end-offset<3){throw new Error("Invalid Date: Malformed day")}var day=str.substr(offset+1,2);var daysInMonth=GlobalUtil.daysInMonth(this._month,this._year);switch(daysInMonth){case 31:if(day.match(/^(0[1-9]|[1-2][0-9]|3[0-1])$/)===null){throw new Error("Invalid Date: Malformed day (31 in month "+this._month+")")}break;case 30:if(day.match(/^(0[1-9]|[1-2][0-9]|30)$/)===null){throw new Error("Invalid Date: Malformed day (30 in month "+this._month+")")}break;case 29:if(day.match(/^(0[1-9]|1[0-9]|2[0-9])$/)===null){throw new Error("Invalid Date: Malformed day (29 in month "+this._month+" - leapyear)")}break;case 28:if(day.match(/^(0[1-9]|1[0-9]|2[0-8])$/)===null){throw new Error("Invalid Date: Malformed day (28 in month "+this._month+")")}break}this._day=parseInt(day,10);offset+=3;if(offset==end)return;if(str.charAt(offset)=="T"){return this._parseTime(str.substr(offset+1))}else{throw new Error("Invalid Date")}};Simple.prototype._parseTime=function(str){var offset=0,end=str.length,flag24=false;var tempDate=new Date,tempOffset=tempDate.getTimezoneOffset();this._tzHours=tempOffset/60;this._tzMinutes=tempOffset%60;if(str.length<2)throw new Error("Invalid Date: Malformed hours");var hours=str.substr(offset,2);if(hours.match(/^([0-1][0-9]|2[0-3])$/)===null){if(hours=="24"){flag24=true}else{throw new Error("Invalid Date: Malformed hours")}}this._hours=parseInt(hours,10);offset+=2;if(offset==end){return}if(str.charAt(offset)=="+"||str.charAt(offset)=="-"||str.charAt(offset)=="Z"){return this._parseTimezone(str.substr(offset))}if(str.charAt(offset)!=":"){throw new Error("Invalid Date: Malformed hour-minute separator")}if(end-offset<3){throw new Error("Invalid Date: Malformed minutes")}var minutes=str.substr(offset+1,2);if(minutes.match(/^[0-5][0-9]$/)===null){throw new Error("Invalid Date: Malformed minutes")}if(flag24&&minutes!="00"){throw new Error("Invalid Date: Hour of 24 requires 00 minutes")}this._minutes=parseInt(minutes,10);offset+=3;if(offset==end){return}if(str.charAt(offset)=="+"||str.charAt(offset)=="-"||str.charAt(offset)=="Z"){return this._parseTimezone(str.substr(offset))}if(str.charAt(offset)!=":"){throw new Error("Invalid Date: Malformed minute-second separator");
-}if(end-offset<3){throw new Error("Invalid Date: Malformed seconds")}var seconds=str.substr(offset+1,2);if(seconds.match(/^[0-5][0-9]$/)===null){throw new Error("Invalid Date: Malformed seconds")}if(flag24&&seconds!="00"){throw new Error("Invalid Date: Hour of 24 requires 00 seconds")}this._seconds=parseInt(seconds,10);offset+=3;if(offset==end){return}if(str.charAt(offset)=="+"||str.charAt(offset)=="-"||str.charAt(offset)=="Z"){return this._parseTimezone(str.substr(offset))}else{throw new Error("Invalid Date: Malformed Time")}};Simple.prototype._parseTimezone=function(str){var offset=0,end=str.length;if(str.charAt(0)=="Z"){if(str.length==1){this._tzHours=0;this._tzMinutes=0;return}else{throw new Error("Invalid Date: malformed timezone")}}if(end-offset<3){throw new Error("Invalid Date: Malformed timezone")}var tzHours=str.substr(offset,3);if(tzHours.match(/^[+-]([0-1][0-9]|2[0-3])$/)===null){throw new Error("Invalid Date: Malformed timezone hours")}this._tzHours=parseInt(tzHours,10);this._tzMinutes=0;offset+=3;if(offset==end){return}if(str.charAt(offset)!=":"){throw new Error("Invalid Date: Malformed timezone hour-minute separator")}if(end-offset<3){throw new Error("Invalid Date: Malformed timezone minutes")}var tzMinutes=str.substr(offset+1,2);if(tzMinutes.match(/^[0-5][0-9]$/)===null){throw new Error("Invalid Date: Malformed timezone minutes")}this._tzMinutes=parseInt(tzMinutes,10);offset+=3;if(offset==end){return}else{throw new Error("Invalid Date: Malformed timezone")}};Simple.prototype.getType=function(){return"single"};Simple.prototype.isApproximate=function(){return false};Simple.prototype.getYear=function(){return this._year};Simple.prototype.getMonth=function(){return this._month};Simple.prototype.getDay=function(){return this._day};Simple.prototype.getHours=function(){return this._hours};Simple.prototype.getMinutes=function(){return this._minutes};Simple.prototype.getSeconds=function(){return this._seconds};Simple.prototype.getTZHours=function(){return this._tzHours};Simple.prototype.getTZMinutes=function(){return this._tzMinutes};Simple.prototype.toFormalString=function(){var simple="";if(this._year>=0){simple+="+"+("0000"+this._year).substr(-4,4)}else{simple+="-"+("0000"+Math.abs(this._year)).substr(-4,4)}if(this._month){simple+="-"+("00"+this._month).substr(-2,2)}if(this._day){simple+="-"+("00"+this._day).substr(-2,2)}if(this._hours!=undefined||this._minutes!=undefined||this._seconds!=undefined){simple+="T"}if(this._hours!=undefined){simple+=("00"+this._hours).substr(-2,2)}if(this._minutes!=undefined){simple+=":"+("00"+this._minutes).substr(-2,2)}if(this._seconds!=undefined){simple+=":"+("00"+this._seconds).substr(-2,2)}if(this._hours!=undefined||this._minutes!=undefined||this._seconds!=undefined){if(this._tzHours===0||this._tzMinutes===0){simple+="Z"}else{if(this._tzHours!=undefined){if(this._tzHours>=0){simple+="+"}else{simple+="-"}simple+=("00"+Math.abs(this._tzHours)).substr(-2,2)}if(this._tzMinutes!=undefined){simple+=":"+("00"+this._tzMinutes).substr(-2,2)}}}return simple};module.exports=Simple},{"./util-global.js":52}],52:[function(_dereq_,module,exports){module.exports={daysInMonth:daysInMonth};function daysInMonth(month,year){switch(month){case 1:case 3:case 5:case 7:case 8:case 10:case 12:return 31;case 4:case 6:case 9:case 11:return 30;case 2:var leapyear;if(year%4!=0){leapyear=false}else if(year%100!=0){leapyear=true}else if(year%400!=0){leapyear=false}else{leapyear=true}if(leapyear){return 29}else{return 28}default:throw new Error("Unknown Month")}}},{}],53:[function(_dereq_,module,exports){var GlobalUtil=_dereq_("./util-global.js"),Duration=_dereq_("./duration.js"),Simple=_dereq_("./simple.js"),Approximate=_dereq_("./approximate.js");module.exports={getDuration:getDuration,daysInMonth:GlobalUtil.daysInMonth,addDuration:addDuration,multiplyDuration:multiplyDuration,now:now,fromJSDate:fromJSDate,compare:compare};function multiplyDuration(startDuration,multiplier){if(!isFinite(multiplier)||multiplier<=0){throw new Error("Invalid Multiplier")}var newDuration={},hasTime=false,duration="";if(startDuration.getSeconds()){newDuration.seconds=Math.round(startDuration.getSeconds()*multiplier)}if(startDuration.getMinutes()){newDuration.minutes=Math.round(startDuration.getMinutes()*multiplier)}if(startDuration.getHours()){newDuration.hours=Math.round(startDuration.getHours()*multiplier)}if(startDuration.getDays()){newDuration.days=Math.round(startDuration.getDays()*multiplier)}if(startDuration.getMonths()){newDuration.months=Math.round(startDuration.getMonths()*multiplier)}if(startDuration.getYears()){newDuration.years=Math.round(startDuration.getYears()*multiplier)}if(newDuration.seconds){hasTime=true;duration=newDuration.seconds+"S"+duration}if(newDuration.minutes){hasTime=true;duration=newDuration.minutes+"M"+duration}if(newDuration.hours){hasTime=true;duration=newDuration.hours+"H"+duration}if(hasTime){duration="T"+duration}if(newDuration.days){duration=newDuration.days+"D"+duration}if(newDuration.months){duration=newDuration.months+"M"+duration}if(newDuration.years){duration=newDuration.years+"Y"+duration}if(!duration){throw new Error("Invalid Duration Multiplier")}return new Duration("P"+duration)}function addDuration(startDate,duration){var end=getObjFromDate(startDate,false),endString="";zipDuration(end,duration);if(startDate.getTZHours()!=undefined){if(startDate.getTZHours()<0){endString+="-"}else{endString+="+"}endString+=("00"+Math.abs(startDate.getTZHours())).substr(-2,2);endString+=":"+("00"+Math.abs(startDate.getTZMinutes())).substr(-2,2)}if(duration.getSeconds()){end.seconds+=duration.getSeconds()}while(end.seconds&&end.seconds>=60){end.seconds-=60;end.minutes+=1}if(end.seconds!=undefined){endString=":"+("00"+end.seconds).substr(-2,2)+endString}if(duration.getMinutes()){end.minutes+=duration.getMinutes()}while(end.minutes&&end.minutes>=60){end.minutes-=60;end.hours+=1}if(end.minutes!=undefined){endString=":"+("00"+end.minutes).substr(-2,2)+endString}if(duration.getHours()){end.hours+=duration.getHours()}while(end.hours&&end.hours>=24){end.hours-=24;end.day+=1}if(end.hours!=undefined){endString="T"+("00"+end.hours).substr(-2,2)+endString}if(duration.getDays()){end.day+=duration.getDays()}while(end.day&&end.day>GlobalUtil.daysInMonth(end.month,end.year)){end.day-=GlobalUtil.daysInMonth(end.month,end.year);end.month+=1;if(end.month>12){end.month-=12;end.year+=1}}if(duration.getMonths()){end.month+=duration.getMonths()}while(end.month&&end.month>12){end.month-=12;end.year+=1}if(end.day&&end.day>GlobalUtil.daysInMonth(end.month,end.year)){end.day=end.day-GlobalUtil.daysInMonth(end.month,end.year);end.month+=1;if(end.month>12){end.month-=12;end.year+=1}}if(end.day!=undefined){endString="-"+("00"+end.day).substr(-2,2)+endString}if(end.month!=undefined){endString="-"+("00"+end.month).substr(-2,2)+endString}if(duration.getYears()){end.year+=duration.getYears()}if(end.year!=undefined){endString=("0000"+Math.abs(end.year)).substr(-4,4)+endString;if(end.year<0){endString="-"+endString}else{endString="+"+endString}}if(end.year>9999){throw new Error("New date out of range")}if(startDate.isApproximate()){endString="A"+endString;return new Approximate(endString)}else{return new Simple(endString)}}function getDuration(startDate,endDate){if(!(startDate instanceof Simple&&endDate instanceof Simple)){throw new Error("Start and end dates must be simple dates")}var start=getObjFromDate(startDate,true),end=getObjFromDate(endDate,true),hasTime=false,duration="";zipDates(start,end);if(end.seconds!=undefined){while(end.seconds-start.seconds<0){end.minutes-=1;end.seconds+=60}if(end.seconds-start.seconds>0){hasTime=true;duration=("00"+(end.seconds-start.seconds)).substr(-2,2)+"S"+duration}}if(end.minutes!=undefined){while(end.minutes-start.minutes<0){end.hours-=1;end.minutes+=60}if(end.minutes-start.minutes>0){hasTime=true;duration=("00"+(end.minutes-start.minutes)).substr(-2,2)+"M"+duration}}if(end.hours!=undefined){while(end.hours-start.hours<0){end.day-=1;end.hours+=24}if(end.hours-start.hours>0){hasTime=true;duration=("00"+(end.hours-start.hours)).substr(-2,2)+"H"+duration}}if(hasTime){duration="T"+duration}if(end.day!=undefined){while(end.day-start.day<0){end.month-=1;if(end.month<1){end.year-=1;end.month+=12}end.day+=GlobalUtil.daysInMonth(end.month,end.year)}if(end.day-start.day>0){duration=("00"+(end.day-start.day)).substr(-2,2)+"D"+duration}}if(end.month!=undefined){while(end.month-start.month<0){end.year-=1;end.month+=12}if(end.month-start.month>0){duration=("00"+(end.month-start.month)).substr(-2,2)+"M"+duration}}if(end.year-start.year>0){duration=("0000"+(end.year-start.year)).substr(-4,4)+"Y"+duration}if(end.year-start.year<0||duration==""){throw new Error("Start Date must be less than End Date")}return new Duration("P"+duration)}function zipDates(start,end){if(start.month!=undefined&&end.month==undefined){end.month=1}if(start.month==undefined&&end.month!=undefined){start.month=1}if(start.day!=undefined&&end.day==undefined){end.day=1}if(start.day==undefined&&end.day!=undefined){start.day=1}if(start.hours!=undefined&&end.hours==undefined){end.hours=0}if(start.hours==undefined&&end.hours!=undefined){start.hours=0}if(start.minutes!=undefined&&end.minutes==undefined){end.minutes=0}if(start.minutes==undefined&&end.minutes!=undefined){start.minutes=0}if(start.seconds!=undefined&&end.seconds==undefined){end.seconds=0}if(start.seconds==undefined&&end.seconds!=undefined){start.seconds=0}}function zipDuration(date,duration){var toSet={};if(duration.getSeconds()){toSet={seconds:true,minutes:true,hours:true,days:true,months:true}}else if(duration.getMinutes()){toSet={minutes:true,hours:true,days:true,months:true}}else if(duration.getHours()){toSet={hours:true,days:true,months:true}}else if(duration.getDays()){toSet={days:true,months:true}}else if(duration.getMonths()){toSet={months:true}}else{return}if(toSet.seconds&&date.seconds==undefined){date.seconds=0}if(toSet.minutes&&date.minutes==undefined){date.minutes=0}if(toSet.hours&&date.hours==undefined){date.hours=0}if(toSet.days&&date.day==undefined){date.day=1}if(toSet.months&&date.month==undefined){date.month=1}}function getObjFromDate(date,adjustTimezone){var obj={year:date.getYear(),month:date.getMonth(),day:date.getDay(),hours:date.getHours(),minutes:date.getMinutes(),seconds:date.getSeconds()};if(adjustTimezone){if(obj.minutes!=undefined&&date.getTZMinutes()!=undefined){obj.minutes+=date.getTZMinutes()}if(obj.hours!=undefined&&date.getTZHours()!=undefined){obj.hours+=date.getTZHours()}}return obj}function now(){return fromJSDate(new Date)}function fromJSDate(date){return new Simple("+"+date.toISOString().replace(/\.\d{3}/,""))}function compare(date1,date2){if(isString(date1)){try{if(date1[0]==="A"){date1=new Approximate(date1)}else{date1=new Simple(date1)}}catch(e){throw new Error(date1+" is not a simple date. Can only compare simple dates.")}}if(isString(date2)){try{if(date2[0]==="A"){date2=new Approximate(date2)}else{date2=new Simple(date2)}}catch(e){throw new Error(date2+" is not a simple date. Can only compare simple dates.")}}if(!(date1 instanceof Simple)||!(date2 instanceof Simple)){throw new Error("Bad input. Can only compare simple dates.")}var parts=["_year","_month","_day","_hours","_minutes","_seconds"];for(var i=0;idate2[part]){return 1}else{return-1}}return 0}function isString(obj){return typeof obj==="string"||obj instanceof String}},{"./approximate.js":46,"./duration.js":47,"./simple.js":51,"./util-global.js":52}],54:[function(_dereq_,module,exports){(function(global){(function(){var block={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ *\[([^\]]+)\]: *([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/};block.bullet=/(?:[*+-]|\d+\.)/;block.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;block.item=replace(block.item,"gm")(/bull/g,block.bullet)();block.list=replace(block.list)(/bull/g,block.bullet)("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def","\\n+(?="+block.def.source+")")();block.blockquote=replace(block.blockquote)("def",block.def)();block._tag="(?!(?:"+"a|em|strong|small|s|cite|q|dfn|abbr|data|time|code"+"|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo"+"|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b";block.html=replace(block.html)("comment",//)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/])*?>/)(/tag/g,block._tag)();block.paragraph=replace(block.paragraph)("hr",block.hr)("heading",block.heading)("lheading",block.lheading)("blockquote",block.blockquote)("tag","<"+block._tag)("def",block.def)();block.normal=merge({},block);block.gfm=merge({},block.normal,{fences:/^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,paragraph:/^/});block.gfm.paragraph=replace(block.paragraph)("(?!","(?!"+block.gfm.fences.source.replace("\\1","\\2")+"|"+block.list.source.replace("\\1","\\3")+"|")();block.tables=merge({},block.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/});function Lexer(options){this.tokens=[];this.tokens.links={};this.options=options||marked.defaults;this.rules=block.normal;if(this.options.gfm){if(this.options.tables){this.rules=block.tables}else{this.rules=block.gfm}}}Lexer.rules=block;Lexer.lex=function(src,options){var lexer=new Lexer(options);return lexer.lex(src)};Lexer.prototype.lex=function(src){src=src.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n");return this.token(src,true)};Lexer.prototype.token=function(src,top,bq){var src=src.replace(/^ +$/gm,""),next,loose,cap,bull,b,item,space,i,l;while(src){if(cap=this.rules.newline.exec(src)){src=src.substring(cap[0].length);if(cap[0].length>1){this.tokens.push({type:"space"})}}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);cap=cap[0].replace(/^ {4}/gm,"");this.tokens.push({type:"code",text:!this.options.pedantic?cap.replace(/\n+$/,""):cap});continue}if(cap=this.rules.fences.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"code",lang:cap[2],text:cap[3]});continue}if(cap=this.rules.heading.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"heading",depth:cap[1].length,text:cap[2]});continue}if(top&&(cap=this.rules.nptable.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/\n$/,"").split("\n")};for(i=0;i ?/gm,"");this.token(cap,top,true);this.tokens.push({type:"blockquote_end"});continue}if(cap=this.rules.list.exec(src)){src=src.substring(cap[0].length);bull=cap[2];this.tokens.push({type:"list_start",ordered:bull.length>1});cap=cap[0].match(this.rules.item);next=false;l=cap.length;i=0;for(;i1&&b.length>1)){src=cap.slice(i+1).join("\n")+src;i=l-1}}loose=next||/\n\n(?!\s*$)/.test(item);if(i!==l-1){next=item.charAt(item.length-1)==="\n";if(!loose)loose=next}this.tokens.push({type:loose?"loose_item_start":"list_item_start"});this.token(item,false,bq);this.tokens.push({type:"list_item_end"})}this.tokens.push({type:"list_end"});continue}if(cap=this.rules.html.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:cap[1]==="pre"||cap[1]==="script"||cap[1]==="style",text:cap[0]});continue}if(!bq&&top&&(cap=this.rules.def.exec(src))){src=src.substring(cap[0].length);this.tokens.links[cap[1].toLowerCase()]={href:cap[2],title:cap[3]};continue}if(top&&(cap=this.rules.table.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/(?: *\| *)?\n$/,"").split("\n")};for(i=0;i])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,text:/^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/;inline.link=replace(inline.link)("inside",inline._inside)("href",inline._href)();inline.reflink=replace(inline.reflink)("inside",inline._inside)();inline.normal=merge({},inline);inline.pedantic=merge({},inline.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/});inline.gfm=merge({},inline.normal,{escape:replace(inline.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:replace(inline.text)("]|","~]|")("|","|https?://|")()});inline.breaks=merge({},inline.gfm,{br:replace(inline.br)("{2,}","*")(),text:replace(inline.gfm.text)("{2,}","*")()});function InlineLexer(links,options){this.options=options||marked.defaults;this.links=links;this.rules=inline.normal;this.renderer=this.options.renderer||new Renderer;this.renderer.options=this.options;if(!this.links){throw new Error("Tokens array requires a `links` property.")}if(this.options.gfm){if(this.options.breaks){this.rules=inline.breaks}else{this.rules=inline.gfm}}else if(this.options.pedantic){this.rules=inline.pedantic}}InlineLexer.rules=inline;InlineLexer.output=function(src,links,options){var inline=new InlineLexer(links,options);return inline.output(src)};InlineLexer.prototype.output=function(src){var out="",link,text,href,cap;while(src){if(cap=this.rules.escape.exec(src)){src=src.substring(cap[0].length);out+=cap[1];continue}if(cap=this.rules.autolink.exec(src)){src=src.substring(cap[0].length);if(cap[2]==="@"){text=cap[1].charAt(6)===":"?this.mangle(cap[1].substring(7)):this.mangle(cap[1]);href=this.mangle("mailto:")+text}else{text=escape(cap[1]);href=text}out+=this.renderer.link(href,null,text);continue}if(!this.inLink&&(cap=this.rules.url.exec(src))){src=src.substring(cap[0].length);text=escape(cap[1]);href=text;out+=this.renderer.link(href,null,text);continue}if(cap=this.rules.tag.exec(src)){if(!this.inLink&&/^/i.test(cap[0])){this.inLink=false}src=src.substring(cap[0].length);out+=this.options.sanitize?escape(cap[0]):cap[0];continue}if(cap=this.rules.link.exec(src)){src=src.substring(cap[0].length);this.inLink=true;out+=this.outputLink(cap,{href:cap[2],title:cap[3]});this.inLink=false;continue}if((cap=this.rules.reflink.exec(src))||(cap=this.rules.nolink.exec(src))){src=src.substring(cap[0].length);link=(cap[2]||cap[1]).replace(/\s+/g," ");link=this.links[link.toLowerCase()];if(!link||!link.href){out+=cap[0].charAt(0);src=cap[0].substring(1)+src;continue}this.inLink=true;out+=this.outputLink(cap,link);this.inLink=false;continue}if(cap=this.rules.strong.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.strong(this.output(cap[2]||cap[1]));continue}if(cap=this.rules.em.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.em(this.output(cap[2]||cap[1]));continue}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.codespan(escape(cap[2],true));continue}if(cap=this.rules.br.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.br();continue}if(cap=this.rules.del.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.del(this.output(cap[1]));continue}if(cap=this.rules.text.exec(src)){src=src.substring(cap[0].length);out+=escape(this.smartypants(cap[0]));continue}if(src){throw new Error("Infinite loop on byte: "+src.charCodeAt(0))}}return out};InlineLexer.prototype.outputLink=function(cap,link){var href=escape(link.href),title=link.title?escape(link.title):null;return cap[0].charAt(0)!=="!"?this.renderer.link(href,title,this.output(cap[1])):this.renderer.image(href,title,escape(cap[1]))};InlineLexer.prototype.smartypants=function(text){if(!this.options.smartypants)return text;return text.replace(/--/g,"—").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…")};InlineLexer.prototype.mangle=function(text){var out="",l=text.length,i=0,ch;for(;i.5){ch="x"+ch.toString(16)}out+=""+ch+";"}return out};function Renderer(options){this.options=options||{}}Renderer.prototype.code=function(code,lang,escaped){if(this.options.highlight){var out=this.options.highlight(code,lang);if(out!=null&&out!==code){escaped=true;code=out}}if(!lang){return""+(escaped?code:escape(code,true))+"\n
"}return''+(escaped?code:escape(code,true))+"\n
\n"};Renderer.prototype.blockquote=function(quote){return"\n"+quote+"
\n"};Renderer.prototype.html=function(html){return html};Renderer.prototype.heading=function(text,level,raw){return"\n"};Renderer.prototype.hr=function(){return this.options.xhtml?"
\n":"
\n"};Renderer.prototype.list=function(body,ordered){var type=ordered?"ol":"ul";return"<"+type+">\n"+body+""+type+">\n"};Renderer.prototype.listitem=function(text){return""+text+"\n"};Renderer.prototype.paragraph=function(text){return""+text+"
\n"};Renderer.prototype.table=function(header,body){return"\n"+"\n"+header+"\n"+"\n"+body+"\n"+"
\n"};Renderer.prototype.tablerow=function(content){return"\n"+content+"
\n"};Renderer.prototype.tablecell=function(content,flags){var type=flags.header?"th":"td";var tag=flags.align?"<"+type+' style="text-align:'+flags.align+'">':"<"+type+">";return tag+content+""+type+">\n"};Renderer.prototype.strong=function(text){return""+text+""};Renderer.prototype.em=function(text){return""+text+""};Renderer.prototype.codespan=function(text){return""+text+"
"};Renderer.prototype.br=function(){return this.options.xhtml?"
":"
"};Renderer.prototype.del=function(text){return""+text+""};Renderer.prototype.link=function(href,title,text){if(this.options.sanitize){try{var prot=decodeURIComponent(unescape(href)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return""}if(prot.indexOf("javascript:")===0||prot.indexOf("vbscript:")===0){return""}}var out='"+text+"";return out};Renderer.prototype.image=function(href,title,text){var out='":">";return out};function Parser(options){this.tokens=[];this.token=null;this.options=options||marked.defaults;this.options.renderer=this.options.renderer||new Renderer;this.renderer=this.options.renderer;this.renderer.options=this.options}Parser.parse=function(src,options,renderer){var parser=new Parser(options,renderer);return parser.parse(src)};Parser.prototype.parse=function(src){this.inline=new InlineLexer(src.links,this.options,this.renderer);this.tokens=src.reverse();var out="";while(this.next()){out+=this.tok()}return out};Parser.prototype.next=function(){return this.token=this.tokens.pop()};Parser.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0};Parser.prototype.parseText=function(){var body=this.token.text;while(this.peek().type==="text"){body+="\n"+this.next().text}return this.inline.output(body)};Parser.prototype.tok=function(){switch(this.token.type){case"space":{return""}case"hr":{return this.renderer.hr()}case"heading":{return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text)}case"code":{return this.renderer.code(this.token.text,this.token.lang,this.token.escaped)}case"table":{var header="",body="",i,row,cell,flags,j;cell="";for(i=0;i/g,">").replace(/"/g,""").replace(/'/g,"'")}function unescape(html){return html.replace(/&([#\w]+);/g,function(_,n){n=n.toLowerCase();if(n==="colon")return":";if(n.charAt(0)==="#"){return n.charAt(1)==="x"?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1))}return""})}function replace(regex,opt){regex=regex.source;opt=opt||"";return function self(name,val){if(!name)return new RegExp(regex,opt);val=val.source||val;val=val.replace(/(^|[^\[])\^/g,"$1");regex=regex.replace(name,val);return self}}function noop(){}noop.exec=noop;function merge(obj){var i=1,target,key;for(;iAn error occured:
"+escape(e.message+"",true)+"
"}throw e}}marked.options=marked.setOptions=function(opt){merge(marked.defaults,opt);return marked};marked.defaults={gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,smartLists:false,silent:false,highlight:null,langPrefix:"lang-",smartypants:false,headerPrefix:"",renderer:new Renderer,xhtml:false};marked.Parser=Parser;marked.parser=Parser.parse;marked.Renderer=Renderer;marked.Lexer=Lexer;marked.lexer=Lexer.lex;marked.InlineLexer=InlineLexer;marked.inlineLexer=InlineLexer.output;marked.parse=marked;if(typeof module!=="undefined"&&typeof exports==="object"){module.exports=marked}else if(typeof define==="function"&&define.amd){define(function(){return marked})}else{this.marked=marked}}).call(function(){return this||(typeof window!=="undefined"?window:global)}())}).call(this,typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],55:[function(_dereq_,module,exports){(function(global,factory){if(typeof exports==="object"&&exports){factory(exports)}else if(typeof define==="function"&&define.amd){define(["exports"],factory)}else{factory(global.Mustache={})}})(this,function(mustache){var Object_toString=Object.prototype.toString;var isArray=Array.isArray||function(object){return Object_toString.call(object)==="[object Array]"};function isFunction(object){return typeof object==="function"}function escapeRegExp(string){return string.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}var RegExp_test=RegExp.prototype.test;function testRegExp(re,string){return RegExp_test.call(re,string)}var nonSpaceRe=/\S/;function isWhitespace(string){return!testRegExp(nonSpaceRe,string)}var entityMap={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function escapeHtml(string){return String(string).replace(/[&<>"'\/]/g,function(s){return entityMap[s]})}var whiteRe=/\s*/;var spaceRe=/\s+/;var equalsRe=/\s*=/;var curlyRe=/\s*\}/;var tagRe=/#|\^|\/|>|\{|&|=|!/;function parseTemplate(template,tags){
-if(!template)return[];var sections=[];var tokens=[];var spaces=[];var hasTag=false;var nonSpace=false;function stripSpace(){if(hasTag&&!nonSpace){while(spaces.length)delete tokens[spaces.pop()]}else{spaces=[]}hasTag=false;nonSpace=false}var openingTagRe,closingTagRe,closingCurlyRe;function compileTags(tags){if(typeof tags==="string")tags=tags.split(spaceRe,2);if(!isArray(tags)||tags.length!==2)throw new Error("Invalid tags: "+tags);openingTagRe=new RegExp(escapeRegExp(tags[0])+"\\s*");closingTagRe=new RegExp("\\s*"+escapeRegExp(tags[1]));closingCurlyRe=new RegExp("\\s*"+escapeRegExp("}"+tags[1]))}compileTags(tags||mustache.tags);var scanner=new Scanner(template);var start,type,value,chr,token,openSection;while(!scanner.eos()){start=scanner.pos;value=scanner.scanUntil(openingTagRe);if(value){for(var i=0,valueLength=value.length;i0?sections[sections.length-1][4]:nestedTokens;break;default:collector.push(token)}}return nestedTokens}function Scanner(string){this.string=string;this.tail=string;this.pos=0}Scanner.prototype.eos=function(){return this.tail===""};Scanner.prototype.scan=function(re){var match=this.tail.match(re);if(!match||match.index!==0)return"";var string=match[0];this.tail=this.tail.substring(string.length);this.pos+=string.length;return string};Scanner.prototype.scanUntil=function(re){var index=this.tail.search(re),match;switch(index){case-1:match=this.tail;this.tail="";break;case 0:match="";break;default:match=this.tail.substring(0,index);this.tail=this.tail.substring(index)}this.pos+=match.length;return match};function Context(view,parentContext){this.view=view==null?{}:view;this.cache={".":this.view};this.parent=parentContext}Context.prototype.push=function(view){return new Context(view,this)};Context.prototype.lookup=function(name){var cache=this.cache;var value;if(name in cache){value=cache[name]}else{var context=this,names,index;while(context){if(name.indexOf(".")>0){value=context.view;names=name.split(".");index=0;while(value!=null&&index")value=this._renderPartial(token,context,partials,originalTemplate);else if(symbol==="&")value=this._unescapedValue(token,context);else if(symbol==="name")value=this._escapedValue(token,context);else if(symbol==="text")value=this._rawValue(token);if(value!==undefined)buffer+=value}return buffer};Writer.prototype._renderSection=function(token,context,partials,originalTemplate){var self=this;var buffer="";var value=context.lookup(token[1]);function subRender(template){return self.render(template,context,partials)}if(!value)return;if(isArray(value)){for(var j=0,valueLength=value.length;j=0){simple+="+"+("0000"+this._year).substr(-4,4)}else{simple+="-"+("0000"+Math.abs(this._year)).substr(-4,4)}if(this._month){simple+="-"+("00"+this._month).substr(-2,2)}if(this._day){simple+="-"+("00"+this._day).substr(-2,2)}if(this._hours!=undefined||this._minutes!=undefined||this._seconds!=undefined){simple+="T"}if(this._hours!=undefined){simple+=("00"+this._hours).substr(-2,2)}if(this._minutes!=undefined){simple+=":"+("00"+this._minutes).substr(-2,2)}if(this._seconds!=undefined){simple+=":"+("00"+this._seconds).substr(-2,2)}if(this._hours!=undefined||this._minutes!=undefined||this._seconds!=undefined){if(this._tzHours===0||this._tzMinutes===0){simple+="Z"}else{if(this._tzHours!=undefined){if(this._tzHours>=0){simple+="+"}else{simple+="-"}simple+=("00"+Math.abs(this._tzHours)).substr(-2,2)}if(this._tzMinutes!=undefined){simple+=":"+("00"+this._tzMinutes).substr(-2,2)}}}return simple};module.exports=Simple},{"./util-global.js":52}],52:[function(_dereq_,module,exports){module.exports={daysInMonth:daysInMonth};function daysInMonth(month,year){switch(month){case 1:case 3:case 5:case 7:case 8:case 10:case 12:return 31;case 4:case 6:case 9:case 11:return 30;case 2:var leapyear;if(year%4!=0){leapyear=false}else if(year%100!=0){leapyear=true}else if(year%400!=0){leapyear=false}else{leapyear=true}if(leapyear){return 29}else{return 28}default:throw new Error("Unknown Month")}}},{}],53:[function(_dereq_,module,exports){var GlobalUtil=_dereq_("./util-global.js"),Duration=_dereq_("./duration.js"),Simple=_dereq_("./simple.js"),Approximate=_dereq_("./approximate.js");module.exports={getDuration:getDuration,daysInMonth:GlobalUtil.daysInMonth,addDuration:addDuration,multiplyDuration:multiplyDuration,now:now,fromJSDate:fromJSDate,compare:compare};function multiplyDuration(startDuration,multiplier){if(!isFinite(multiplier)||multiplier<=0){throw new Error("Invalid Multiplier")}var newDuration={},hasTime=false,duration="";if(startDuration.getSeconds()){newDuration.seconds=Math.round(startDuration.getSeconds()*multiplier)}if(startDuration.getMinutes()){newDuration.minutes=Math.round(startDuration.getMinutes()*multiplier)}if(startDuration.getHours()){newDuration.hours=Math.round(startDuration.getHours()*multiplier)}if(startDuration.getDays()){newDuration.days=Math.round(startDuration.getDays()*multiplier)}if(startDuration.getMonths()){newDuration.months=Math.round(startDuration.getMonths()*multiplier)}if(startDuration.getYears()){newDuration.years=Math.round(startDuration.getYears()*multiplier)}if(newDuration.seconds){hasTime=true;duration=newDuration.seconds+"S"+duration}if(newDuration.minutes){hasTime=true;duration=newDuration.minutes+"M"+duration}if(newDuration.hours){hasTime=true;duration=newDuration.hours+"H"+duration}if(hasTime){duration="T"+duration}if(newDuration.days){duration=newDuration.days+"D"+duration}if(newDuration.months){duration=newDuration.months+"M"+duration}if(newDuration.years){duration=newDuration.years+"Y"+duration}if(!duration){throw new Error("Invalid Duration Multiplier")}return new Duration("P"+duration)}function addDuration(startDate,duration){var end=getObjFromDate(startDate,false),endString="";zipDuration(end,duration);if(startDate.getTZHours()!=undefined){if(startDate.getTZHours()<0){endString+="-"}else{endString+="+"}endString+=("00"+Math.abs(startDate.getTZHours())).substr(-2,2);endString+=":"+("00"+Math.abs(startDate.getTZMinutes())).substr(-2,2)}if(duration.getSeconds()){end.seconds+=duration.getSeconds()}while(end.seconds&&end.seconds>=60){end.seconds-=60;end.minutes+=1}if(end.seconds!=undefined){endString=":"+("00"+end.seconds).substr(-2,2)+endString}if(duration.getMinutes()){end.minutes+=duration.getMinutes()}while(end.minutes&&end.minutes>=60){end.minutes-=60;end.hours+=1}if(end.minutes!=undefined){endString=":"+("00"+end.minutes).substr(-2,2)+endString}if(duration.getHours()){end.hours+=duration.getHours()}while(end.hours&&end.hours>=24){end.hours-=24;end.day+=1}if(end.hours!=undefined){endString="T"+("00"+end.hours).substr(-2,2)+endString}if(duration.getDays()){end.day+=duration.getDays()}while(end.day&&end.day>GlobalUtil.daysInMonth(end.month,end.year)){end.day-=GlobalUtil.daysInMonth(end.month,end.year);end.month+=1;if(end.month>12){end.month-=12;end.year+=1}}if(duration.getMonths()){end.month+=duration.getMonths()}while(end.month&&end.month>12){end.month-=12;end.year+=1}if(end.day&&end.day>GlobalUtil.daysInMonth(end.month,end.year)){end.day=end.day-GlobalUtil.daysInMonth(end.month,end.year);end.month+=1;if(end.month>12){end.month-=12;end.year+=1}}if(end.day!=undefined){endString="-"+("00"+end.day).substr(-2,2)+endString}if(end.month!=undefined){endString="-"+("00"+end.month).substr(-2,2)+endString}if(duration.getYears()){end.year+=duration.getYears()}if(end.year!=undefined){endString=("0000"+Math.abs(end.year)).substr(-4,4)+endString;if(end.year<0){endString="-"+endString}else{endString="+"+endString}}if(end.year>9999){throw new Error("New date out of range")}if(startDate.isApproximate()){endString="A"+endString;return new Approximate(endString)}else{return new Simple(endString)}}function getDuration(startDate,endDate){if(!(startDate instanceof Simple&&endDate instanceof Simple)){throw new Error("Start and end dates must be simple dates")}var start=getObjFromDate(startDate,true),end=getObjFromDate(endDate,true),hasTime=false,duration="";zipDates(start,end);if(end.seconds!=undefined){while(end.seconds-start.seconds<0){end.minutes-=1;end.seconds+=60}if(end.seconds-start.seconds>0){hasTime=true;duration=("00"+(end.seconds-start.seconds)).substr(-2,2)+"S"+duration}}if(end.minutes!=undefined){while(end.minutes-start.minutes<0){end.hours-=1;end.minutes+=60}if(end.minutes-start.minutes>0){hasTime=true;duration=("00"+(end.minutes-start.minutes)).substr(-2,2)+"M"+duration}}if(end.hours!=undefined){while(end.hours-start.hours<0){end.day-=1;end.hours+=24}if(end.hours-start.hours>0){hasTime=true;duration=("00"+(end.hours-start.hours)).substr(-2,2)+"H"+duration}}if(hasTime){duration="T"+duration}if(end.day!=undefined){while(end.day-start.day<0){end.month-=1;if(end.month<1){end.year-=1;end.month+=12}end.day+=GlobalUtil.daysInMonth(end.month,end.year)}if(end.day-start.day>0){duration=("00"+(end.day-start.day)).substr(-2,2)+"D"+duration}}if(end.month!=undefined){while(end.month-start.month<0){end.year-=1;end.month+=12}if(end.month-start.month>0){duration=("00"+(end.month-start.month)).substr(-2,2)+"M"+duration}}if(end.year-start.year>0){duration=("0000"+(end.year-start.year)).substr(-4,4)+"Y"+duration}if(end.year-start.year<0||duration==""){throw new Error("Start Date must be less than End Date")}return new Duration("P"+duration)}function zipDates(start,end){if(start.month!=undefined&&end.month==undefined){end.month=1}if(start.month==undefined&&end.month!=undefined){start.month=1}if(start.day!=undefined&&end.day==undefined){end.day=1}if(start.day==undefined&&end.day!=undefined){start.day=1}if(start.hours!=undefined&&end.hours==undefined){end.hours=0}if(start.hours==undefined&&end.hours!=undefined){start.hours=0}if(start.minutes!=undefined&&end.minutes==undefined){end.minutes=0}if(start.minutes==undefined&&end.minutes!=undefined){start.minutes=0}if(start.seconds!=undefined&&end.seconds==undefined){end.seconds=0}if(start.seconds==undefined&&end.seconds!=undefined){start.seconds=0}}function zipDuration(date,duration){var toSet={};if(duration.getSeconds()){toSet={seconds:true,minutes:true,hours:true,days:true,months:true}}else if(duration.getMinutes()){toSet={minutes:true,hours:true,days:true,months:true}}else if(duration.getHours()){toSet={hours:true,days:true,months:true}}else if(duration.getDays()){toSet={days:true,months:true}}else if(duration.getMonths()){toSet={months:true}}else{return}if(toSet.seconds&&date.seconds==undefined){date.seconds=0}if(toSet.minutes&&date.minutes==undefined){date.minutes=0}if(toSet.hours&&date.hours==undefined){date.hours=0}if(toSet.days&&date.day==undefined){date.day=1}if(toSet.months&&date.month==undefined){date.month=1}}function getObjFromDate(date,adjustTimezone){var obj={year:date.getYear(),month:date.getMonth(),day:date.getDay(),hours:date.getHours(),minutes:date.getMinutes(),seconds:date.getSeconds()};if(adjustTimezone){if(obj.minutes!=undefined&&date.getTZMinutes()!=undefined){obj.minutes+=date.getTZMinutes()}if(obj.hours!=undefined&&date.getTZHours()!=undefined){obj.hours+=date.getTZHours()}}return obj}function now(){return fromJSDate(new Date)}function fromJSDate(date){return new Simple("+"+date.toISOString().replace(/\.\d{3}/,""))}function compare(date1,date2){if(isString(date1)){try{if(date1[0]==="A"){date1=new Approximate(date1)}else{date1=new Simple(date1)}}catch(e){throw new Error(date1+" is not a simple date. Can only compare simple dates.")}}if(isString(date2)){try{if(date2[0]==="A"){date2=new Approximate(date2)}else{date2=new Simple(date2)}}catch(e){throw new Error(date2+" is not a simple date. Can only compare simple dates.")}}if(!(date1 instanceof Simple)||!(date2 instanceof Simple)){throw new Error("Bad input. Can only compare simple dates.")}var parts=["_year","_month","_day","_hours","_minutes","_seconds"];for(var i=0;idate2[part]){return 1}else{return-1}}return 0}function isString(obj){return typeof obj==="string"||obj instanceof String}},{"./approximate.js":46,"./duration.js":47,"./simple.js":51,"./util-global.js":52}],54:[function(_dereq_,module,exports){(function(global){(function(){var block={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ *\[([^\]]+)\]: *([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/};block.bullet=/(?:[*+-]|\d+\.)/;block.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;block.item=replace(block.item,"gm")(/bull/g,block.bullet)();block.list=replace(block.list)(/bull/g,block.bullet)("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def","\\n+(?="+block.def.source+")")();block.blockquote=replace(block.blockquote)("def",block.def)();block._tag="(?!(?:"+"a|em|strong|small|s|cite|q|dfn|abbr|data|time|code"+"|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo"+"|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b";block.html=replace(block.html)("comment",//)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/])*?>/)(/tag/g,block._tag)();block.paragraph=replace(block.paragraph)("hr",block.hr)("heading",block.heading)("lheading",block.lheading)("blockquote",block.blockquote)("tag","<"+block._tag)("def",block.def)();block.normal=merge({},block);block.gfm=merge({},block.normal,{fences:/^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,paragraph:/^/});block.gfm.paragraph=replace(block.paragraph)("(?!","(?!"+block.gfm.fences.source.replace("\\1","\\2")+"|"+block.list.source.replace("\\1","\\3")+"|")();block.tables=merge({},block.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/});function Lexer(options){this.tokens=[];this.tokens.links={};this.options=options||marked.defaults;this.rules=block.normal;if(this.options.gfm){if(this.options.tables){this.rules=block.tables}else{this.rules=block.gfm}}}Lexer.rules=block;Lexer.lex=function(src,options){var lexer=new Lexer(options);return lexer.lex(src)};Lexer.prototype.lex=function(src){src=src.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n");return this.token(src,true)};Lexer.prototype.token=function(src,top,bq){var src=src.replace(/^ +$/gm,""),next,loose,cap,bull,b,item,space,i,l;while(src){if(cap=this.rules.newline.exec(src)){src=src.substring(cap[0].length);if(cap[0].length>1){this.tokens.push({type:"space"})}}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);cap=cap[0].replace(/^ {4}/gm,"");this.tokens.push({type:"code",text:!this.options.pedantic?cap.replace(/\n+$/,""):cap});continue}if(cap=this.rules.fences.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"code",lang:cap[2],text:cap[3]});continue}if(cap=this.rules.heading.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"heading",depth:cap[1].length,text:cap[2]});continue}if(top&&(cap=this.rules.nptable.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/\n$/,"").split("\n")};for(i=0;i ?/gm,"");this.token(cap,top,true);this.tokens.push({type:"blockquote_end"});continue}if(cap=this.rules.list.exec(src)){src=src.substring(cap[0].length);bull=cap[2];this.tokens.push({type:"list_start",ordered:bull.length>1});cap=cap[0].match(this.rules.item);next=false;l=cap.length;i=0;for(;i1&&b.length>1)){src=cap.slice(i+1).join("\n")+src;i=l-1}}loose=next||/\n\n(?!\s*$)/.test(item);if(i!==l-1){next=item.charAt(item.length-1)==="\n";if(!loose)loose=next}this.tokens.push({type:loose?"loose_item_start":"list_item_start"});this.token(item,false,bq);this.tokens.push({type:"list_item_end"})}this.tokens.push({type:"list_end"});continue}if(cap=this.rules.html.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:cap[1]==="pre"||cap[1]==="script"||cap[1]==="style",text:cap[0]});continue}if(!bq&&top&&(cap=this.rules.def.exec(src))){src=src.substring(cap[0].length);this.tokens.links[cap[1].toLowerCase()]={href:cap[2],title:cap[3]};continue}if(top&&(cap=this.rules.table.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/(?: *\| *)?\n$/,"").split("\n")};for(i=0;i])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,text:/^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/;inline.link=replace(inline.link)("inside",inline._inside)("href",inline._href)();inline.reflink=replace(inline.reflink)("inside",inline._inside)();inline.normal=merge({},inline);inline.pedantic=merge({},inline.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/});inline.gfm=merge({},inline.normal,{escape:replace(inline.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:replace(inline.text)("]|","~]|")("|","|https?://|")()});inline.breaks=merge({},inline.gfm,{br:replace(inline.br)("{2,}","*")(),text:replace(inline.gfm.text)("{2,}","*")()});function InlineLexer(links,options){this.options=options||marked.defaults;this.links=links;this.rules=inline.normal;this.renderer=this.options.renderer||new Renderer;this.renderer.options=this.options;if(!this.links){throw new Error("Tokens array requires a `links` property.")}if(this.options.gfm){if(this.options.breaks){this.rules=inline.breaks}else{this.rules=inline.gfm}}else if(this.options.pedantic){this.rules=inline.pedantic}}InlineLexer.rules=inline;InlineLexer.output=function(src,links,options){var inline=new InlineLexer(links,options);return inline.output(src)};InlineLexer.prototype.output=function(src){var out="",link,text,href,cap;while(src){if(cap=this.rules.escape.exec(src)){src=src.substring(cap[0].length);out+=cap[1];continue}if(cap=this.rules.autolink.exec(src)){src=src.substring(cap[0].length);if(cap[2]==="@"){text=cap[1].charAt(6)===":"?this.mangle(cap[1].substring(7)):this.mangle(cap[1]);href=this.mangle("mailto:")+text}else{text=escape(cap[1]);href=text}out+=this.renderer.link(href,null,text);continue}if(!this.inLink&&(cap=this.rules.url.exec(src))){src=src.substring(cap[0].length);text=escape(cap[1]);href=text;out+=this.renderer.link(href,null,text);continue}if(cap=this.rules.tag.exec(src)){if(!this.inLink&&/^/i.test(cap[0])){this.inLink=false}src=src.substring(cap[0].length);out+=this.options.sanitize?escape(cap[0]):cap[0];continue}if(cap=this.rules.link.exec(src)){src=src.substring(cap[0].length);this.inLink=true;out+=this.outputLink(cap,{href:cap[2],title:cap[3]});this.inLink=false;continue}if((cap=this.rules.reflink.exec(src))||(cap=this.rules.nolink.exec(src))){src=src.substring(cap[0].length);link=(cap[2]||cap[1]).replace(/\s+/g," ");link=this.links[link.toLowerCase()];if(!link||!link.href){out+=cap[0].charAt(0);src=cap[0].substring(1)+src;continue}this.inLink=true;out+=this.outputLink(cap,link);this.inLink=false;continue}if(cap=this.rules.strong.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.strong(this.output(cap[2]||cap[1]));continue}if(cap=this.rules.em.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.em(this.output(cap[2]||cap[1]));continue}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.codespan(escape(cap[2],true));continue}if(cap=this.rules.br.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.br();continue}if(cap=this.rules.del.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.del(this.output(cap[1]));continue}if(cap=this.rules.text.exec(src)){src=src.substring(cap[0].length);out+=escape(this.smartypants(cap[0]));continue}if(src){throw new Error("Infinite loop on byte: "+src.charCodeAt(0))}}return out};InlineLexer.prototype.outputLink=function(cap,link){var href=escape(link.href),title=link.title?escape(link.title):null;return cap[0].charAt(0)!=="!"?this.renderer.link(href,title,this.output(cap[1])):this.renderer.image(href,title,escape(cap[1]))};InlineLexer.prototype.smartypants=function(text){if(!this.options.smartypants)return text;return text.replace(/--/g,"—").replace(/(^|[-\u2014\/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014\/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…")};InlineLexer.prototype.mangle=function(text){var out="",l=text.length,i=0,ch;for(;i.5){ch="x"+ch.toString(16)}out+=""+ch+";"}return out};function Renderer(options){this.options=options||{}}Renderer.prototype.code=function(code,lang,escaped){if(this.options.highlight){var out=this.options.highlight(code,lang);if(out!=null&&out!==code){escaped=true;code=out}}if(!lang){return""+(escaped?code:escape(code,true))+"\n
"}return''+(escaped?code:escape(code,true))+"\n
\n"};Renderer.prototype.blockquote=function(quote){return"\n"+quote+"
\n"};Renderer.prototype.html=function(html){return html};Renderer.prototype.heading=function(text,level,raw){return"\n"};Renderer.prototype.hr=function(){return this.options.xhtml?"
\n":"
\n"};Renderer.prototype.list=function(body,ordered){var type=ordered?"ol":"ul";return"<"+type+">\n"+body+""+type+">\n"};Renderer.prototype.listitem=function(text){return""+text+"\n"};Renderer.prototype.paragraph=function(text){return""+text+"
\n"};Renderer.prototype.table=function(header,body){return"\n"+"\n"+header+"\n"+"\n"+body+"\n"+"
\n"};Renderer.prototype.tablerow=function(content){return"\n"+content+"
\n"};Renderer.prototype.tablecell=function(content,flags){var type=flags.header?"th":"td";var tag=flags.align?"<"+type+' style="text-align:'+flags.align+'">':"<"+type+">";return tag+content+""+type+">\n"};Renderer.prototype.strong=function(text){return""+text+""};Renderer.prototype.em=function(text){return""+text+""};Renderer.prototype.codespan=function(text){return""+text+"
"};Renderer.prototype.br=function(){return this.options.xhtml?"
":"
"};Renderer.prototype.del=function(text){return""+text+""};Renderer.prototype.link=function(href,title,text){if(this.options.sanitize){try{var prot=decodeURIComponent(unescape(href)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return""}if(prot.indexOf("javascript:")===0||prot.indexOf("vbscript:")===0){return""}}var out='"+text+"";return out};Renderer.prototype.image=function(href,title,text){var out='":">";return out};function Parser(options){this.tokens=[];this.token=null;this.options=options||marked.defaults;this.options.renderer=this.options.renderer||new Renderer;this.renderer=this.options.renderer;this.renderer.options=this.options}Parser.parse=function(src,options,renderer){var parser=new Parser(options,renderer);return parser.parse(src)};Parser.prototype.parse=function(src){this.inline=new InlineLexer(src.links,this.options,this.renderer);this.tokens=src.reverse();var out="";while(this.next()){out+=this.tok()}return out};Parser.prototype.next=function(){return this.token=this.tokens.pop()};Parser.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0};Parser.prototype.parseText=function(){var body=this.token.text;while(this.peek().type==="text"){body+="\n"+this.next().text}return this.inline.output(body)};Parser.prototype.tok=function(){switch(this.token.type){case"space":{return""}case"hr":{return this.renderer.hr()}case"heading":{return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text)}case"code":{return this.renderer.code(this.token.text,this.token.lang,this.token.escaped)}case"table":{var header="",body="",i,row,cell,flags,j;cell="";for(i=0;i/g,">").replace(/"/g,""").replace(/'/g,"'")}function unescape(html){return html.replace(/&([#\w]+);/g,function(_,n){n=n.toLowerCase();if(n==="colon")return":";if(n.charAt(0)==="#"){return n.charAt(1)==="x"?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1))}return""})}function replace(regex,opt){regex=regex.source;opt=opt||"";return function self(name,val){if(!name)return new RegExp(regex,opt);val=val.source||val;val=val.replace(/(^|[^\[])\^/g,"$1");regex=regex.replace(name,val);return self}}function noop(){}noop.exec=noop;function merge(obj){var i=1,target,key;for(;iAn error occured:"+escape(e.message+"",true)+"
"}throw e}}marked.options=marked.setOptions=function(opt){merge(marked.defaults,opt);return marked};marked.defaults={gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,smartLists:false,silent:false,highlight:null,langPrefix:"lang-",smartypants:false,headerPrefix:"",renderer:new Renderer,xhtml:false};marked.Parser=Parser;marked.parser=Parser.parse;marked.Renderer=Renderer;marked.Lexer=Lexer;marked.lexer=Lexer.lex;marked.InlineLexer=InlineLexer;marked.inlineLexer=InlineLexer.output;marked.parse=marked;if(typeof module!=="undefined"&&typeof exports==="object"){module.exports=marked}else if(typeof define==="function"&&define.amd){define(function(){return marked})}else{this.marked=marked}}).call(function(){return this||(typeof window!=="undefined"?window:global)}())}).call(this,typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],55:[function(_dereq_,module,exports){(function(global,factory){if(typeof exports==="object"&&exports){factory(exports)}else if(typeof define==="function"&&define.amd){define(["exports"],factory)}else{factory(global.Mustache={})}})(this,function(mustache){var Object_toString=Object.prototype.toString;var isArray=Array.isArray||function(object){return Object_toString.call(object)==="[object Array]"};function isFunction(object){return typeof object==="function"}function escapeRegExp(string){return string.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}var RegExp_test=RegExp.prototype.test;function testRegExp(re,string){return RegExp_test.call(re,string)}var nonSpaceRe=/\S/;function isWhitespace(string){return!testRegExp(nonSpaceRe,string)}var entityMap={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function escapeHtml(string){return String(string).replace(/[&<>"'\/]/g,function(s){return entityMap[s]})}var whiteRe=/\s*/;var spaceRe=/\s+/;var equalsRe=/\s*=/;var curlyRe=/\s*\}/;var tagRe=/#|\^|\/|>|\{|&|=|!/;
+
+function parseTemplate(template,tags){if(!template)return[];var sections=[];var tokens=[];var spaces=[];var hasTag=false;var nonSpace=false;function stripSpace(){if(hasTag&&!nonSpace){while(spaces.length)delete tokens[spaces.pop()]}else{spaces=[]}hasTag=false;nonSpace=false}var openingTagRe,closingTagRe,closingCurlyRe;function compileTags(tags){if(typeof tags==="string")tags=tags.split(spaceRe,2);if(!isArray(tags)||tags.length!==2)throw new Error("Invalid tags: "+tags);openingTagRe=new RegExp(escapeRegExp(tags[0])+"\\s*");closingTagRe=new RegExp("\\s*"+escapeRegExp(tags[1]));closingCurlyRe=new RegExp("\\s*"+escapeRegExp("}"+tags[1]))}compileTags(tags||mustache.tags);var scanner=new Scanner(template);var start,type,value,chr,token,openSection;while(!scanner.eos()){start=scanner.pos;value=scanner.scanUntil(openingTagRe);if(value){for(var i=0,valueLength=value.length;i0?sections[sections.length-1][4]:nestedTokens;break;default:collector.push(token)}}return nestedTokens}function Scanner(string){this.string=string;this.tail=string;this.pos=0}Scanner.prototype.eos=function(){return this.tail===""};Scanner.prototype.scan=function(re){var match=this.tail.match(re);if(!match||match.index!==0)return"";var string=match[0];this.tail=this.tail.substring(string.length);this.pos+=string.length;return string};Scanner.prototype.scanUntil=function(re){var index=this.tail.search(re),match;switch(index){case-1:match=this.tail;this.tail="";break;case 0:match="";break;default:match=this.tail.substring(0,index);this.tail=this.tail.substring(index)}this.pos+=match.length;return match};function Context(view,parentContext){this.view=view==null?{}:view;this.cache={".":this.view};this.parent=parentContext}Context.prototype.push=function(view){return new Context(view,this)};Context.prototype.lookup=function(name){var cache=this.cache;var value;if(name in cache){value=cache[name]}else{var context=this,names,index;while(context){if(name.indexOf(".")>0){value=context.view;names=name.split(".");index=0;while(value!=null&&index")value=this._renderPartial(token,context,partials,originalTemplate);else if(symbol==="&")value=this._unescapedValue(token,context);else if(symbol==="name")value=this._escapedValue(token,context);else if(symbol==="text")value=this._rawValue(token);if(value!==undefined)buffer+=value}return buffer};Writer.prototype._renderSection=function(token,context,partials,originalTemplate){var self=this;var buffer="";var value=context.lookup(token[1]);function subRender(template){return self.render(template,context,partials)}if(!value)return;if(isArray(value)){for(var j=0,valueLength=value.length;j","\"","'","/","escapeHtml","whiteRe","spaceRe","equalsRe","curlyRe","tagRe","parseTemplate","sections","spaces","hasTag","nonSpace","stripSpace","openingTagRe","closingTagRe","closingCurlyRe","compileTags","scanner","Scanner","chr","openSection","eos","pos","scanUntil","valueLength","scan","nestTokens","squashTokens","squashedTokens","lastToken","numTokens","nestedTokens","collector","section","tail","index","search","Context","view","parentContext","cache",".","lookup","context","Writer","clearCache","renderTokens","originalTemplate","buffer","symbol","_renderSection","_renderInverted","_renderPartial","_unescapedValue","_escapedValue","_rawValue","subRender","defaultWriter","to_html","send","result"],"mappings":"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","sourceRoot":"http://genealogysystems.github.io/fs-check/"}
\ No newline at end of file
+{"version":3,"file":"fs-check.min.js","sources":["fs-check.js"],"names":["e","exports","module","define","amd","f","window","global","self","FSCheck","t","n","r","s","o","u","a","require","i","Error","call","length",1,"_dereq_","utils","help","id","type","signature","check","person","parents","birthBeforeParentBirth","birth","$getBirth","addParent","parent","push","name","$getDisplayName","$getDisplayBirthDate","date","birthFormal","getFormalDate","isFullDate","parentBirth","parentBirthDate","compareFormalDates","template","pid","personName","personBirth","createOpportunity","this","../help","../util",2,"GedcomXDate","relationships","persons","marriages","getSpouseRelationships","childrenBeforeMarriage","marriage","marriageFacts","$getFacts","marriageDates","j","fact","ensureFullDate","sort","marriageDate","children","getChildRelationshipsOf","$getSpouseId","rel","childId","$getChildId","child","isBiologicalChildAndParents","birthDate","data","spouseId","spouse","spouseName","childName","gedcomx-date",3,"gender","compareList","newFormalDate","b","problemPairs","previous","current","previousGedcomXDate","currentGedcomXDate","birthDuration","getDuration","getYears","getMonths","firstName","id1","secondName","id2","pairs","formalDatesEqual","date1","date2","../util.js",4,"death","$getDeath","$getFormalDate","birthYear","getFactYear","deathYear","birthGedx","deathGedx",5,"names","$getNames","simplified","duplicates","fullText","$getFullText","simple","toLowerCase","replace",6,"alternates","preferred",7,"people","spouseIds","getSpouseIds","problemMarriages","formalDeathDate","formalDeathGedx","coupleRelationship","getSpouseRelationship","coupleFacts","problemMarriage","formalMarriageDate","formalMarriageGedx","coupleId","formalDate","spouses",8,"allSpouseIds","spouseIdsWithoutChildren","multipleSpouses",9,"getFactPlace","undefined","gensearchPerson",10,"place",11,"year",12,"sourceRefs","sourceArr","getSourceRefs","tagged","x","$getTags","indexOf","findarecord","tags","from","to",13,14,15,16,17,"mother","father","childRelationship","birthPlace","mothername","mid","gensearch","givenName","$getGivenName","familyName","$getSurname","motherGivenName","motherFamilyName",18,"surname",19,"wife","husband","facts","count","marriageFact","$getMarriageFact","crid","wid","hid","wifeName","husbandName","marriagePlace","spouseGivenName","spouseFamilyName",20,21,22,"marriageYear","cid","couple",23,"fathername","fid","fatherGivenName","fatherFamilyName",24,25,26,27,28,"parentRelationships","getParentRelationships","biologicalParentIds","relationship","fatherId","$getFatherId","motherId","$getMotherId","fatherFacts","$getFatherFacts","motherFacts","$getMotherFacts","Object","keys",29,"regex","$getPreferredName","nameText","nameMatches","match","badNames",30,"matches","getResultsCount","goodMatches","results","getSearchResults","confidence","singular",31,"titles","title",32,"$getDate","$getNormalizedDate",33,"$getPlace","$getNormalizedPlace",34,35,36,37,38,"badChars","chars","join","brackets",39,"addingAndCorrecting","customEvents","deletingInformation","mergingDuplicates","nonexactDates","recordHints","standardizing","parentRelationshipType",40,"ids","signatures","types","languages","all","checks","checkId","list","add","templates","lang","code","remove","splice","language","translate","opportunity","translation","description","markdown","partials","helpId","Array","isArray","links","_help","gedcomxDate","url","./checks/birthBeforeParentsBirth","./checks/childBeforeMarriage","./checks/childrenTooClose","./checks/deathBeforeBirth","./checks/duplicateNames","./checks/manyAlternateNames","./checks/marriageAfterDeath","./checks/marriageWithNoChildren","./checks/missingBirth","./checks/missingBirthDate","./checks/missingBirthPlace","./checks/missingBirthSource","./checks/missingDeath","./checks/missingDeathDate","./checks/missingDeathPlace","./checks/missingDeathSource","./checks/missingFather","./checks/missingGivenName","./checks/missingMarriageDate","./checks/missingMarriageFact","./checks/missingMarriagePlace","./checks/missingMarriageSource","./checks/missingMother","./checks/missingName","./checks/missingParents","./checks/missingSurname","./checks/multipleMarriageFacts","./checks/multipleParents","./checks/orInName","./checks/possibleDuplicates","./checks/recordHints","./checks/standardizeBirthDate","./checks/standardizeBirthPlace","./checks/standardizeDeathDate","./checks/standardizeDeathPlace","./checks/standardizeMarriageDate","./checks/standardizeMarriagePlace","./checks/unusualCharactersInName","./help","./util",41,"marked","renderer","Renderer","mustache","heading","text","level","getSimpleFormalDate","getYear","extractYearFromDateString","toFormalString","test","Date","isNaN","getTime","fromJSDate","substring","formalDateString","getType","getStart","getEnd","start","duration","halfDuration","multiplyDuration","addDuration","getFullYear","parseInt","render","deathPlace","deathDate","compare","personId","isString","isUndefined","getMonth","getDay","newMonth","newDay","_month","validDayMax","daysInMonth","_day","childAndParents","containsBiologicalParentFact","arg","prototype","toString","obj","String",42,"process","nextTick","canSetImmediate","setImmediate","canPost","postMessage","addEventListener","queue","ev","source","stopPropagation","fn","shift","setTimeout","browser","env","argv","noop","on","once","off","emit","binding","cwd","chdir","dir",43,"create","inherits","ctor","superCtor","super_","constructor","value","enumerable","writable","configurable","TempCtor",44,"isBuffer","copy","fill","readUInt8",45,"formatRegExp","format","objects","arguments","inspect","args","len","str","Number","JSON","stringify","_","isNull","isObject","deprecate","msg","apply","noDeprecation","warned","deprecated","throwDeprecation","traceDeprecation","console","trace","error","debugs","debugEnviron","debuglog","set","NODE_DEBUG","toUpperCase","RegExp","opts","ctx","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","customInspect","stylizeWithColor","formatValue","bold","italic","underline","inverse","white","grey","black","blue","cyan","green","magenta","red","yellow","styles","special","number","boolean","null","string","regexp","styleType","style","arrayToHash","array","hash","forEach","val","idx","recurseTimes","isFunction","ret","primitive","formatPrimitive","visibleKeys","getOwnPropertyNames","isError","formatError","isRegExp","isDate","base","braces","toUTCString","output","formatArray","map","key","formatProperty","pop","reduceToSingleString","isNumber","l","hasOwnProperty","desc","getOwnPropertyDescriptor","get","split","line","substr","numLinesEst","reduce","prev","cur","ar","isNullOrUndefined","isSymbol","re","objectToString","d","isPrimitive","pad","months","timestamp","time","getHours","getMinutes","getSeconds","getDate","log","origin","prop","./support/isBuffer","/home/ubuntu/workspace/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js",46,"util","Simple","Approximate","charAt","message","isApproximate","./simple.js",47,"Duration","_parseNormalized","currentNum","inTime","valid","character","_years","slice","_minutes","_months","_days","_hours","_seconds","getDays",48,"GedUtil","Recurring","Range","version","now","./approximate.js","./range.js","./recurring.js","./util.js",49,"range","_approximate","parts","end","./duration.js",50,"countNum","getNth","getCount","Infinity","multiplier",51,"GlobalUtil","_parse","_year","getUTCFullYear","getUTCMonth","getUTCDay","getUTCHours","getUTCMinutes","getUTCSeconds","_tzHours","_tzMinutes","offset","_parseTime","month","day","flag24","tempDate","tempOffset","getTimezoneOffset","hours","_parseTimezone","minutes","seconds","tzHours","tzMinutes","getTZHours","getTZMinutes","Math","abs","./util-global.js",52,"leapyear",53,"startDuration","isFinite","newDuration","hasTime","round","days","years","startDate","getObjFromDate","endString","zipDuration","endDate","zipDates","toSet","adjustTimezone","toISOString","part",54,"block","newline","fences","hr","nptable","lheading","blockquote","html","def","table","paragraph","bullet","item","_tag","normal","merge","gfm","tables","Lexer","options","tokens","defaults","rules","lex","src","lexer","token","top","bq","next","loose","cap","bull","space","exec","pedantic","header","align","cells","ordered","smartLists","sanitize","pre","href","charCodeAt","inline","escape","autolink","tag","link","reflink","nolink","strong","em","br","del","_inside","_href","breaks","InlineLexer","out","mangle","inLink","outputLink","codespan","smartypants","image","ch","random","escaped","highlight","langPrefix","quote","raw","headerPrefix","xhtml","body","listitem","tablerow","content","tablecell","flags","prot","decodeURIComponent","unescape","Parser","parse","parser","reverse","tok","peek","parseText","row","cell","encode","fromCharCode","opt","target","callback","pending","done","err","silent","setOptions","inlineLexer",55,"factory","Mustache","Object_toString","object","escapeRegExp","RegExp_test","testRegExp","nonSpaceRe","isWhitespace","entityMap","&","<",">","\"","'","/","escapeHtml","whiteRe","spaceRe","equalsRe","curlyRe","tagRe","parseTemplate","sections","spaces","hasTag","nonSpace","stripSpace","openingTagRe","closingTagRe","closingCurlyRe","compileTags","scanner","Scanner","chr","openSection","eos","pos","scanUntil","valueLength","scan","nestTokens","squashTokens","squashedTokens","lastToken","numTokens","nestedTokens","collector","section","tail","index","search","Context","view","parentContext","cache",".","lookup","context","Writer","clearCache","renderTokens","originalTemplate","buffer","symbol","_renderSection","_renderInverted","_renderPartial","_unescapedValue","_escapedValue","_rawValue","subRender","defaultWriter","to_html","send","result"],"mappings":"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","sourceRoot":"http://genealogysystems.github.io/fs-check/"}
\ No newline at end of file
diff --git a/lang/en/fs-check-en.js b/lang/en/fs-check-en.js
index 47796da..c81cfeb 100644
--- a/lang/en/fs-check-en.js
+++ b/lang/en/fs-check-en.js
@@ -1 +1 @@
-!function(){FSCheck.language({"code":"en","help":{"addingAndCorrecting":"Adding and Correcting Information in the Tree","customEvents":"Custom Events and Facts","mergingDuplicates":"Merging Duplicate Persons","nonexactDates":"Approximate Dates","recordHints":"Reviewing Record Hints","standardizing":"Standardizing Dates and Places","parentRelationshipType":"Updating Parent Relationship Type"},"checks":{"birthBeforeParentsBirth":{"title":"Person Born Before their Parent(s)","description":"{{personName}}, born {{personBirth}}, was born before one or more of their parents.\n\n{{#parents}}\n* [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{id}}) was born {{birth}}\n{{/parents}}\n\nGo to [FamilySearch](https://familysearch.org/tree/#view=ancestor&person={{pid}}) and update the person or their parent's birth date(s)."},"childBeforeMarriage":{"title":"Child Born Before Marriage","description":"It is abnormal for a child to be born before a couple is married. It is possible \nwhen the child is adopted or is a step-child. In this case the parent relationship \ntype needs to be be changed from biological to adopted, foster, guardianship, or \nstep. Check the marriages with the following people to verify the marriage date, \nthe children's birth dates, and the parent relationship type.\n\n{{#children}}\n* [{{childName}}](https://familysearch.org/tree/#view=ancestor&person={{childId}}) was born before {{name}} married [{{spouseName}}](https://familysearch.org/tree/#view=ancestor&person={{spouseId}}).\n{{/children}}"},"childrenTooClose":{"title":"Children Too Close","description":"[{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}) has children born less than 9 months apart. This can only happen with\nthe birth of twins or a premature birth. Examine the birth dates of these children\nclosely to verify that they are correct. Find sources to support the birth dates if you can.\n\n{{#pairs}}\n* [{{secondName}}](https://familysearch.org/tree/#view=ancestor&person={{id2}}) was born less than 9 months after [{{firstName}}](https://familysearch.org/tree/#view=ancestor&person={{id1}})\n{{/pairs}}"},"deathBeforeBirth":{"title":"Person Died Before They Were Born","description":"A person cannot die before they were born. Visit [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}})\nin the Family Tree and fix the issue by doing one of the following:\n\n* Change the birth date to be before the death date\n* Change the death date to be after the birth date"},"duplicateNames":{"title":"Identical Names","description":"This person has names which differ only by capitalization or punctuation.\nIt is not necessary to document all of the different ways a name could be capitalized or punctuated.\nView [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}) in the Family Tree and delete\nsome of the unnecessary names.\n\n{{#duplicates}} \n\n{{#.}}\n* {{.}}\n{{/.}} \n\n{{/duplicates}}"},"manyAlternateNames":{"title":"Many Alternate Names","description":"When a person has many alternate names they are often duplicates, slight misspellings, or differ only in punctuation.\nConsider deleting some of the alternate names that aren't necessary in the [Family Tree](https://familysearch.org/tree/#view=ancestor&person={{pid}}).\n\n{{#names}}\n* {{.}}\n{{/names}}"},"marriageAfterDeath":{"title":"Marriage After Death","description":"{{name}} has marriage events which occurred after their death date.\nEither the death date is wrong or the marriage dates are wrong. \nView the couple relationships in FamilySearch to fix the problem.\n\n{{#spouses}}\n* [{{spouseName}}](https://familysearch.org/tree/#view=coupleRelationship&relationshipId={{coupleId}}) - A marriage event occured after {{name}}'s death.\n{{/spouses}}"},"marriageWithNoChildren":{"title":"Marriage with no Children","description":"{{^multipleSpouses}}\nThe marriage between [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}})\nand [{{spouse.name}}](https://familysearch.org/tree/#view=ancestor&person={{spouse.id}}) has no children. Though this is possible it still represents\nan opportunity for research until you are confident that the couple had no children.\n{{/multipleSpouses}}\n{{#multipleSpouses}}\n[{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}) has multiple marriages\nwith no children. Though this is possible it still represents an opportunity for research \nuntil you are confident that the couples had no children.\n\n{{#spouses}}\n* [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{id}})\n{{/spouses}}\n{{/multipleSpouses}}"},"missingBirth":{"title":"Find a Birth","description":"Try these steps to find the birth information for [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}):\n\n{{> researchHelp}}"},"missingBirthDate":{"title":"Find a Birth Date","description":"Try these steps to find the birth date for [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}):\n\n{{> researchHelp}}"},"missingBirthPlace":{"title":"Find a Birth Place","description":"Try these steps to find the birth place for [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}):\n\n{{> researchHelp}}"},"missingBirthSource":{"title":"Find a Birth Record","description":"Try these steps to find a birth record for [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}):\n\n{{> researchHelp}}\n\nWe use [tags](https://familysearch.org/ask/salesforce/viewArticle?urlname=Adding-Changing-and-Removing-Tags-from-Sources&lang=en)\nto determine whether a source supports birth information. It is possible that a birth\nsource is already attached but not tagged as a birth source."},"missingDeath":{"title":"Find a Death","description":"Try these steps to find the death information for [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}):\n\n{{> researchHelp}}"},"missingDeathDate":{"title":"Find a Death Date","description":"Try these steps to find the death date for [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}):\n\n{{> researchHelp}}"},"missingDeathPlace":{"title":"Find a Death Place","description":"Try these steps to find the death place for [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}):\n\n{{> researchHelp}}"},"missingDeathSource":{"title":"Find a Death Record","description":"Try these steps to find a death record for [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}):\n\n{{> researchHelp}}\n\nWe use [tags](https://familysearch.org/ask/salesforce/viewArticle?urlname=Adding-Changing-and-Removing-Tags-from-Sources&lang=en)\nto determine whether a source supports death information. It is possible that a death\nsource is already attached but not tagged as a death source."},"missingFather":{"title":"Missing a Father","description":"[{{mothername}}](https://familysearch.org/tree/#view=ancestor&person={{mid}}) is listed as a mother of [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}) but there is no father. Try these steps to find the father:\n\n{{> researchHelp}}"},"missingGivenName":{"title":"Missing a Given Name","description":"This person is missing a given name. It's possible that the name is known but not filled in.\nCheck to see if the given name appears in the list of alternate names or in any of the attached records.\nIt is possible that the person never had a given name, such as a child that died at birth."},"missingMarriageDate":{"title":"Find a Marriage Date","description":"The [marriage](https://familysearch.org/tree/#view=coupleRelationship&relationshipId={{crid}})\nbetween [{{wifeName}}](https://familysearch.org/tree/#view=allMatchingRecords&person={{wid}}) and [{{husbandName}}](https://familysearch.org/tree/#view=allMatchingRecords&person={{hid}}) has no marriage date. \nTry these steps to find the marriage date:\n \n{{> researchHelpMarriage}}"},"missingMarriageFact":{"title":"Find a Marriage","description":"The [marriage](https://familysearch.org/tree/#view=coupleRelationship&relationshipId={{crid}})\nbetween [{{wifeName}}](https://familysearch.org/tree/#view=allMatchingRecords&person={{wid}}) and [{{husbandName}}](https://familysearch.org/tree/#view=allMatchingRecords&person={{hid}}) has no marriage date or place. \nTry these steps to find their marriage information:\n \n{{> researchHelpMarriage}}"},"missingMarriagePlace":{"title":"Find a Marriage Place","description":"The [marriage](https://familysearch.org/tree/#view=coupleRelationship&relationshipId={{crid}})\nbetween [{{wifeName}}](https://familysearch.org/tree/#view=allMatchingRecords&person={{wid}}) and [{{husbandName}}](https://familysearch.org/tree/#view=allMatchingRecords&person={{hid}}) has no marriage place. \nTry these steps to find the marriage place:\n\n{{> researchHelpMarriage}}"},"missingMarriageSource":{"title":"Find a Marriage Record","description":"Try these steps to find a marriage record for [{{couple}}](https://familysearch.org/tree/#view=coupleRelationship&relationshipId={{cid}}):\n\n{{> researchHelpMarriage}}"},"missingMother":{"title":"Missing a Mother","description":"[{{fathername}}](https://familysearch.org/tree/#view=ancestor&person={{fid}}) is \nlisted as a father of [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}) \nbut there is no mother. Try these steps to find the mother:\n\n{{> researchHelp}}"},"missingName":{"title":"Missing a Name","description":"This person's name is not known. There are few reasons for a person to exist in the tree without a name.\nIn fact, FamilySearch no longer allows people to be created without a name.\nIf there is no other information nor relationships for this person then you can safely delete the person."},"missingParents":{"title":"Missing Parents","description":"Try these steps to find the parents of [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}):\n\n{{> researchHelp}}"},"missingSurname":{"title":"Missing a Surname","description":"This person is missing a surname. It's possible that the surname is known but not filled in.\nCheck to see if the surname appears in the list of alternate names or in any of the attached records.\nIn most areas of the world, the surname can be inferred if the names of the parents are known."},"multipleMarriageFacts":{"title":"Multiple Marriage Facts","description":"The marriage between [{{wifeName}} and {{husbandName}}](https://familysearch.org/tree/#view=coupleRelationship&relationshipId={{crid}})\nhas multiple marriage events. This is only possible in the unlikely situation where the couple \nremarried after divorcing. Try to merge similar information and reduce the events down to just one.\nView their [relationship](https://familysearch.org/tree/#view=coupleRelationship&relationshipId={{crid}})\nin the Family Tree to correct this problem."},"multipleParents":{"title":"Multiple Parent Relationships","description":"{{name}} is listed as having multiple biological parents, which is highly improbable.\nChildren can have multiple parents if they were adopted, or in other similar\ncircumstances. In this case the parent relationship type needs to be\nbe changed from biological to adopted, foster, guardianship, or step."},"orInName":{"title":"Incorrect Alternate Name Format","description":"{{#preferred}}\nThis person's name has an \"or\" in it which is incorrectly used to document alternate names.\nIt is better to add the alternate form as a separate name altogether.\nIn the [Family Tree](https://familysearch.org/tree/#view=ancestor&person={{pid}}), add the alternate form as an\nalternate name then remove it from the person's preferred name.\n{{/preferred}}\n{{^preferred}}\nThese alternate names have an \"or\" in it which is incorrectly used to document alternate names.\nIt is better to add the alternate form as a separate name altogether.\nIn the [Family Tree](https://familysearch.org/tree/#view=ancestor&person={{pid}}), add the alternate form as\nanother alternate name and remove it from the original alternate name.\n\n{{#badNames}}\n* {{.}}\n{{/badNames}}\n{{/preferred}}"},"possibleDuplicates":{"title":"Possible Duplicate Persons","description":"FamilySearch has identified {{count}} {{#singular}}person as a potential duplicate{{/singular}}\n{{^singular}}people as potential duplicates{{/singular}} of {{name}}.\nReview the [list of duplicates](https://familysearch.org/tree/#view=possibleDuplicates&person={{pid}}) in FamilySearch.\nMerge duplicate persons and mark incorrect matches as \"Not a Match\"."},"recordHints":{"title":"Record Hints","description":"FamilySearch has found matching records for {{name}} in the following collections:\n\n{{#titles}}\n* {{.}}\n{{/titles}}\n\n[Review these matches](https://familysearch.org/tree/#view=allMatchingRecords&person={{pid}}) and attach the sources to your tree."},"unusualCharactersInName":{"title":"Unusual Characters in a Name","description":"{{#preferred}}\nThis person has the following unusual characters in their name: {{chars}}.\n{{#brackets}}\nThese characters are often used to annotate an alternate given name or surname, but this is better done by adding an alternate name.\nRemove the alternate annotations from the preferred name and add them as alternate names.\n{{/brackets}}\n{{^brackets}} \nThese characters are not normally found in names. Update the person's name in the [Family Tree](https://familysearch.org/tree/#view=ancestor&person={{pid}}) to remove the unusual characters.\n{{/brackets}}\n{{/preferred}}\n{{^preferred}}\nThese alternate names have characters which normally do not appear in names:\n\n{{#badNames}}\n* {{.}}\n{{/badNames}}\n\nUpdate these names in the [Family Tree](https://familysearch.org/tree/#view=ancestor&person={{pid}}) to remove the unusual characters.\n{{/preferred}}"},"standardizeBirthDate":{"title":"Standardize a Birth Date","description":"[{{name}}'s](https://familysearch.org/tree/#view=ancestor&person={{pid}}) birth date of `{{date}}` has not been standardized.\n\nStandardization ensures that everyone knows when this event took place.\nBecause there are many date formats used accross the world, it may not always be obvious what the date actually is.\nTake `3/11/2000` for example. Is this March 11, 2000 or November 3, 2000?\nBy standardizing the date we can avoid this confusion."},"standardizeBirthPlace":{"title":"Standardize a Birth Place","description":"[{{name}}'s](https://familysearch.org/tree/#view=ancestor&person={{pid}}) birth place of `{{place}}` has not been standardized.\n\nStandardization ensures that everyone knows where this event took place.\nBecause there are many different ways to spell or qualify a place, it may not always be obvious where that place actually is.\nTake `London` for example. Is this the London in England, Kentucky, or Ontario?\nBy standardizing the place we can avoid this confusion."},"standardizeDeathDate":{"title":"Standardize a Death Date","description":"[{{name}}'s](https://familysearch.org/tree/#view=ancestor&person={{pid}}) death date of `{{date}}` has not been standardized.\n\nStandardization ensures that everyone knows when this event took place.\nBecause there are many date formats used accross the world, it may not always be obvious what the date actually is.\nTake `3/11/2000` for example. Is this March 11, 2000 or November 3, 2000?\nBy standardizing the date we can avoid this confusion."},"standardizeDeathPlace":{"title":"Standardize a Death Place","description":"[{{name}}'s](https://familysearch.org/tree/#view=ancestor&person={{pid}}) death place of `{{place}}` has not been standardized.\n\nStandardization ensures that everyone knows where this event took place.\nBecause there are many different ways to spell or qualify a place, it may not always be obvious where that place actually is.\nTake `London` for example. Is this the London in England, Kentucky, or Ontario?\nBy standardizing the place we can avoid this confusion."},"standardizeMarriageDate":{"title":"Standardize a Marriage Date","description":"The marriage date of `{{date}}` has not been standardized for the marriage between\n[{{wifeName}} and {{husbandName}}](https://familysearch.org/tree/#view=coupleRelationship&relationshipId={{crid}}).\n\nStandardization ensures that everyone knows when this event took place.\nBecause there are many date formats used accross the world, it may not always be obvious what the date actually is.\nTake `3/11/2000` for example. Is this March 11, 2000 or November 3, 2000?\nBy standardizing the date we can avoid this confusion."},"standardizeMarriagePlace":{"title":"Standardize a Marriage Place","description":"The marriage place of `{{place}}` has not been standardized for the marriage between\n[{{wifeName}} and {{husbandName}}](https://familysearch.org/tree/#view=coupleRelationship&relationshipId={{crid}}). \n\nStandardization ensures that everyone knows where this event took place.\nBecause there are many different ways to spell or qualify a place, it may not always be obvious where that place actually is.\nTake `London` for example. Is this the London in England, Kentucky, or Ontario?\nBy standardizing the place we can avoid this confusion."}},"partials":{"researchHelp":"1. Review the [record hints](https://familysearch.org/tree/#view=allMatchingRecords&person={{pid}}) in FamilySearch.\n1. Do broad searches on popular genealogy websites using the links below or using the [RootsSearch](https://chrome.google.com/webstore/detail/rootssearch/aolcffalbhpnojekmimmelebjchjmmgn?hl=en) Chrome Extension.\n1. Ask for help at the [Genealogy and Family History](http://genealogy.stackexchange.com/) Stack Exchange website.\n1. Visit a local [Family History Center](https://familysearch.org/ask/help#localResource).\n1. Hire a researcher from the [Genlighten](http://www.genlighten.com/) community.","researchHelpMarriage":"1. Review the record hints in FamilySearch for both [{{wifeName}}](https://familysearch.org/tree/#view=allMatchingRecords&person={{wid}}) and [{{husbandName}}](https://familysearch.org/tree/#view=allMatchingRecords&person={{hid}}).\n1. Do broad searches on popular genealogy websites using the links below or using the [RootsSearch](https://chrome.google.com/webstore/detail/rootssearch/aolcffalbhpnojekmimmelebjchjmmgn?hl=en) Chrome Extension.\n1. Ask for help at the [Genealogy and Family History](http://genealogy.stackexchange.com/) Stack Exchange website.\n1. Visit a local [Family History Center](https://familysearch.org/ask/help#localResource).\n1. Hire a researcher from the [Genlighten](http://www.genlighten.com/) community."}});}();
\ No newline at end of file
+!function(){FSCheck.language({"code":"en","help":{"addingAndCorrecting":"Adding and Correcting Information in the Tree","customEvents":"Custom Events and Facts","mergingDuplicates":"Merging Duplicate Persons","nonexactDates":"Approximate Dates","recordHints":"Reviewing Record Hints","standardizing":"Standardizing Dates and Places","parentRelationshipType":"Updating Parent Relationship Type"},"checks":{"birthBeforeParentsBirth":{"title":"Person Born Before their Parent(s)","description":"{{personName}}, born {{personBirth}}, was born before one or more of their parents.\n\n{{#parents}}\n* [{{name}}](https://familysearch.org/tree/person/{{id}}/details) was born {{birth}}\n{{/parents}}\n\nGo to [FamilySearch](https://familysearch.org/tree/person/{{pid}}/details) and update the person or their parent's birth date(s)."},"childBeforeMarriage":{"title":"Child Born Before Marriage","description":"It is abnormal for a child to be born before a couple is married. It is possible \nwhen the child is adopted or is a step-child. In this case the parent relationship \ntype needs to be be changed from biological to adopted, foster, guardianship, or \nstep. Check the marriages with the following people to verify the marriage date, \nthe children's birth dates, and the parent relationship type.\n\n{{#children}}\n* [{{childName}}](https://familysearch.org/tree/person/{{childId}}/details) was born before {{name}} married [{{spouseName}}](https://familysearch.org/tree/person/{{spouseId}}/details).\n{{/children}}"},"childrenTooClose":{"title":"Children Too Close","description":"[{{name}}](https://familysearch.org/tree/person/{{pid}}/details) has children born less than 9 months apart. This can only happen with\nthe birth of twins or a premature birth. Examine the birth dates of these children\nclosely to verify that they are correct. Find sources to support the birth dates if you can.\n\n{{#pairs}}\n* [{{secondName}}](https://familysearch.org/tree/person/{{id2}}/details) was born less than 9 months after [{{firstName}}](https://familysearch.org/tree/person/{{id1}}/details)\n{{/pairs}}"},"deathBeforeBirth":{"title":"Person Died Before They Were Born","description":"A person cannot die before they were born. Visit [{{name}}](https://familysearch.org/tree/person/{{pid}}/details)\nin the Family Tree and fix the issue by doing one of the following:\n\n* Change the birth date to be before the death date\n* Change the death date to be after the birth date"},"duplicateNames":{"title":"Identical Names","description":"This person has names which differ only by capitalization or punctuation.\nIt is not necessary to document all of the different ways a name could be capitalized or punctuated.\nView [{{name}}](https://familysearch.org/tree/person/{{pid}}/details) in the Family Tree and delete\nsome of the unnecessary names.\n\n{{#duplicates}} \n\n{{#.}}\n* {{.}}\n{{/.}} \n\n{{/duplicates}}"},"manyAlternateNames":{"title":"Many Alternate Names","description":"When a person has many alternate names they are often duplicates, slight misspellings, or differ only in punctuation.\nConsider deleting some of the alternate names that aren't necessary in the [Family Tree](https://familysearch.org/tree/person/{{pid}}/details).\n\n{{#names}}\n* {{.}}\n{{/names}}"},"marriageAfterDeath":{"title":"Marriage After Death","description":"{{name}} has marriage events which occurred after their death date.\nEither the death date is wrong or the marriage dates are wrong. \nView the couple relationships in FamilySearch to fix the problem.\n\n{{#spouses}}\n* [{{spouseName}}](https://familysearch.org/tree/relationship/{{coupleId}}/couple) - A marriage event occured after {{name}}'s death.\n{{/spouses}}"},"marriageWithNoChildren":{"title":"Marriage with no Children","description":"{{^multipleSpouses}}\nThe marriage between [{{name}}](https://familysearch.org/tree/person/{{pid}}/details)\nand [{{spouse.name}}](https://familysearch.org/tree/person/{{spouse.id}}/details) has no children. Though this is possible it still represents\nan opportunity for research until you are confident that the couple had no children.\n{{/multipleSpouses}}\n{{#multipleSpouses}}\n[{{name}}](https://familysearch.org/tree/person/{{pid}}/details) has multiple marriages\nwith no children. Though this is possible it still represents an opportunity for research \nuntil you are confident that the couples had no children.\n\n{{#spouses}}\n* [{{name}}](https://familysearch.org/tree/person/{{id}}/details)\n{{/spouses}}\n{{/multipleSpouses}}"},"missingBirth":{"title":"Find a Birth","description":"Try these steps to find the birth information for [{{name}}](https://familysearch.org/tree/person/{{pid}}/details):\n\n{{> researchHelp}}"},"missingBirthDate":{"title":"Find a Birth Date","description":"Try these steps to find the birth date for [{{name}}](https://familysearch.org/tree/person/{{pid}}/details):\n\n{{> researchHelp}}"},"missingBirthPlace":{"title":"Find a Birth Place","description":"Try these steps to find the birth place for [{{name}}](https://familysearch.org/tree/person/{{pid}}/details):\n\n{{> researchHelp}}"},"missingBirthSource":{"title":"Find a Birth Record","description":"Try these steps to find a birth record for [{{name}}](https://familysearch.org/tree/person/{{pid}}/details):\n\n{{> researchHelp}}\n\nWe use [tags](https://familysearch.org/ask/salesforce/viewArticle?urlname=Adding-Changing-and-Removing-Tags-from-Sources&lang=en)\nto determine whether a source supports birth information. It is possible that a birth\nsource is already attached but not tagged as a birth source."},"missingDeath":{"title":"Find a Death","description":"Try these steps to find the death information for [{{name}}](https://familysearch.org/tree/person/{{pid}}/details):\n\n{{> researchHelp}}"},"missingDeathDate":{"title":"Find a Death Date","description":"Try these steps to find the death date for [{{name}}](https://familysearch.org/tree/person/{{pid}}/details):\n\n{{> researchHelp}}"},"missingDeathPlace":{"title":"Find a Death Place","description":"Try these steps to find the death place for [{{name}}](https://familysearch.org/tree/person/{{pid}}/details):\n\n{{> researchHelp}}"},"missingDeathSource":{"title":"Find a Death Record","description":"Try these steps to find a death record for [{{name}}](https://familysearch.org/tree/person/{{pid}}/details):\n\n{{> researchHelp}}\n\nWe use [tags](https://familysearch.org/ask/salesforce/viewArticle?urlname=Adding-Changing-and-Removing-Tags-from-Sources&lang=en)\nto determine whether a source supports death information. It is possible that a death\nsource is already attached but not tagged as a death source."},"missingFather":{"title":"Missing a Father","description":"[{{mothername}}](https://familysearch.org/tree/person/{{mid}}/details) is listed as a mother of [{{name}}](https://familysearch.org/tree/person/{{pid}}/details) but there is no father. Try these steps to find the father:\n\n{{> researchHelp}}"},"missingGivenName":{"title":"Missing a Given Name","description":"This person is missing a given name. It's possible that the name is known but not filled in.\nCheck to see if the given name appears in the list of alternate names or in any of the attached records.\nIt is possible that the person never had a given name, such as a child that died at birth."},"missingMarriageDate":{"title":"Find a Marriage Date","description":"The [marriage](https://familysearch.org/tree/relationship/{{crid}}/couple)\nbetween [{{wifeName}}](https://familysearch.org/tree/person/{{wid}}/research-help) and [{{husbandName}}](https://familysearch.org/tree/person/{{hid}}/research-help) has no marriage date. \nTry these steps to find the marriage date:\n \n{{> researchHelpMarriage}}"},"missingMarriageFact":{"title":"Find a Marriage","description":"The [marriage](https://familysearch.org/tree/relationship/{{crid}}/couple)\nbetween [{{wifeName}}](https://familysearch.org/tree/person/{{wid}}/research-help) and [{{husbandName}}](https://familysearch.org/tree/person/{{hid}}/research-help) has no marriage date or place. \nTry these steps to find their marriage information:\n \n{{> researchHelpMarriage}}"},"missingMarriagePlace":{"title":"Find a Marriage Place","description":"The [marriage](https://familysearch.org/tree/relationship/{{crid}}/couple)\nbetween [{{wifeName}}](https://familysearch.org/tree/person/{{wid}}/research-help) and [{{husbandName}}](https://familysearch.org/tree/person/{{hid}}/research-help) has no marriage place. \nTry these steps to find the marriage place:\n\n{{> researchHelpMarriage}}"},"missingMarriageSource":{"title":"Find a Marriage Record","description":"Try these steps to find a marriage record for [{{couple}}](https://familysearch.org/tree/relationship/{{cid}}/couple):\n\n{{> researchHelpMarriage}}"},"missingMother":{"title":"Missing a Mother","description":"[{{fathername}}](https://familysearch.org/tree/person/{{fid}}/details) is \nlisted as a father of [{{name}}](https://familysearch.org/tree/person/{{pid}}/details) \nbut there is no mother. Try these steps to find the mother:\n\n{{> researchHelp}}"},"missingName":{"title":"Missing a Name","description":"This person's name is not known. There are few reasons for a person to exist in the tree without a name.\nIn fact, FamilySearch no longer allows people to be created without a name.\nIf there is no other information nor relationships for this person then you can safely delete the person."},"missingParents":{"title":"Missing Parents","description":"Try these steps to find the parents of [{{name}}](https://familysearch.org/tree/person/{{pid}}/details):\n\n{{> researchHelp}}"},"missingSurname":{"title":"Missing a Surname","description":"This person is missing a surname. It's possible that the surname is known but not filled in.\nCheck to see if the surname appears in the list of alternate names or in any of the attached records.\nIn most areas of the world, the surname can be inferred if the names of the parents are known."},"multipleMarriageFacts":{"title":"Multiple Marriage Facts","description":"The marriage between [{{wifeName}} and {{husbandName}}](https://familysearch.org/tree/relationship/{{crid}}/couple)\nhas multiple marriage events. This is only possible in the unlikely situation where the couple \nremarried after divorcing. Try to merge similar information and reduce the events down to just one.\nView their [relationship](https://familysearch.org/tree/relationship/{{crid}}/couple)\nin the Family Tree to correct this problem."},"multipleParents":{"title":"Multiple Parent Relationships","description":"{{name}} is listed as having multiple biological parents, which is highly improbable.\nChildren can have multiple parents if they were adopted, or in other similar\ncircumstances. In this case the parent relationship type needs to be\nbe changed from biological to adopted, foster, guardianship, or step."},"orInName":{"title":"Incorrect Alternate Name Format","description":"{{#preferred}}\nThis person's name has an \"or\" in it which is incorrectly used to document alternate names.\nIt is better to add the alternate form as a separate name altogether.\nIn the [Family Tree](https://familysearch.org/tree/person/{{pid}}/details), add the alternate form as an\nalternate name then remove it from the person's preferred name.\n{{/preferred}}\n{{^preferred}}\nThese alternate names have an \"or\" in it which is incorrectly used to document alternate names.\nIt is better to add the alternate form as a separate name altogether.\nIn the [Family Tree](https://familysearch.org/tree/person/{{pid}}/details), add the alternate form as\nanother alternate name and remove it from the original alternate name.\n\n{{#badNames}}\n* {{.}}\n{{/badNames}}\n{{/preferred}}"},"possibleDuplicates":{"title":"Possible Duplicate Persons","description":"FamilySearch has identified {{count}} {{#singular}}person as a potential duplicate{{/singular}}\n{{^singular}}people as potential duplicates{{/singular}} of {{name}}.\nReview the [list of duplicates](https://familysearch.org/tree/person/{{pid}}/possible-duplicates) in FamilySearch.\nMerge duplicate persons and mark incorrect matches as \"Not a Match\"."},"recordHints":{"title":"Record Hints","description":"FamilySearch has found matching records for {{name}} in the following collections:\n\n{{#titles}}\n* {{.}}\n{{/titles}}\n\n[Review these matches](https://familysearch.org/tree/person/{{pid}}/research-help) and attach the sources to your tree."},"unusualCharactersInName":{"title":"Unusual Characters in a Name","description":"{{#preferred}}\nThis person has the following unusual characters in their name: {{chars}}.\n{{#brackets}}\nThese characters are often used to annotate an alternate given name or surname, but this is better done by adding an alternate name.\nRemove the alternate annotations from the preferred name and add them as alternate names.\n{{/brackets}}\n{{^brackets}} \nThese characters are not normally found in names. Update the person's name in the [Family Tree](https://familysearch.org/tree/person/{{pid}}/details) to remove the unusual characters.\n{{/brackets}}\n{{/preferred}}\n{{^preferred}}\nThese alternate names have characters which normally do not appear in names:\n\n{{#badNames}}\n* {{.}}\n{{/badNames}}\n\nUpdate these names in the [Family Tree](https://familysearch.org/tree/person/{{pid}}/details) to remove the unusual characters.\n{{/preferred}}"},"standardizeBirthDate":{"title":"Standardize a Birth Date","description":"[{{name}}'s](https://familysearch.org/tree/person/{{pid}}/details) birth date of `{{date}}` has not been standardized.\n\nStandardization ensures that everyone knows when this event took place.\nBecause there are many date formats used accross the world, it may not always be obvious what the date actually is.\nTake `3/11/2000` for example. Is this March 11, 2000 or November 3, 2000?\nBy standardizing the date we can avoid this confusion."},"standardizeBirthPlace":{"title":"Standardize a Birth Place","description":"[{{name}}'s](https://familysearch.org/tree/person/{{pid}}/details) birth place of `{{place}}` has not been standardized.\n\nStandardization ensures that everyone knows where this event took place.\nBecause there are many different ways to spell or qualify a place, it may not always be obvious where that place actually is.\nTake `London` for example. Is this the London in England, Kentucky, or Ontario?\nBy standardizing the place we can avoid this confusion."},"standardizeDeathDate":{"title":"Standardize a Death Date","description":"[{{name}}'s](https://familysearch.org/tree/person/{{pid}}/details) death date of `{{date}}` has not been standardized.\n\nStandardization ensures that everyone knows when this event took place.\nBecause there are many date formats used accross the world, it may not always be obvious what the date actually is.\nTake `3/11/2000` for example. Is this March 11, 2000 or November 3, 2000?\nBy standardizing the date we can avoid this confusion."},"standardizeDeathPlace":{"title":"Standardize a Death Place","description":"[{{name}}'s](https://familysearch.org/tree/person/{{pid}}/details) death place of `{{place}}` has not been standardized.\n\nStandardization ensures that everyone knows where this event took place.\nBecause there are many different ways to spell or qualify a place, it may not always be obvious where that place actually is.\nTake `London` for example. Is this the London in England, Kentucky, or Ontario?\nBy standardizing the place we can avoid this confusion."},"standardizeMarriageDate":{"title":"Standardize a Marriage Date","description":"The marriage date of `{{date}}` has not been standardized for the marriage between\n[{{wifeName}} and {{husbandName}}](https://familysearch.org/tree/relationship/{{crid}}/couple).\n\nStandardization ensures that everyone knows when this event took place.\nBecause there are many date formats used accross the world, it may not always be obvious what the date actually is.\nTake `3/11/2000` for example. Is this March 11, 2000 or November 3, 2000?\nBy standardizing the date we can avoid this confusion."},"standardizeMarriagePlace":{"title":"Standardize a Marriage Place","description":"The marriage place of `{{place}}` has not been standardized for the marriage between\n[{{wifeName}} and {{husbandName}}](https://familysearch.org/tree/relationship/{{crid}}/couple). \n\nStandardization ensures that everyone knows where this event took place.\nBecause there are many different ways to spell or qualify a place, it may not always be obvious where that place actually is.\nTake `London` for example. Is this the London in England, Kentucky, or Ontario?\nBy standardizing the place we can avoid this confusion."}},"partials":{"researchHelp":"1. Review the [record hints](https://familysearch.org/tree/person/{{pid}}/research-help) in FamilySearch.\n1. Do broad searches on popular genealogy websites using the links below or using the [RootsSearch](https://chrome.google.com/webstore/detail/rootssearch/aolcffalbhpnojekmimmelebjchjmmgn?hl=en) Chrome Extension.\n1. Ask for help at the [Genealogy and Family History](http://genealogy.stackexchange.com/) Stack Exchange website.\n1. Visit a local [Family History Center](https://familysearch.org/ask/help#localResource).\n1. Hire a researcher from the [Genlighten](http://www.genlighten.com/) community.","researchHelpMarriage":"1. Review the record hints in FamilySearch for both [{{wifeName}}](https://familysearch.org/tree/person/{{wid}}/research-help) and [{{husbandName}}](https://familysearch.org/tree/person/{{hid}}/research-help).\n1. Do broad searches on popular genealogy websites using the links below or using the [RootsSearch](https://chrome.google.com/webstore/detail/rootssearch/aolcffalbhpnojekmimmelebjchjmmgn?hl=en) Chrome Extension.\n1. Ask for help at the [Genealogy and Family History](http://genealogy.stackexchange.com/) Stack Exchange website.\n1. Visit a local [Family History Center](https://familysearch.org/ask/help#localResource).\n1. Hire a researcher from the [Genlighten](http://www.genlighten.com/) community."}});}();
\ No newline at end of file
diff --git a/lang/es/fs-check-es.js b/lang/es/fs-check-es.js
index ae5b376..51f4fe2 100644
--- a/lang/es/fs-check-es.js
+++ b/lang/es/fs-check-es.js
@@ -1 +1 @@
-!function(){FSCheck.language({"code":"es","help":{"addingAndCorrecting":"Añadiendo y corrigiendo información en el árbol","customEvents":"Eventos y hechos personalizados","mergingDuplicates":"Combinando personas duplicadas","nonexactDates":"Fechas aproximadas","parentRelationshipType":"Actualizando tipo de relación paternofilial","recordHints":"Revisando registros sugeridos","standardizing":"Estandarizando fechas y lugares"},"checks":{"birthBeforeParentsBirth":{"title":"Persona nacida antes que su(s) padre(s)","description":"{{personName}}, nacida el {{personBirth}}, nació antes que uno o más de sus padres.\n\n{{#parents}}\n* [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{id}}) nació {{birth}}\n{{/parents}}\n\nVaya a [FamilySearch](https://familysearch.org/tree/#view=ancestor&person={{pid}}) y actualice la(s) fecha(s) de nacimiento de la persona o de sus padres."},"childBeforeMarriage":{"title":"Hijo nacido antes del matrimonio","description":"Es anormal que un niño nazca antes de que una pareja se case. Esto es posible cuando el niño es adoptado o es un hijastro. En este caso el tipo de relación paternofilial necesita ser cambiado de biológica a por adopción, acogida, tutela, o hijastro. Compruebe los matrimonios con las siguientes personas para verificar la fecha del matrimonio, las fechas de nacimiento de los niños y el tipo de relación paternofilial.\n\n{{#children}}\n* [{{childName}}](https://familysearch.org/tree/#view=ancestor&person={{childId}}) nació antes de que {{name}} se casase con [{{spouseName}}](https://familysearch.org/tree/#view=ancestor&person={{spouseId}}).\n{{/children}}"},"childrenTooClose":{"title":"Niños demasiado cercanos","description":"[{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}) tiene hijos nacidos con menos de nueve meses de diferencia. Esto solo puede suceder con el nacimiento de gemelos o un parto prematuro. Examine detenidamente las fechas de nacimiento de estos niños para comprobar que son correctos. Encuentre las fuentes para apoyar las fechas de nacimiento, si puede.\n\n{{#pairs}}\n* [{{secondName}}](https://familysearch.org/tree/#view=ancestor&person={{id2}}) nació menos de nueve meses después de [{{firstName}}](https://familysearch.org/tree/#view=ancestor&person={{id1}})\n{{/pairs}}"},"deathBeforeBirth":{"title":"La persona murió antes de nacer","description":"Una persona no puede morir antes de nacer. Visite [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}})\nen el árbol de familia y solucione el problema de una de las siguientes maneras:\n\n* Cambiando la fecha de nacimiento a antes de la fecha de la muerte\n* Cambiando la fecha de la muerte a después de la fecha de nacimiento"},"duplicateNames":{"title":"Nombres idénticos","description":"Esta persona tiene nombres que solo se diferencian por capitalización o puntuación.\nNo es necesario documentar todas las diferentes formas en que un nombre podría ser capitalizado o puntuado.\nVea [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}) en el árbol de familia y elimine algunos de los nombres innecesarios.\n\n{{#duplicates}} \n\n{{#.}}\n* {{.}}\n{{/.}} \n\n{{/duplicates}}"},"manyAlternateNames":{"title":"Muchos nombres alternativos","description":"Cuando una persona tiene muchos nombres alternativos que a menudo son duplicados, errores ortográficos leves, o difieren sólo en puntuación.\nConsidere suprimir algunos de los nombres alternativos que no son necesarios en el [Árbol de familia](https://familysearch.org/tree/#view=ancestor&person={{pid}}).\n\n{{#names}}\n* {{.}}\n{{/names}}"},"marriageAfterDeath":{"title":"Matrimonio después de la muerte","description":"{{name}} tiene eventos matrimoniales que se produjeron después de la fecha de su muerte.\nO bien la fecha de la muerte es incorrecta o la fecha de matrimonio está equivocada.\nVea las relaciones de pareja en FamilySearch para solucionar el problema.\n\n{{#spouses}}\n* [{{spouseName}}](https://familysearch.org/tree/#view=coupleRelationship&relationshipId={{coupleId}}) - Se produjo un evento matrimonial después de la muerte de {{name}}.\n{{/spouses}}"},"marriageWithNoChildren":{"title":"Matrimonio sin hijos","description":"{{^multipleSpouses}}\nEl matrimonio entre [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}})\ny [{{spouse.name}}](https://familysearch.org/tree/#view=ancestor&person={{spouse.id}}) no tiene hijos. Aunque esto es posible aún representa una oportunidad para la investigación hasta que esté seguro de que la pareja no tuvo hijos.\n{{/multipleSpouses}}\n{{#multipleSpouses}}\n[{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}) tiene múltiples matrimonios sin hijos. Aunque esto es posible todavía representa una oportunidad para la investigación\nhasta que esté seguro de que las parejas no tuvieron hijos.\n\n{{#spouses}}\n* [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{id}})\n{{/spouses}}\n{{/multipleSpouses}}"},"missingBirth":{"title":"Encuentre un nacimiento","description":"Intente estos pasos para encontrar información de nacimiento para [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}):\n\n{{> researchHelp}}"},"missingBirthDate":{"title":"Encuentre una fecha de nacimiento","description":"Intente estos pasos para encontrar la fecha de nacimiento de [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}):\n\n{{> researchHelp}}"},"missingBirthPlace":{"title":"Encuentre un lugar de nacimiento","description":"Intente estos pasos para encontrar el lugar de nacimiento de [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}):\n\n{{> researchHelp}}"},"missingBirthSource":{"title":"Encuentre un registro de nacimiento","description":"Intente estos pasos para encontrar un registro de nacimiento de [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}):\n\n{{> researchHelp}}\n\nUtilizamos [etiquetas](https://familysearch.org/ask/salesforce/viewArticle?urlname=Adding-Changing-and-Removing-Tags-from-Sources&lang=en)\npara determinar si una fuente sostiene información del nacimiento. Es posible que ya está conectada una fuente de nacimiento, pero no etiquetada como fuente de nacimiento."},"missingDeath":{"title":"Encuentre una muerte","description":"Intente estos pasos para encontrar la información de la muerte de [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}):\n\n{{> researchHelp}}"},"missingDeathDate":{"title":"Encuentra una fecha de la muerte","description":"Intente estos pasos para encontrar la fecha de la muerte de [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}):\n\n{{> researchHelp}}"},"missingDeathPlace":{"title":"Encuentre un lugar de la muerte","description":"Intente estos pasos para encontrar el lugar de deunción de [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}):\n\n{{> researchHelp}}"},"missingDeathSource":{"title":"Encuentre un registro de defunción","description":"Intente estos pasos para encontrar un registro de defunción para [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}):\n\n{{> researchHelp}}\n\nUtilizamos [etiquetas](https://familysearch.org/ask/salesforce/viewArticle?urlname=Adding-Changing-and-Removing-Tags-from-Sources&lang=en)\npara determinar si una fuente de información corrobora la muerte. Es posible que ya está conectada una fuente de defunción, pero no etiquetada como fuente de defunción."},"missingFather":{"title":"Falta el padre","description":"[{{mothername}}](https://familysearch.org/tree/#view=ancestor&person={{mid}}) se muestra como madre de [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}) pero no hay padre. Intente estos pasos para encontrar al padre:\n\n{{> researchHelp}}"},"missingGivenName":{"title":"Falta el nombre","description":"A esta persona le falta el nombre. Es posible que el nombre sea conocido pero no esté cumplimentado.\nCompruebe si el nombre dado aparece en la lista de nombres alternativos o en cualquiera de los registros adjuntos.\nEs posible que la persona nunca tuviese un nombre propio, como un niño que murió al nacer."},"missingMarriageDate":{"title":"Encuentre una fecha de matrimonio","description":"El [matrimonio](https://familysearch.org/tree/#view=coupleRelationship&relationshipId={{crid}})\nentre [{{wifeName}}](https://familysearch.org/tree/#view=allMatchingRecords&person={{wid}}) y [{{husbandName}}](https://familysearch.org/tree/#view=allMatchingRecords&person={{hid}}) no tiene fecha de matrimonio. \nIntente estos pasos para encontrar la fecha del matrimonio:\n \n{{> researchHelpMarriage}}"},"missingMarriageFact":{"title":"Encuentre un matrimonio","description":"El [matrimonio](https://familysearch.org/tree/#view=coupleRelationship&relationshipId={{crid}})\nentre [{{wifeName}}](https://familysearch.org/tree/#view=allMatchingRecords&person={{wid}}) y [{{husbandName}}](https://familysearch.org/tree/#view=allMatchingRecords&person={{hid}}) no tiene fecha de matrimonio. \nIntente estos pasos para encontrar la fecha del matrimonio:\n \n{{> researchHelpMarriage}}"},"missingMarriagePlace":{"title":"Encuentre un lugar de matrimonio","description":"El [matrimonio](https://familysearch.org/tree/#view=coupleRelationship&relationshipId={{crid}})\nentre [{{wifeName}}](https://familysearch.org/tree/#view=allMatchingRecords&person={{wid}}) y [{{husbandName}}](https://familysearch.org/tree/#view=allMatchingRecords&person={{hid}}) no tiene fecha de matrimonio. \nIntente estos pasos para encontrar la fecha del matrimonio:\n \n{{> researchHelpMarriage}}"},"missingMarriageSource":{"title":"Encuentre un registro matrimonial","description":"Intente estos pasos para encontrar un registro matrimonial para [{{couple}}](https://familysearch.org/tree/#view=coupleRelationship&relationshipId={{cid}}):\n\n{{> researchHelpMarriage}}"},"missingMother":{"title":"Falta la madre","description":"[{{fathername}}](https://familysearch.org/tree/#view=ancestor&person={{fid}}) aparece como padre de [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}) \npero no hay madre. Intente estos pasos para encontrar a la madre:\n\n{{> researchHelp}}"},"missingName":{"title":"Falta un nombre","description":"El nombre de esta persona no es conocido. Hay pocas razones para que una persona exista en el árbol sin nombre.\nDe hecho, FamilySearch ya no permite que las personas se creen sin nombre.\nSi no hay ninguna otra información ni las relaciones de esta persona, entonces puede eliminar de forma segura a la persona."},"missingParents":{"title":"Faltan los padres","description":"Intente estos pasos para encontrar a los padres de [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}):\n\n{{> researchHelp}}"},"missingSurname":{"title":"Falta un apellido","description":"A esta persona le falta un apellido. Es posible que el apellido sea conocido pero sin rellenar.\nCompruebe si el apellido aparece en la lista de nombres alternativos o en cualquiera de los registros adjuntos.\nEn la mayoría de las zonas del mundo, el apellido se puede deducir si se conocen los nombres de los padres."},"multipleMarriageFacts":{"title":"Múltiples hechos matrimoniales","description":"El matrimonio entre [{{wifeName}} y {{husbandName}}](https://familysearch.org/tree/#view=coupleRelationship&relationshipId={{crid}})\ntiene múltiples eventos matrimoniales. Esto solo es posible en la situación poco probable de que la pareja se volviera a casar después de divorciarse. Trate de combinar información similar y reduzca los eventos a uno solo.\nVea su [relación](https://familysearch.org/tree/#view=coupleRelationship&relationshipId={{crid}})\nen el árbol de familia para corregir este problema."},"multipleParents":{"title":"Varias relaciones parentales","description":"{{name}} se muestra que tiene múltiples padres biológicos, lo que es altamente improbable.\nLos niños pueden tener varios padres si se adoptaron o en otras circunstancias similares. En este caso el tipo de relación paterno-filial tiene que ser cambiarse de biológica a adoptiva, acogida, tutela, o hijastro."},"orInName":{"title":"Formato de nombre alternativo incorrecto","description":"{{#preferred}}\nEl nombre de esta persona tiene una \"o\" en el mismo que se utiliza de forma incorrecta para documentar nombres alternativos.\nEs mejor añadir la forma alternativa como un nombre separado completamente.\nEn el [árbol de familia](https://familysearch.org/tree/#view=ancestor&person={{pid}}), añada la forma alternativa como nombre alternativo y luego elimínela del nombre preferido de la persona.\n{{/preferred}}\n{{^preferred}}\nEl nombre de esta persona tiene una \"o\" en el mismo que se utiliza de forma incorrecta para documentar nombres alternativos.\nEs mejor añadir la forma alternativa como un nombre separado completamente.\nEn el [árbol de familia](https://familysearch.org/tree/#view=ancestor&person={{pid}}), añada la forma alternativa como nombre alternativo y luego elimínela del nombre preferido de la persona.\n\n{{#badNames}}\n* {{.}}\n{{/badNames}}\n{{/preferred}}"},"possibleDuplicates":{"title":"Posibles personas duplicadas","description":"FamilySearch ha identificado a la persona{{count}} {{#singular}}como potencial duplicado{{/singular}}\n{{^singular}}personas como potenciales duplicados{{/singular}} de {{name}}.\nRevise la [lista de duplicados](https://familysearch.org/tree/#view=possibleDuplicates&person={{pid}}) en FamilySearch.\nCombine las personas duplicadas y marque las coincidencias incorrectas como \"No coincidente\"."},"recordHints":{"title":"Registros sugeridos","description":"FamilySearch ha encontrado registros sugeridos para {{name}} en las siguientes colecciones:\n\n{{#titles}}\n* {{.}}\n{{/titles}}\n\n[Revise estas registros sugeridos](https://familysearch.org/tree/#view=allMatchingRecords&person={{pid}}) y conecte las fuentes a su árbol."},"standardizeBirthDate":{"title":"Estandarizar una fecha de nacimiento","description":"La fecha de nacimiento de [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}) `{{date}}` no se ha estandarizado.\n\nLa estandarización asegura que todo el mundo sabe cuándo se llevó a cabo este evento.\nDebido a que hay muchos formatos de fecha utilizados en todo el mundo, no siempre puede ser obvio qué fecha es en realidad.\nTome `3/11/2000` por ejemplo. ¿Se trata del 11 de marzo del 2000 o del 3 de noviembre del 2000?\nAl estandarizar la fecha podemos evitar esta confusión."},"standardizeBirthPlace":{"title":"Estandarizar un lugar de nacimiento","description":"El lugar de nacimiento de [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}) `{{place}}` no ha sido estandarizado.\n\nLa estandarización asegura que todo el mundo sabe dónde se llevó a cabo este evento.\nDebido a que hay muchas maneras diferentes de deletrear o calificar un lugar, no siempre puede ser obvio cuál es ese lugar en realidad.\nTome `Londres` por ejemplo. ¿Se trata del Londres de Inglaterra, Kentucky, o Ontario?\nAl estandarizar el lugar podemos evitar esta confusión."},"standardizeDeathDate":{"title":"Estandarice una fecha de defunción","description":"La fecha de defunción de [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}) `{{date}}` no se ha estandarizado.\n\nLa estandarización asegura que todo el mundo sabe cuándo se llevó a cabo este evento.\nDebido a que hay muchos formatos de fecha utilizados en todo el mundo, no siempre puede ser obvio qué fecha es en realidad.\nTome `3/11/2000` por ejemplo. ¿Se trata del 11 de marzo del 2000 o del 3 de noviembre del 2000?\nAl estandarizar la fecha podemos evitar esta confusión."},"standardizeDeathPlace":{"title":"Estandarice un lugar de defunción","description":"El lugar de defunción de [{{name}}](https://familysearch.org/tree/#view=ancestor&person={{pid}}) de `{{place}}` no ha sido estandarizado.\n\nLa estandarización asegura que todo el mundo sabe dónde se llevó a cabo este evento.\nDebido a que hay muchas maneras diferentes de deletrear o calificar un lugar, no siempre puede ser obvio cuál es ese lugar en realidad.\nTome `Londres` por ejemplo. ¿Se trata del Londres de Inglaterra, Kentucky, o Ontario?\nAl estandarizar el lugar podemos evitar esta confusión."},"standardizeMarriageDate":{"title":"Estandarice una fecha de matrimonio","description":"La fecha de matrimonio de `{{date}}` no ha sido estandarizada para el matrimonio entre\n[{{wifeName}} y {{husbandName}}](https://familysearch.org/tree/#view=coupleRelationship&relationshipId={{crid}}).\n\nLa estandarización asegura que todo el mundo sabe cuándo se llevó a cabo este evento.\nDebido a que hay muchos formatos de fecha utilizados en todo el mundo, no siempre puede ser obvio qué fecha es en realidad.\nTome `3/11/2000` por ejemplo. ¿Se trata del 11 de marzo del 2000 o del 3 de noviembre del 2000?\nAl estandarizar la fecha podemos evitar esta confusión."},"standardizeMarriagePlace":{"title":"Estandarice un lugar de matrimonio","description":"El lugar de matrimonio de `{{place}}` no ha sido estandarizado para el matrimonio entre\n[{{wifeName}} y {{husbandName}}](https://familysearch.org/tree/#view=coupleRelationship&relationshipId={{crid}}). \n\nLa estandarización asegura que todo el mundo sabe dónde se llevó a cabo este evento.\nDebido a que hay muchas maneras diferentes de deletrear o calificar un lugar, no siempre puede ser obvio cuál es ese lugar en realidad.\nTome `Londres` por ejemplo. ¿Se trata del Londres de Inglaterra, Kentucky, o Ontario?\nAl estandarizar el lugar podemos evitar esta confusión."},"unusualCharactersInName":{"title":"Caracteres inusuales en un nombre","description":"{{#preferred}}\nEsta persona tiene los siguientes caracteres inusuales en su nombre: {{chars}}.\n{{#brackets}}\nEstos caracteres se utilizan a menudo para anotar un nombre o apellido alternativo, pero esto se hace mejor añadiendo un nombre alternativo.\nElimine las anotaciones alternativas desde el nombre preferido y añádalas como nombres alternativos.\n{{/brackets}}\n{{^brackets}} \nEstos caracteres no se encuentran normalmente en los nombres. Actualice el nombre de la persona en el [árbol de familia](https://familysearch.org/tree/#view=ancestor&person={{pid}}) para eliminar los caracteres inusuales.\n{{/brackets}}\n{{/preferred}}\n{{^preferred}}\nEstos nombres alternativos tienen caracteres que normalmente no aparecen en los nombres:\n\n{{#badNames}}\n* {{.}}\n{{/badNames}}\n\nActualice estos nombres en el [árbol de familia](https://familysearch.org/tree/#view=ancestor&person={{pid}}) para eliminar los caracteres inusuales.\n{{/preferred}}"}},"partials":{"researchHelp":"1. Revise [los registros sugeridos](https://familysearch.org/tree/#view=allMatchingRecords&person={{pid}}) en FamilySearch.\n1. Realice búsquedas amplias en los sitios web de genealogía populares utilizando los enlaces de abajo o utilizando la Extensión de Chrome [RootsSearch](https://chrome.google.com/webstore/detail/rootssearch/aolcffalbhpnojekmimmelebjchjmmgn?hl=en).\n1. Busque ayuda en la página web de [genealogía e historia familiar](http://genealogy.stackexchange.com/) Stack Exchange.\n1. Visite un [centro de historia familiar local](https://familysearch.org/ask/help#localResource).\n1. Contrate a un investigador de la comunidad [Genlighten](http://www.genlighten.com/).","researchHelpMarriage":"1. Revise los registros sugeridos en FamilySearch tanto para [{{wifeName}}](https://familysearch.org/tree/#view=allMatchingRecords&person={{wid}}) como para [{{husbandName}}](https://familysearch.org/tree/#view=allMatchingRecords&person={{hid}}).\n1. Realice búsquedas amplias en los sitios web de genealogía populares utilizando los enlaces de abajo o utilizando la extensión de Chrome [RootsSearch](https://chrome.google.com/webstore/detail/rootssearch/aolcffalbhpnojekmimmelebjchjmmgn?hl=en).\n1. Busque ayuda en la página web de [genealogía e historia familiar](http://genealogy.stackexchange.com/).\n1. Visite un [centro de historia familiar local](https://familysearch.org/ask/help#localResource).\n1. Contrate a un investigador de la comunidad [Genlighten](http://www.genlighten.com/)."}});}();
\ No newline at end of file
+!function(){FSCheck.language({"code":"es","help":{"addingAndCorrecting":"Añadiendo y corrigiendo información en el árbol","customEvents":"Eventos y hechos personalizados","mergingDuplicates":"Combinando personas duplicadas","nonexactDates":"Fechas aproximadas","parentRelationshipType":"Actualizando tipo de relación paternofilial","recordHints":"Revisando registros sugeridos","standardizing":"Estandarizando fechas y lugares"},"checks":{"birthBeforeParentsBirth":{"title":"Persona nacida antes que su(s) padre(s)","description":"{{personName}}, nacida el {{personBirth}}, nació antes que uno o más de sus padres.\n\n{{#parents}}\n* [{{name}}](https://familysearch.org/tree/person/{{id}}/details) nació {{birth}}\n{{/parents}}\n\nVaya a [FamilySearch](https://familysearch.org/tree/person/{{pid}}/details) y actualice la(s) fecha(s) de nacimiento de la persona o de sus padres."},"childBeforeMarriage":{"title":"Hijo nacido antes del matrimonio","description":"Es anormal que un niño nazca antes de que una pareja se case. Esto es posible cuando el niño es adoptado o es un hijastro. En este caso el tipo de relación paternofilial necesita ser cambiado de biológica a por adopción, acogida, tutela, o hijastro. Compruebe los matrimonios con las siguientes personas para verificar la fecha del matrimonio, las fechas de nacimiento de los niños y el tipo de relación paternofilial.\n\n{{#children}}\n* [{{childName}}](https://familysearch.org/tree/person/{{childId}}/details) nació antes de que {{name}} se casase con [{{spouseName}}](https://familysearch.org/tree/person/{{spouseId}}/details).\n{{/children}}"},"childrenTooClose":{"title":"Niños demasiado cercanos","description":"[{{name}}](https://familysearch.org/tree/person/{{pid}}/details) tiene hijos nacidos con menos de nueve meses de diferencia. Esto solo puede suceder con el nacimiento de gemelos o un parto prematuro. Examine detenidamente las fechas de nacimiento de estos niños para comprobar que son correctos. Encuentre las fuentes para apoyar las fechas de nacimiento, si puede.\n\n{{#pairs}}\n* [{{secondName}}](https://familysearch.org/tree/person/{{id2}}/details) nació menos de nueve meses después de [{{firstName}}](https://familysearch.org/tree/person/{{id1}}/details)\n{{/pairs}}"},"deathBeforeBirth":{"title":"La persona murió antes de nacer","description":"Una persona no puede morir antes de nacer. Visite [{{name}}](https://familysearch.org/tree/person/{{pid}}/details)\nen el árbol de familia y solucione el problema de una de las siguientes maneras:\n\n* Cambiando la fecha de nacimiento a antes de la fecha de la muerte\n* Cambiando la fecha de la muerte a después de la fecha de nacimiento"},"duplicateNames":{"title":"Nombres idénticos","description":"Esta persona tiene nombres que solo se diferencian por capitalización o puntuación.\nNo es necesario documentar todas las diferentes formas en que un nombre podría ser capitalizado o puntuado.\nVea [{{name}}](https://familysearch.org/tree/person/{{pid}}/details) en el árbol de familia y elimine algunos de los nombres innecesarios.\n\n{{#duplicates}} \n\n{{#.}}\n* {{.}}\n{{/.}} \n\n{{/duplicates}}"},"manyAlternateNames":{"title":"Muchos nombres alternativos","description":"Cuando una persona tiene muchos nombres alternativos que a menudo son duplicados, errores ortográficos leves, o difieren sólo en puntuación.\nConsidere suprimir algunos de los nombres alternativos que no son necesarios en el [Árbol de familia](https://familysearch.org/tree/person/{{pid}}/details).\n\n{{#names}}\n* {{.}}\n{{/names}}"},"marriageAfterDeath":{"title":"Matrimonio después de la muerte","description":"{{name}} tiene eventos matrimoniales que se produjeron después de la fecha de su muerte.\nO bien la fecha de la muerte es incorrecta o la fecha de matrimonio está equivocada.\nVea las relaciones de pareja en FamilySearch para solucionar el problema.\n\n{{#spouses}}\n* [{{spouseName}}](https://familysearch.org/tree/relationship/{{coupleId}}/couple) - Se produjo un evento matrimonial después de la muerte de {{name}}.\n{{/spouses}}"},"marriageWithNoChildren":{"title":"Matrimonio sin hijos","description":"{{^multipleSpouses}}\nEl matrimonio entre [{{name}}](https://familysearch.org/tree/person/{{pid}}/details)\ny [{{spouse.name}}](https://familysearch.org/tree/person/{{spouse.id}}/details) no tiene hijos. Aunque esto es posible aún representa una oportunidad para la investigación hasta que esté seguro de que la pareja no tuvo hijos.\n{{/multipleSpouses}}\n{{#multipleSpouses}}\n[{{name}}](https://familysearch.org/tree/person/{{pid}}/details) tiene múltiples matrimonios sin hijos. Aunque esto es posible todavía representa una oportunidad para la investigación\nhasta que esté seguro de que las parejas no tuvieron hijos.\n\n{{#spouses}}\n* [{{name}}](https://familysearch.org/tree/person/{{id}}/details)\n{{/spouses}}\n{{/multipleSpouses}}"},"missingBirth":{"title":"Encuentre un nacimiento","description":"Intente estos pasos para encontrar información de nacimiento para [{{name}}](https://familysearch.org/tree/person/{{pid}}/details):\n\n{{> researchHelp}}"},"missingBirthDate":{"title":"Encuentre una fecha de nacimiento","description":"Intente estos pasos para encontrar la fecha de nacimiento de [{{name}}](https://familysearch.org/tree/person/{{pid}}/details):\n\n{{> researchHelp}}"},"missingBirthPlace":{"title":"Encuentre un lugar de nacimiento","description":"Intente estos pasos para encontrar el lugar de nacimiento de [{{name}}](https://familysearch.org/tree/person/{{pid}}/details):\n\n{{> researchHelp}}"},"missingBirthSource":{"title":"Encuentre un registro de nacimiento","description":"Intente estos pasos para encontrar un registro de nacimiento de [{{name}}](https://familysearch.org/tree/person/{{pid}}/details):\n\n{{> researchHelp}}\n\nUtilizamos [etiquetas](https://familysearch.org/ask/salesforce/viewArticle?urlname=Adding-Changing-and-Removing-Tags-from-Sources&lang=en)\npara determinar si una fuente sostiene información del nacimiento. Es posible que ya está conectada una fuente de nacimiento, pero no etiquetada como fuente de nacimiento."},"missingDeath":{"title":"Encuentre una muerte","description":"Intente estos pasos para encontrar la información de la muerte de [{{name}}](https://familysearch.org/tree/person/{{pid}}/details):\n\n{{> researchHelp}}"},"missingDeathDate":{"title":"Encuentra una fecha de la muerte","description":"Intente estos pasos para encontrar la fecha de la muerte de [{{name}}](https://familysearch.org/tree/person/{{pid}}/details):\n\n{{> researchHelp}}"},"missingDeathPlace":{"title":"Encuentre un lugar de la muerte","description":"Intente estos pasos para encontrar el lugar de deunción de [{{name}}](https://familysearch.org/tree/person/{{pid}}/details):\n\n{{> researchHelp}}"},"missingDeathSource":{"title":"Encuentre un registro de defunción","description":"Intente estos pasos para encontrar un registro de defunción para [{{name}}](https://familysearch.org/tree/person/{{pid}}/details):\n\n{{> researchHelp}}\n\nUtilizamos [etiquetas](https://familysearch.org/ask/salesforce/viewArticle?urlname=Adding-Changing-and-Removing-Tags-from-Sources&lang=en)\npara determinar si una fuente de información corrobora la muerte. Es posible que ya está conectada una fuente de defunción, pero no etiquetada como fuente de defunción."},"missingFather":{"title":"Falta el padre","description":"[{{mothername}}](https://familysearch.org/tree/person/{{mid}}/details) se muestra como madre de [{{name}}](https://familysearch.org/tree/person/{{pid}}/details) pero no hay padre. Intente estos pasos para encontrar al padre:\n\n{{> researchHelp}}"},"missingGivenName":{"title":"Falta el nombre","description":"A esta persona le falta el nombre. Es posible que el nombre sea conocido pero no esté cumplimentado.\nCompruebe si el nombre dado aparece en la lista de nombres alternativos o en cualquiera de los registros adjuntos.\nEs posible que la persona nunca tuviese un nombre propio, como un niño que murió al nacer."},"missingMarriageDate":{"title":"Encuentre una fecha de matrimonio","description":"El [matrimonio](https://familysearch.org/tree/relationship/{{crid}}/couple)\nentre [{{wifeName}}](https://familysearch.org/tree/person/{{wid}}/research-help) y [{{husbandName}}](https://familysearch.org/tree/person/{{hid}}/research-help) no tiene fecha de matrimonio. \nIntente estos pasos para encontrar la fecha del matrimonio:\n \n{{> researchHelpMarriage}}"},"missingMarriageFact":{"title":"Encuentre un matrimonio","description":"El [matrimonio](https://familysearch.org/tree/relationship/{{crid}}/couple)\nentre [{{wifeName}}](https://familysearch.org/tree/person/{{wid}}/research-help) y [{{husbandName}}](https://familysearch.org/tree/person/{{hid}}/research-help) no tiene fecha de matrimonio. \nIntente estos pasos para encontrar la fecha del matrimonio:\n \n{{> researchHelpMarriage}}"},"missingMarriagePlace":{"title":"Encuentre un lugar de matrimonio","description":"El [matrimonio](https://familysearch.org/tree/relationship/{{crid}}/couple)\nentre [{{wifeName}}](https://familysearch.org/tree/person/{{wid}}/research-help) y [{{husbandName}}](https://familysearch.org/tree/person/{{hid}}/research-help) no tiene fecha de matrimonio. \nIntente estos pasos para encontrar la fecha del matrimonio:\n \n{{> researchHelpMarriage}}"},"missingMarriageSource":{"title":"Encuentre un registro matrimonial","description":"Intente estos pasos para encontrar un registro matrimonial para [{{couple}}](https://familysearch.org/tree/relationship/{{cid}}/couple):\n\n{{> researchHelpMarriage}}"},"missingMother":{"title":"Falta la madre","description":"[{{fathername}}](https://familysearch.org/tree/person/{{fid}}/details) aparece como padre de [{{name}}](https://familysearch.org/tree/person/{{pid}}/details) \npero no hay madre. Intente estos pasos para encontrar a la madre:\n\n{{> researchHelp}}"},"missingName":{"title":"Falta un nombre","description":"El nombre de esta persona no es conocido. Hay pocas razones para que una persona exista en el árbol sin nombre.\nDe hecho, FamilySearch ya no permite que las personas se creen sin nombre.\nSi no hay ninguna otra información ni las relaciones de esta persona, entonces puede eliminar de forma segura a la persona."},"missingParents":{"title":"Faltan los padres","description":"Intente estos pasos para encontrar a los padres de [{{name}}](https://familysearch.org/tree/person/{{pid}}/details):\n\n{{> researchHelp}}"},"missingSurname":{"title":"Falta un apellido","description":"A esta persona le falta un apellido. Es posible que el apellido sea conocido pero sin rellenar.\nCompruebe si el apellido aparece en la lista de nombres alternativos o en cualquiera de los registros adjuntos.\nEn la mayoría de las zonas del mundo, el apellido se puede deducir si se conocen los nombres de los padres."},"multipleMarriageFacts":{"title":"Múltiples hechos matrimoniales","description":"El matrimonio entre [{{wifeName}} y {{husbandName}}](https://familysearch.org/tree/relationship/{{crid}}/couple)\ntiene múltiples eventos matrimoniales. Esto solo es posible en la situación poco probable de que la pareja se volviera a casar después de divorciarse. Trate de combinar información similar y reduzca los eventos a uno solo.\nVea su [relación](https://familysearch.org/tree/relationship/{{crid}}/couple)\nen el árbol de familia para corregir este problema."},"multipleParents":{"title":"Varias relaciones parentales","description":"{{name}} se muestra que tiene múltiples padres biológicos, lo que es altamente improbable.\nLos niños pueden tener varios padres si se adoptaron o en otras circunstancias similares. En este caso el tipo de relación paterno-filial tiene que ser cambiarse de biológica a adoptiva, acogida, tutela, o hijastro."},"orInName":{"title":"Formato de nombre alternativo incorrecto","description":"{{#preferred}}\nEl nombre de esta persona tiene una \"o\" en el mismo que se utiliza de forma incorrecta para documentar nombres alternativos.\nEs mejor añadir la forma alternativa como un nombre separado completamente.\nEn el [árbol de familia](https://familysearch.org/tree/person/{{pid}}/details), añada la forma alternativa como nombre alternativo y luego elimínela del nombre preferido de la persona.\n{{/preferred}}\n{{^preferred}}\nEl nombre de esta persona tiene una \"o\" en el mismo que se utiliza de forma incorrecta para documentar nombres alternativos.\nEs mejor añadir la forma alternativa como un nombre separado completamente.\nEn el [árbol de familia](https://familysearch.org/tree/person/{{pid}}/details), añada la forma alternativa como nombre alternativo y luego elimínela del nombre preferido de la persona.\n\n{{#badNames}}\n* {{.}}\n{{/badNames}}\n{{/preferred}}"},"possibleDuplicates":{"title":"Posibles personas duplicadas","description":"FamilySearch ha identificado a la persona{{count}} {{#singular}}como potencial duplicado{{/singular}}\n{{^singular}}personas como potenciales duplicados{{/singular}} de {{name}}.\nRevise la [lista de duplicados](https://familysearch.org/tree/person/{{pid}}/possible-duplicates) en FamilySearch.\nCombine las personas duplicadas y marque las coincidencias incorrectas como \"No coincidente\"."},"recordHints":{"title":"Registros sugeridos","description":"FamilySearch ha encontrado registros sugeridos para {{name}} en las siguientes colecciones:\n\n{{#titles}}\n* {{.}}\n{{/titles}}\n\n[Revise estas registros sugeridos](https://familysearch.org/tree/person/{{pid}}/research-help) y conecte las fuentes a su árbol."},"standardizeBirthDate":{"title":"Estandarizar una fecha de nacimiento","description":"La fecha de nacimiento de [{{name}}](https://familysearch.org/tree/person/{{pid}}/details) `{{date}}` no se ha estandarizado.\n\nLa estandarización asegura que todo el mundo sabe cuándo se llevó a cabo este evento.\nDebido a que hay muchos formatos de fecha utilizados en todo el mundo, no siempre puede ser obvio qué fecha es en realidad.\nTome `3/11/2000` por ejemplo. ¿Se trata del 11 de marzo del 2000 o del 3 de noviembre del 2000?\nAl estandarizar la fecha podemos evitar esta confusión."},"standardizeBirthPlace":{"title":"Estandarizar un lugar de nacimiento","description":"El lugar de nacimiento de [{{name}}](https://familysearch.org/tree/person/{{pid}}/details) `{{place}}` no ha sido estandarizado.\n\nLa estandarización asegura que todo el mundo sabe dónde se llevó a cabo este evento.\nDebido a que hay muchas maneras diferentes de deletrear o calificar un lugar, no siempre puede ser obvio cuál es ese lugar en realidad.\nTome `Londres` por ejemplo. ¿Se trata del Londres de Inglaterra, Kentucky, o Ontario?\nAl estandarizar el lugar podemos evitar esta confusión."},"standardizeDeathDate":{"title":"Estandarice una fecha de defunción","description":"La fecha de defunción de [{{name}}](https://familysearch.org/tree/person/{{pid}}/details) `{{date}}` no se ha estandarizado.\n\nLa estandarización asegura que todo el mundo sabe cuándo se llevó a cabo este evento.\nDebido a que hay muchos formatos de fecha utilizados en todo el mundo, no siempre puede ser obvio qué fecha es en realidad.\nTome `3/11/2000` por ejemplo. ¿Se trata del 11 de marzo del 2000 o del 3 de noviembre del 2000?\nAl estandarizar la fecha podemos evitar esta confusión."},"standardizeDeathPlace":{"title":"Estandarice un lugar de defunción","description":"El lugar de defunción de [{{name}}](https://familysearch.org/tree/person/{{pid}}/details) de `{{place}}` no ha sido estandarizado.\n\nLa estandarización asegura que todo el mundo sabe dónde se llevó a cabo este evento.\nDebido a que hay muchas maneras diferentes de deletrear o calificar un lugar, no siempre puede ser obvio cuál es ese lugar en realidad.\nTome `Londres` por ejemplo. ¿Se trata del Londres de Inglaterra, Kentucky, o Ontario?\nAl estandarizar el lugar podemos evitar esta confusión."},"standardizeMarriageDate":{"title":"Estandarice una fecha de matrimonio","description":"La fecha de matrimonio de `{{date}}` no ha sido estandarizada para el matrimonio entre\n[{{wifeName}} y {{husbandName}}](https://familysearch.org/tree/relationship/{{crid}}/couple).\n\nLa estandarización asegura que todo el mundo sabe cuándo se llevó a cabo este evento.\nDebido a que hay muchos formatos de fecha utilizados en todo el mundo, no siempre puede ser obvio qué fecha es en realidad.\nTome `3/11/2000` por ejemplo. ¿Se trata del 11 de marzo del 2000 o del 3 de noviembre del 2000?\nAl estandarizar la fecha podemos evitar esta confusión."},"standardizeMarriagePlace":{"title":"Estandarice un lugar de matrimonio","description":"El lugar de matrimonio de `{{place}}` no ha sido estandarizado para el matrimonio entre\n[{{wifeName}} y {{husbandName}}](https://familysearch.org/tree/relationship/{{crid}}/couple). \n\nLa estandarización asegura que todo el mundo sabe dónde se llevó a cabo este evento.\nDebido a que hay muchas maneras diferentes de deletrear o calificar un lugar, no siempre puede ser obvio cuál es ese lugar en realidad.\nTome `Londres` por ejemplo. ¿Se trata del Londres de Inglaterra, Kentucky, o Ontario?\nAl estandarizar el lugar podemos evitar esta confusión."},"unusualCharactersInName":{"title":"Caracteres inusuales en un nombre","description":"{{#preferred}}\nEsta persona tiene los siguientes caracteres inusuales en su nombre: {{chars}}.\n{{#brackets}}\nEstos caracteres se utilizan a menudo para anotar un nombre o apellido alternativo, pero esto se hace mejor añadiendo un nombre alternativo.\nElimine las anotaciones alternativas desde el nombre preferido y añádalas como nombres alternativos.\n{{/brackets}}\n{{^brackets}} \nEstos caracteres no se encuentran normalmente en los nombres. Actualice el nombre de la persona en el [árbol de familia](https://familysearch.org/tree/person/{{pid}}/details) para eliminar los caracteres inusuales.\n{{/brackets}}\n{{/preferred}}\n{{^preferred}}\nEstos nombres alternativos tienen caracteres que normalmente no aparecen en los nombres:\n\n{{#badNames}}\n* {{.}}\n{{/badNames}}\n\nActualice estos nombres en el [árbol de familia](https://familysearch.org/tree/person/{{pid}}/details) para eliminar los caracteres inusuales.\n{{/preferred}}"}},"partials":{"researchHelp":"1. Revise [los registros sugeridos](https://familysearch.org/tree/person/{{pid}}/research-help) en FamilySearch.\n1. Realice búsquedas amplias en los sitios web de genealogía populares utilizando los enlaces de abajo o utilizando la Extensión de Chrome [RootsSearch](https://chrome.google.com/webstore/detail/rootssearch/aolcffalbhpnojekmimmelebjchjmmgn?hl=en).\n1. Busque ayuda en la página web de [genealogía e historia familiar](http://genealogy.stackexchange.com/) Stack Exchange.\n1. Visite un [centro de historia familiar local](https://familysearch.org/ask/help#localResource).\n1. Contrate a un investigador de la comunidad [Genlighten](http://www.genlighten.com/).","researchHelpMarriage":"1. Revise los registros sugeridos en FamilySearch tanto para [{{wifeName}}](https://familysearch.org/tree/person/{{wid}}/research-help) como para [{{husbandName}}](https://familysearch.org/tree/person/{{hid}}/research-help).\n1. Realice búsquedas amplias en los sitios web de genealogía populares utilizando los enlaces de abajo o utilizando la extensión de Chrome [RootsSearch](https://chrome.google.com/webstore/detail/rootssearch/aolcffalbhpnojekmimmelebjchjmmgn?hl=en).\n1. Busque ayuda en la página web de [genealogía e historia familiar](http://genealogy.stackexchange.com/).\n1. Visite un [centro de historia familiar local](https://familysearch.org/ask/help#localResource).\n1. Contrate a un investigador de la comunidad [Genlighten](http://www.genlighten.com/)."}});}();
\ No newline at end of file