Trufflehog3

Trufflehog3 is a popular open-source tool for detecting secrets and credentials in source code repositories.

Auditor Job Name: Trufflehog3 Scan Auditor image: registry.gitlab.com/whitespots/devsecops/security-images/trufflehog3:latest AppSec Portal Importer Name: Trufflehog3 Scan

Trufflehog3 uses regular expressions to scan for patterns that match common formats for secret keys, such as AWS keys, private keys, and other sensitive data. It can also detect secrets that have been obfuscated or encoded in various ways, making it a valuable tool for detecting even well-hidden secrets.

While Trufflehog3 is primarily used for detecting secrets and credentials, it can also be used to search for other types of sensitive data, such as Personally Identifiable Information (PII). This makes it a versatile tool for ensuring the security and privacy of your codebase.

Curl example

curl -X POST localhost/api/v1/scan/import/ -H "Authorization: Token a75bb26171cf391671e67b128bfc8ae1c779ff7b" -H "Content-Type: multipart/form-data" -F "file=@./trufflehog3.json" -F "product_name=Product1" -F "product_type=Application" -F "scanner_name=Trufflehog3 Scan" -F "branch=dev" -F "repository=git@gitlab.com:whitespots-public/appsec-portal.git"

In this command, the following parameters are used:

  1. -X POST: specifies the HTTP method to be used (in this case, POST)

  2. -H "Authorization: Token <authorization_token>": specifies the authorization token obtained from AppSec Portal.

  3. -H "Content-Type: multipart/form-data": specifies the content type of the request.

  4. -F "file=@<report_file_path>": specifies the path to the report file generated by the scanner.

  5. -F "product_name=<product_name>": specifies the name of the product being scanned.

  6. -F "product_type=<product_type>": specifies the type of the product being scanned.

  7. -F "scanner_name=<scanner_name>": specifies the name of the scanner used to generate the report (Trufflehog3 Scan)

  8. -F "branch=<branch_name>": (optional) specifies the name of the branch in the source code repository (if applicable) This parameter is particularly useful when you want to associate the scan results with a specific branch in your repository. If not provided, the scan will be associated with the default branch

Asset information, if an auditor is used

  1. -F "repository=<repository SSH URL>": If your product is code in a repository enter the address of your repository in a specific format, for example: git@gitlab.com:whitespots-public/appsec-portal.git

  2. -F "docker_image=<registry address>": If your product is image enter the address of the registry where your product is located, for example: registry.gitlab.com/whitespots-public/appsec-portal/back/auto_validator:latest

  3. -F "domain=<domain>": If your product is web enter the domain name of your product, for example: whitespots.io

  4. -F "host=<host>": If your product is web enter the IP address of your product, for example: 0.0.0.0

Report example:

[
  {
    "rule": {
      "id": "high-entropy",
      "message": "High Entropy",
      "severity": "MEDIUM"
    },
    "path": "src/main/webapp/WEB-INF/config.properties",
    "line": "4",
    "secret": "ec23c017306b8e0217560cae021effa2b",
    "context": {
      "4": "mysql.password=ec95c258266b8e985848cae688effa2b"
    },
    "id": "d08f42cd-23dc-3945-96e4-4a676f89168b",
    "branch": null,
    "message": null,
    "author": null,
    "commit": null,
    "date": null
  },
  {
    "rule": {
      "id": "high-entropy",
      "message": "High Entropy",
      "severity": "MEDIUM"
    },
    "path": "docker-compose.yml",
    "line": "8",
    "secret": "ec95c872966b8e03271cae3002effa2b",
    "context": {
      "8": "      MYSQL_ROOT_PASSWORD: ec95c258366b8e302179cae219effa2b"
    },
    "id": "e49a5963-b600-3745-8505-87da8551bc33",
    "branch": null,
    "message": null,
    "author": null,
    "commit": null,
    "date": null
  },
  {
    "rule": {
      "id": "high-entropy",
      "message": "High Entropy",
      "severity": "MEDIUM"
    },
    "path": "docker-compose.yml",
    "line": "17",
    "secret": "ec95c8572036b8e2015873cae688effa2b",
    "context": {
      "17": "      MYSQL_PASSWORD: ec95d212366b8e725930cae71588effa2b"
    },
    "id": "e789a7812-b600-3305-8505-87da7051bc33",
    "branch": null,
    "message": null,
    "author": null,
    "commit": null,
    "date": null
  },
  {
    "rule": {
      "id": "github.token",
      "message": "GitHub Token",
      "pattern": "[g|G][i|I][t|T][h|H][u|U][b|B].*['|\"][0-9a-zA-Z]{35,40}['|\"]",
      "severity": "MEDIUM"
    },
    "path": "src/main/webapp/assets/showdown.min.js",
    "line": "3",
    "secret": "github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)\",type:\"boolean\"},headerLevelStart:{defaultValue:!1,describe:\"The header blocks level start\",type:\"integer\"},parseImgDimensions:{defaultValue:!1,describe:\"Turn on/off image dimension parsing\",type:\"boolean\"},simplifiedAutoLink:{defaultValue:!1,describe:\"Turn on/off GFM autolink style\",type:\"boolean\"},excludeTrailingPunctuationFromURLs:{defaultValue:!1,describe:\"Excludes trailing punctuation from links generated with autoLinking\",type:\"boolean\"},literalMidWordUnderscores:{defaultValue:!1,describe:\"Parse midword underscores as literal underscores\",type:\"boolean\"},literalMidWordAsterisks:{defaultValue:!1,describe:\"Parse midword asterisks as literal asterisks\",type:\"boolean\"},strikethrough:{defaultValue:!1,describe:\"Turn on/off strikethrough support\",type:\"boolean\"},tables:{defaultValue:!1,describe:\"Turn on/off tables support\",type:\"boolean\"},tablesHeaderId:{defaultValue:!1,describe:\"Add an id to table headers\",type:\"boolean\"},ghCodeBlocks:{defaultValue:!0,describe:\"Turn on/off GFM fenced code blocks support\",type:\"boolean\"},tasklists:{defaultValue:!1,describe:\"Turn on/off GFM tasklist support\",type:\"boolean\"},smoothLivePreview:{defaultValue:!1,describe:\"Prevents weird effects in live previews due to incomplete input\",type:\"boolean\"},smartIndentationFix:{defaultValue:!1,description:\"Tries to smartly fix indentation in es6 strings\",type:\"boolean\"},disableForced4SpacesIndentedSublists:{defaultValue:!1,description:\"Disables the requirement of indenting nested sublists by 4 spaces\",type:\"boolean\"},simpleLineBreaks:{defaultValue:!1,description:\"Parses simple line breaks as <br> (GFM Style)\",type:\"boolean\"},requireSpaceBeforeHeadingText:{defaultValue:!1,description:\"Makes adding a space between `#` and the header text mandatory (GFM Style)\",type:\"boolean\"},ghMentions:{defaultValue:!1,description:\"Enables github @mentions\",type:\"boolean\"},ghMentionsLink:{defaultValue:\"https://github.com/{u}\",description:\"Changes the link generated by @mentions. Only applies if ghMentions option is enabled.\",type:\"string\"},encodeEmails:{defaultValue:!0,description:\"Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities\",type:\"boolean\"},openLinksInNewWindow:{defaultValue:!1,description:\"Open all links in new windows\",type:\"boolean\"}};if(!1===a)return JSON.parse(JSON.stringify(b));var c={};for(var d in b)b.hasOwnProperty(d)&&(c[d]=b[d].defaultValue);return c}function b(a,b){\"use strict\";var c=b?\"Error in \"+b+\" extension->\":\"Error in unnamed extension\",e={valid:!0,error:\"\"};d.helper.isArray(a)||(a=[a]);for(var f=0;f<a.length;++f){var g=c+\" sub-extension \"+f+\": \",h=a[f];if(\"object\"!=typeof h)return e.valid=!1,e.error=g+\"must be an object, but \"+typeof h+\" given\",e;if(!d.helper.isString(h.type))return e.valid=!1,e.error=g+'property \"type\" must be a string, but '+typeof h.type+\" given\",e;var i=h.type=h.type.toLowerCase();if(\"language\"===i&&(i=h.type=\"lang\"),\"html\"===i&&(i=h.type=\"output\"),\"lang\"!==i&&\"output\"!==i&&\"listener\"!==i)return e.valid=!1,e.error=g+\"type \"+i+' is not recognized. Valid values: \"lang/language\", \"output/html\" or \"listener\"',e;if(\"listener\"===i){if(d.helper.isUndefined(h.listeners))return e.valid=!1,e.error=g+'. Extensions of type \"listener\" must have a property called \"listeners\"',e}else if(d.helper.isUndefined(h.filter)&&d.helper.isUndefined(h.regex))return e.valid=!1,e.error=g+i+' extensions must define either a \"regex\" property or a \"filter\" method',e;if(h.listeners){if(\"object\"!=typeof h.listeners)return e.valid=!1,e.error=g+'\"listeners\" property must be an object but '+typeof h.listeners+\" given\",e;for(var j in h.listeners)if(h.listeners.hasOwnProperty(j)&&\"function\"!=typeof h.listeners[j])return e.valid=!1,e.error=g+'\"listeners\" property must be an hash of [event name]: [callback]. listeners.'+j+\" must be a function but \"+typeof h.listeners[j]+\" given\",e}if(h.filter){if(\"function\"!=typeof h.filter)return e.valid=!1,e.error=g+'\"filter\" must be a function, but '+typeof h.filter+\" given\",e}else if(h.regex){if(d.helper.isString(h.regex)&&(h.regex=new RegExp(h.regex,\"g\")),!(h.regex instanceof RegExp))return e.valid=!1,e.error=g+'\"regex\" property must either be a string or a RegExp object, but '+typeof h.regex+\" given\",e;if(d.helper.isUndefined(h.replace))return e.valid=!1,e.error=g+'\"regex\" extensions must implement a replace string or function',e}}return e}function c(a,b){\"use strict\";return\"\u00a8E\"+b.charCodeAt(0)+\"E\"}var d={},e={},f={},g=a(!0),h=\"vanilla\",i={github:{omitExtraWLInCodeBlocks:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,disableForced4SpacesIndentedSublists:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghCompatibleHeaderId:!0,ghMentions:!0},original:{noHeaderId:!0,ghCodeBlocks:!1},ghost:{omitExtraWLInCodeBlocks:!0,parseImgDimensions:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,smoothLivePreview:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghMentions:!1,encodeEmails:!0},vanilla:a(!0),allOn:function(){\"use strict\";var b=a(!0),c={};for(var d in b)b.hasOwnProperty(d)&&(c[d]=!0);return c}()};d.helper={},d.extensions={},d.setOption=function(a,b){\"use strict\";return g[a]=b,this},d.getOption=function(a){\"use strict\";return g[a]},d.getOptions=function(){\"use strict\";return g},d.resetOptions=function(){\"use strict\";g=a(!0)},d.setFlavor=function(a){\"use strict\";if(!i.hasOwnProperty(a))throw Error(a+\" flavor was not found\");d.resetOptions();var b=i[a];h=a;for(var c in b)b.hasOwnProperty(c)&&(g[c]=b[c])},d.getFlavor=function(){\"use strict\";return h},d.getFlavorOptions=function(a){\"use strict\";if(i.hasOwnProperty(a))return i[a]},d.getDefaultOptions=function(b){\"use strict\";return a(b)},d.subParser=function(a,b){\"use strict\";if(d.helper.isString(a)){if(void 0===b){if(e.hasOwnProperty(a))return e[a];throw Error(\"SubParser named \"+a+\" not registered!\")}e[a]=b}},d.extension=function(a,c){\"use strict\";if(!d.helper.isString(a))throw Error(\"Extension 'name' must be a string\");if(a=d.helper.stdExtName(a),d.helper.isUndefined(c)){if(!f.hasOwnProperty(a))throw Error(\"Extension named \"+a+\" is not registered!\");return f[a]}\"function\"==typeof c&&(c=c()),d.helper.isArray(c)||(c=[c]);var e=b(c,a);if(!e.valid)throw Error(e.error);f[a]=c},d.getAllExtensions=function(){\"use strict\";return f},d.removeExtension=function(a){\"use strict\";delete f[a]},d.resetExtensions=function(){\"use strict\";f={}},d.validateExtension=function(a){\"use strict\";var c=b(a,null);return!!c.valid||(console.warn(c.error),!1)},d.hasOwnProperty(\"helper\")||(d.helper={}),d.helper.isString=function(a){\"use strict\";return\"string\"==typeof a||a instanceof String},d.helper.isFunction=function(a){\"use strict\";var b={};return a&&\"[object Function]\"===b.toString.call(a)},d.helper.isArray=function(a){\"use strict\";return a.constructor===Array},d.helper.isUndefined=function(a){\"use strict\";return void 0===a},d.helper.forEach=function(a,b){\"use strict\";if(d.helper.isUndefined(a))throw new Error(\"obj param is required\");if(d.helper.isUndefined(b))throw new Error(\"callback param is required\");if(!d.helper.isFunction(b))throw new Error(\"callback param must be a function/closure\");if(\"function\"==typeof a.forEach)a.forEach(b);else if(d.helper.isArray(a))for(var c=0;c<a.length;c++)b(a[c],c,a);else{if(\"object\"!=typeof a)throw new Error(\"obj does not seem to be an array or an iterable object\");for(var e in a)a.hasOwnProperty(e)&&b(a[e],e,a)}},d.helper.stdExtName=function(a){\"use strict\";return a.replace(/[_?*+\\/\\\\.^-]/g,\"\").replace(/\\s/g,\"\").toLowerCase()},d.helper.escapeCharactersCallback=c,d.helper.escapeCharacters=function(a,b,d){\"use strict\";var e=\"([\"+b.replace(/([\\[\\]\\\\])/g,\"\\\\$1\")+\"])\";d&&(e=\"\\\\\\\\\"+e);var f=new RegExp(e,\"g\");return a=a.replace(f,c)};var j=function(a,b,c,d){\"use strict\";var e,f,g,h,i,j=d||\"\",k=j.indexOf(\"g\")>-1,l=new RegExp(b+\"|\"+c,\"g\"+j.replace(/g/g,\"\")),m=new RegExp(b,j.replace(/g/g,\"\")),n=[];do{for(e=0;g=l.exec(a);)if(m.test(g[0]))e++||(f=l.lastIndex,h=f-g[0].length);else if(e&&!--e){i=g.index+g[0].length;var o={left:{start:h,end:f},match:{start:f,end:g.index},right:{start:g.index,end:i},wholeMatch:{start:h,end:i}};if(n.push(o),!k)return n}}while(e&&(l.lastIndex=f));return n};d.helper.matchRecursiveRegExp=function(a,b,c,d){\"use strict\";for(var e=j(a,b,c,d),f=[],g=0;g<e.length;++g)f.push([a.slice(e[g].wholeMatch.start,e[g].wholeMatch.end),a.slice(e[g].match.start,e[g].match.end),a.slice(e[g].left.start,e[g].left.end),a.slice(e[g].right.start,e[g].right.end)]);return f},d.helper.replaceRecursiveRegExp=function(a,b,c,e,f){\"use strict\";if(!d.helper.isFunction(b)){var g=b;b=function(){return g}}var h=j(a,c,e,f),i=a,k=h.length;if(k>0){var l=[];0!==h[0].wholeMatch.start&&l.push(a.slice(0,h[0].wholeMatch.start));for(var m=0;m<k;++m)l.push(b(a.slice(h[m].wholeMatch.start,h[m].wholeMatch.end),a.slice(h[m].match.start,h[m].match.end),a.slice(h[m].left.start,h[m].left.end),a.slice(h[m].right.start,h[m].right.end))),m<k-1&&l.push(a.slice(h[m].wholeMatch.end,h[m+1].wholeMatch.start));h[k-1].wholeMatch.end<a.length&&l.push(a.slice(h[k-1].wholeMatch.end)),i=l.join(\"\")}return i},d.helper.regexIndexOf=function(a,b,c){\"use strict\";if(!d.helper.isString(a))throw\"InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string\";if(b instanceof RegExp==!1)throw\"InvalidArgumentError: second parameter of showdown.helper.regexIndexOf function must be an instance of RegExp\";var e=a.substring(c||0).search(b);return e>=0?e+(c||0):e},d.helper.splitAtIndex=function(a,b){\"use strict\";if(!d.helper.isString(a))throw\"InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string\";return[a.substring(0,b),a.substring(b)]},d.helper.encodeEmailAddress=function(a){\"use strict\";var b=[function(a){return\"&#\"+a.charCodeAt(0)+\";\"},function(a){return\"&#x\"+a.charCodeAt(0).toString(16)+\";\"},function(a){return a}];return a=a.replace(/./g,function(a){if(\"@\"===a)a=b[Math.floor(2*Math.random())](a);else{var c=Math.random();a=c>.9?b[2](a):c>.45?b[1](a):b[0](a)}return a})},\"undefined\"==typeof console&&(console={warn:function(a){\"use strict\";alert(a)},log:function(a){\"use strict\";alert(a)},error:function(a){\"use strict\";throw a}}),d.helper.regexes={asteriskAndDash:/([*_])/g},d.Converter=function(a){\"use strict\";function c(a,c){if(c=c||null,d.helper.isString(a)){if(a=d.helper.stdExtName(a),c=a,d.extensions[a])return console.warn(\"DEPRECATION WARNING: \"+a+\" is an old extension that uses a deprecated loading method.Please inform the developer that the extension should be updated!\"),void e(d.extensions[a],a);if(d.helper.isUndefined(f[a]))throw Error('Extension \"'+a+'\" could not be loaded. It was either not found or is not a valid extension.');a=f[a]}\"function\"==typeof a&&(a=a()),d.helper.isArray(a)||(a=[a]);var g=b(a,c);if(!g.valid)throw Error(g.error);for(var h=0;h<a.length;++h){switch(a[h].type){case\"lang\":m.push(a[h]);break;case\"output\":n.push(a[h])}if(a[h].hasOwnProperty(\"listeners\"))for(var i in a[h].listeners)a[h].listeners.hasOwnProperty(i)&&j(i,a[h].listeners[i])}}function e(a,c){\"function\"==typeof a&&(a=a(new d.Converter)),d.helper.isArray(a)||(a=[a]);var e=b(a,c);if(!e.valid)throw Error(e.error);for(var f=0;f<a.length;++f)switch(a[f].type){case\"lang\":m.push(a[f]);break;case\"output\":n.push(a[f]);break;default:throw Error(\"Extension loader error: Type unrecognized!!!\")}}function j(a,b){if(!d.helper.isString(a))throw Error(\"Invalid argument in converter.listen() method: name must be a string, but \"+typeof a+\" given\");if(\"function\"!=typeof b)throw Error(\"Invalid argument in converter.listen() method: callback must be a function, but \"+typeof b+\" given\");o.hasOwnProperty(a)||(o[a]=[]),o[a].push(b)}function k(a){var b=a.match(/^\\s*/)[0].length,c=new RegExp(\"^\\\\s{0,\"+b+\"}\",\"gm\");return a.replace(c,\"\")}var l={},m=[],n=[],o={},p=h;!function(){a=a||{};for(var b in g)g.hasOwnProperty(b)&&(l[b]=g[b]);if(\"object\"!=typeof a)throw Error(\"Converter expects the passed parameter to be an object, but \"+typeof a+\" was passed instead.\");for(var e in a)a.hasOwnProperty(e)&&(l[e]=a[e]);l.extensions&&d.helper.forEach(l.extensions,c)}(),this._dispatch=function(a,b,c,d){if(o.hasOwnProperty(a))for(var e=0;e<o[a].length;++e){var f=o[a][e](a,b,this,c,d);f&&void 0!==f&&(b=f)}return b},this.listen=function(a,b){return j(a,b),this},this.makeHtml=function(a){if(!a)return a;var b={gHtmlBlocks:[],gHtmlMdBlocks:[],gHtmlSpans:[],gUrls:{},gTitles:{},gDimensions:{},gListLevel:0,hashLinkCounts:{},langExtensions:m,outputModifiers:n,converter:this,ghCodeBlocks:[]};return a=a.replace(/\u00a8/g,\"\u00a8T\"),a=a.replace(/\\$/g,\"\u00a8D\"),a=a.replace(/\\r\\n/g,\"\\n\"),a=a.replace(/\\r/g,\"\\n\"),a=a.replace(/\\u00A0/g,\" \"),l.smartIndentationFix&&(a=k(a)),a=\"\\n\\n\"+a+\"\\n\\n\",a=d.subParser(\"detab\")(a,l,b),a=a.replace(/^[ \\t]+$/gm,\"\"),d.helper.forEach(m,function(c){a=d.subParser(\"runExtension\")(c,a,l,b)}),a=d.subParser(\"hashPreCodeTags\")(a,l,b),a=d.subParser(\"githubCodeBlocks\")(a,l,b),a=d.subParser(\"hashHTMLBlocks\")(a,l,b),a=d.subParser(\"hashCodeTags\")(a,l,b),a=d.subParser(\"stripLinkDefinitions\")(a,l,b),a=d.subParser(\"blockGamut\")(a,l,b),a=d.subParser(\"unhashHTMLSpans\")(a,l,b),a=d.subParser(\"unescapeSpecialChars\")(a,l,b),a=a.replace(/\u00a8D/g,\"$$\"),a=a.replace(/\u00a8T/g,\"\u00a8\"),d.helper.forEach(n,function(c){a=d.subParser(\"runExtension\")(c,a,l,b)}),a},this.setOption=function(a,b){l[a]=b},this.getOption=function(a){return l[a]},this.getOptions=function(){return l},this.addExtension=function(a,b){b=b||null,c(a,b)},this.useExtension=function(a){c(a)},this.setFlavor=function(a){if(!i.hasOwnProperty(a))throw Error(a+\" flavor was not found\");var b=i[a];p=a;for(var c in b)b.hasOwnProperty(c)&&(l[c]=b[c])},this.getFlavor=function(){return p},this.removeExtension=function(a){d.helper.isArray(a)||(a=[a]);for(var b=0;b<a.length;++b){for(var c=a[b],e=0;e<m.length;++e)m[e]===c&&m[e].splice(e,1);for(;0<n.length;++e)n[0]===c&&n[0].splice(e,1)}},this.getAllExtensions=function(){return{language:m,output:n}}},d.subParser(\"anchors\",function(a,b,c){\"use strict\";a=c.converter._dispatch(\"anchors.before\",a,b,c);var e=function(a,e,f,g,h,i,j){if(d.helper.isUndefined(j)&&(j=\"\"),f=f.toLowerCase(),a.search(/\\(<?\\s*>? ?(['\"].*['\"])?\\)$/m)>-1)g=\"\";else if(!g){if(f||(f=e.toLowerCase().replace(/ ?\\n/g,\" \")),g=\"#\"+f,d.helper.isUndefined(c.gUrls[f]))return a;g=c.gUrls[f],d.helper.isUndefined(c.gTitles[f])||(j=c.gTitles[f])}g=g.replace(d.helper.regexes.asteriskAndDash,d.helper.escapeCharactersCallback);var k='<a href=\"'+g+'\"';return\"\"!==j&&null!==j&&(j=j.replace(/\"/g,\"&quot;\"),j=j.replace(d.helper.regexes.asteriskAndDash,d.helper.escapeCharactersCallback),k+=' title=\"'+j+'\"'),b.openLinksInNewWindow&&(k+=' target=\"\u00a8E95Eblank\"'),k+=\">\"+e+\"</a>\"};return a=a.replace(/\\[((?:\\[[^\\]]*]|[^\\[\\]])*)] ?(?:\\n *)?\\[(.*?)]()()()()/g,e),a=a.replace(/\\[((?:\\[[^\\]]*]|[^\\[\\]])*)]()[ \\t]*\\([ \\t]?<([^>]*)>(?:[ \\t]*(([\"'])([^\"]*?)\\5))?[ \\t]?\\)/g,e),a=a.replace(/\\[((?:\\[[^\\]]*]|[^\\[\\]])*)]()[ \\t]*\\([ \\t]?<?([\\S]+?(?:\\([\\S]*?\\)[\\S]*?)?)>?(?:[ \\t]*(([\"'])([^\"]*?)\\5))?[ \\t]?\\)/g,e),a=a.replace(/\\[([^\\[\\]]+)]()()()()()/g,e),b.ghMentions&&(a=a.replace(/(^|\\s)(\\\\)?(@([a-z\\d\\-]+))(?=[.!?;,[\\]()]|\\s|$)/gim,function(a,c,e,f,g){if(\"\\\\\"===e)return c+f;if(!d.helper.isString(b.ghMentionsLink))throw new Error(\"ghMentionsLink option must be a string\");return c+'<a href=\"'+b.ghMentionsLink.replace(/\\{u}/g,g)+'\">'+f+\"</a>\"})),a=c.converter._dispatch(\"anchors.after\",a,b,c)});var k=/\\b(((https?|ftp|dict):\\/\\/|www\\.)[^'\">\\s]+\\.[^'\">\\s]+)()(?=\\s|$)(?![\"<>])/gi,l=/\\b(((https?|ftp|dict):\\/\\/|www\\.)[^'\">\\s]+\\.[^'\">\\s]+?)([.!?,()\\[\\]]?)(?=\\s|$)(?![\"<>])/gi,m=/<(((https?|ftp|dict):\\/\\/|www\\.)[^'\">\\s]+)()>/gi,n=/(^|\\s)(?:mailto:)?([A-Za-z0-9!#$%&'*+-\\/=?^_`{|}~.]+@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)(?=$|\\s)/gim,o=/<()(?:mailto:)?([-.\\w]+@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)>/gi,p=function(a){\"use strict\";return function(b,c,d,e,f){var g=c,h=\"\",i=\"\";return/^www\\./i.test(c)&&(c=c.replace(/^www\\./i,\"http://www.\")),a.excludeTrailingPunctuationFromURLs&&f&&(h=f),a.openLinksInNewWindow&&(i=' target=\"\u00a8E95Eblank\"'),'<a href=\"'+c+'\"'+i+\">\"+g+\"</a>\"+h}},q=function(a,b){\"use strict\";return function(c,e,f){var g=\"mailto:\";return e=e||\"\",f=d.subParser(\"unescapeSpecialChars\")(f,a,b),a.encodeEmails?(g=d.helper.encodeEmailAddress(g+f),f=d.helper.encodeEmailAddress(f)):g+=f,e+'<a href=\"'+g+'\">'+f+\"</a>\"}};d.subParser(\"autoLinks\",function(a,b,c){\"use strict\";return a=c.converter._dispatch(\"autoLinks.before\",a,b,c),a=a.replace(m,p(b)),a=a.replace(o,q(b,c)),a=c.converter._dispatch(\"autoLinks.after\",a,b,c)}),d.subParser(\"simplifiedAutoLinks\",function(a,b,c){\"use strict\";return b.simplifiedAutoLink?(a=c.converter._dispatch(\"simplifiedAutoLinks.before\",a,b,c),a=b.excludeTrailingPunctuationFromURLs?a.replace(l,p(b)):a.replace(k,p(b)),a=a.replace(n,q(b,c)),a=c.converter._dispatch(\"simplifiedAutoLinks.after\",a,b,c)):a}),d.subParser(\"blockGamut\",function(a,b,c){\"use strict\";return a=c.converter._dispatch(\"blockGamut.before\",a,b,c),a=d.subParser(\"blockQuotes\")(a,b,c),a=d.subParser(\"headers\")(a,b,c),a=d.subParser(\"horizontalRule\")(a,b,c),a=d.subParser(\"lists\")(a,b,c),a=d.subParser(\"codeBlocks\")(a,b,c),a=d.subParser(\"tables\")(a,b,c),a=d.subParser(\"hashHTMLBlocks\")(a,b,c),a=d.subParser(\"paragraphs\")(a,b,c),a=c.converter._dispatch(\"blockGamut.after\",a,b,c)}),d.subParser(\"blockQuotes\",function(a,b,c){\"use strict\";return a=c.converter._dispatch(\"blockQuotes.before\",a,b,c),a=a.replace(/((^ {0,3}>[ \\t]?.+\\n(.+\\n)*\\n*)+)/gm,function(a,e){var f=e;return f=f.replace(/^[ \\t]*>[ \\t]?/gm,\"\u00a80\"),f=f.replace(/\u00a80/g,\"\"),f=f.replace(/^[ \\t]+$/gm,\"\"),f=d.subParser(\"githubCodeBlocks\")(f,b,c),f=d.subParser(\"blockGamut\")(f,b,c),f=f.replace(/(^|\\n)/g,\"$1  \"),f=f.replace(/(\\s*<pre>[^\\r]+?<\\/pre>)/gm,function(a,b){var c=b;return c=c.replace(/^  /gm,\"\u00a80\"),c=c.replace(/\u00a80/g,\"\")}),d.subParser(\"hashBlock\")(\"<blockquote>\\n\"+f+\"\\n</blockquote>\",b,c)}),a=c.converter._dispatch(\"blockQuotes.after\",a,b,c)}),d.subParser(\"codeBlocks\",function(a,b,c){\"use strict\";a=c.converter._dispatch(\"codeBlocks.before\",a,b,c),a+=\"\u00a80\";var e=/(?:\\n\\n|^)((?:(?:[ ]{4}|\\t).*\\n+)+)(\\n*[ ]{0,3}[^ \\t\\n]|(?=\u00a80))/g;return a=a.replace(e,function(a,e,f){var g=e,h=f,i=\"\\n\";return g=d.subParser(\"outdent\")(g,b,c),g=d.subParser(\"encodeCode\")(g,b,c),g=d.subParser(\"detab\")(g,b,c),g=g.replace(/^\\n+/g,\"\"),g=g.replace(/\\n+$/g,\"\"),b.omitExtraWLInCodeBlocks&&(i=\"\"),g=\"<pre><code>\"+g+i+\"</code></pre>\",d.subParser(\"hashBlock\")(g,b,c)+h}),a=a.replace(/\u00a80/,\"\"),a=c.converter._dispatch(\"codeBlocks.after\",a,b,c)}),d.subParser(\"codeSpans\",function(a,b,c){\"use strict\";return a=c.converter._dispatch(\"codeSpans.before\",a,b,c),void 0===a&&(a=\"\"),a=a.replace(/(^|[^\\\\])(`+)([^\\r]*?[^`])\\2(?!`)/gm,function(a,e,f,g){var h=g;return h=h.replace(/^([ \\t]*)/g,\"\"),h=h.replace(/[ \\t]*$/g,\"\"),h=d.subParser(\"encodeCode\")(h,b,c),e+\"<code>\"+h+\"</code>\"}),a=c.converter._dispatch(\"codeSpans.after\",a,b,c)}),d.subParser(\"detab\",function(a,b,c){\"use strict\";return a=c.converter._dispatch(\"detab.before\",a,b,c),a=a.replace(/\\t(?=\\t)/g,\"    \"),a=a.replace(/\\t/g,\"\u00a8A\u00a8B\"),a=a.replace(/\u00a8B(.+?)\u00a8A/g,function(a,b){for(var c=b,d=4-c.length%4,e=0;e<d;e++)c+=\" \";return c}),a=a.replace(/\u00a8A/g,\"    \"),a=a.replace(/\u00a8B/g,\"\"),a=c.converter._dispatch(\"detab.after\",a,b,c)}),d.subParser(\"encodeAmpsAndAngles\",function(a,b,c){\"use strict\";return a=c.converter._dispatch(\"encodeAmpsAndAngles.before\",a,b,c),a=a.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\\w+);)/g,\"&amp;\"),a=a.replace(/<(?![a-z\\/?$!])/gi,\"&lt;\"),a=a.replace(/</g,\"&lt;\"),a=a.replace(/>/g,\"&gt;\"),a=c.converter._dispatch(\"encodeAmpsAndAngles.after\",a,b,c)}),d.subParser(\"encodeBackslashEscapes\",function(a,b,c){\"use strict\";return a=c.converter._dispatch(\"encodeBackslashEscapes.before\",a,b,c),a=a.replace(/\\\\(\\\\)/g,d.helper.escapeCharactersCallback),a=a.replace(/\\\\([`*_{}\\[\\]()>#+.!~=|-])/g,d.helper.escapeCharactersCallback),a=c.converter._dispatch(\"encodeBackslashEscapes.after\",a,b,c)}),d.subParser(\"encodeCode\",function(a,b,c){\"use strict\";return a=c.converter._dispatch(\"encodeCode.before\",a,b,c),a=a.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/([*_{}\\[\\]\\\\=~-])/g,d.helper.escapeCharactersCallback),a=c.converter._dispatch(\"encodeCode.after\",a,b,c)}),d.subParser(\"escapeSpecialCharsWithinTagAttributes\"",
    "context": {
      "3": "(function(){function a(a){\"use strict\";var b={omitExtraWLInCodeBlocks:{defaultValue:!1,describe:\"Omit the default extra whiteline added to code blocks\",type:\"boolean\"},noHeaderId:{defaultValue:!1,describe:\"Turn on/off generated header id\",type:\"boolean\"},prefixHeaderId:{defaultValue:!1,describe:\"Specify a prefix to generated header ids\",type:\"string\"},ghCompatibleHeaderId:{defaultValue:!1,describe:\"Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)\",type:\"boolean\"},headerLevelStart:{defaultValue:!1,describe:\"The header blocks level start\",type:\"integer\"},parseImgDimensions:{defaultValue:!1,describe:\"Turn on/off image dimension parsing\",type:\"boolean\"},simplifiedAutoLink:{defaultValue:!1,describe:\"Turn on/off GFM autolink style\",type:\"boolean\"},excludeTrailingPunctuationFromURLs:{defaultValue:!1,describe:\"Excludes trailing punctuation from links generated with autoLinking\",type:\"boolean\"},literalMidWordUnderscores:{defaultValue:!1,describe:\"Parse midword underscores as literal underscores\",type:\"boolean\"},literalMidWordAsterisks:{defaultValue:!1,describe:\"Parse midword asterisks as literal asterisks\",type:\"boolean\"},strikethrough:{defaultValue:!1,describe:\"Turn on/off strikethrough support\",type:\"boolean\"},tables:{defaultValue:!1,describe:\"Turn on/off tables support\",type:\"boolean\"},tablesHeaderId:{defaultValue:!1,describe:\"Add an id to table headers\",type:\"boolean\"},ghCodeBlocks:{defaultValue:!0,describe:\"Turn on/off GFM fenced code blocks support\",type:\"boolean\"},tasklists:{defaultValue:!1,describe:\"Turn on/off GFM tasklist support\",type:\"boolean\"},smoothLivePreview:{defaultValue:!1,describe:\"Prevents weird effects in live previews due to incomplete input\",type:\"boolean\"},smartIndentationFix:{defaultValue:!1,description:\"Tries to smartly fix indentation in es6 strings\",type:\"boolean\"},disableForced4SpacesIndentedSublists:{defaultValue:!1,description:\"Disables the requirement of indenting nested sublists by 4 spaces\",type:\"boolean\"},simpleLineBreaks:{defaultValue:!1,description:\"Parses simple line breaks as <br> (GFM Style)\",type:\"boolean\"},requireSpaceBeforeHeadingText:{defaultValue:!1,description:\"Makes adding a space between `#` and the header text mandatory (GFM Style)\",type:\"boolean\"},ghMentions:{defaultValue:!1,description:\"Enables github @mentions\",type:\"boolean\"},ghMentionsLink:{defaultValue:\"https://github.com/{u}\",description:\"Changes the link generated by @mentions. Only applies if ghMentions option is enabled.\",type:\"string\"},encodeEmails:{defaultValue:!0,description:\"Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities\",type:\"boolean\"},openLinksInNewWindow:{defaultValue:!1,description:\"Open all links in new windows\",type:\"boolean\"}};if(!1===a)return JSON.parse(JSON.stringify(b));var c={};for(var d in b)b.hasOwnProperty(d)&&(c[d]=b[d].defaultValue);return c}function b(a,b){\"use strict\";var c=b?\"Error in \"+b+\" extension->\":\"Error in unnamed extension\",e={valid:!0,error:\"\"};d.helper.isArray(a)||(a=[a]);for(var f=0;f<a.length;++f){var g=c+\" sub-extension \"+f+\": \",h=a[f];if(\"object\"!=typeof h)return e.valid=!1,e.error=g+\"must be an object, but \"+typeof h+\" given\",e;if(!d.helper.isString(h.type))return e.valid=!1,e.error=g+'property \"type\" must be a string, but '+typeof h.type+\" given\",e;var i=h.type=h.type.toLowerCase();if(\"language\"===i&&(i=h.type=\"lang\"),\"html\"===i&&(i=h.type=\"output\"),\"lang\"!==i&&\"output\"!==i&&\"listener\"!==i)return e.valid=!1,e.error=g+\"type \"+i+' is not recognized. Valid values: \"lang/language\", \"output/html\" or \"listener\"',e;if(\"listener\"===i){if(d.helper.isUndefined(h.listeners))return e.valid=!1,e.error=g+'. Extensions of type \"listener\" must have a property called \"listeners\"',e}else if(d.helper.isUndefined(h.filter)&&d.helper.isUndefined(h.regex))return e.valid=!1,e.error=g+i+' extensions must define either a \"regex\" property or a \"filter\" method',e;if(h.listeners){if(\"object\"!=typeof h.listeners)return e.valid=!1,e.error=g+'\"listeners\" property must be an object but '+typeof h.listeners+\" given\",e;for(var j in h.listeners)if(h.listeners.hasOwnProperty(j)&&\"function\"!=typeof h.listeners[j])return e.valid=!1,e.error=g+'\"listeners\" property must be an hash of [event name]: [callback]. listeners.'+j+\" must be a function but \"+typeof h.listeners[j]+\" given\",e}if(h.filter){if(\"function\"!=typeof h.filter)return e.valid=!1,e.error=g+'\"filter\" must be a function, but '+typeof h.filter+\" given\",e}else if(h.regex){if(d.helper.isString(h.regex)&&(h.regex=new RegExp(h.regex,\"g\")),!(h.regex instanceof RegExp))return e.valid=!1,e.error=g+'\"regex\" property must either be a string or a RegExp object, but '+typeof h.regex+\" given\",e;if(d.helper.isUndefined(h.replace))return e.valid=!1,e.error=g+'\"regex\" extensions must implement a replace string or function',e}}return e}function c(a,b){\"use strict\";return\"\u00a8E\"+b.charCodeAt(0)+\"E\"}var d={},e={},f={},g=a(!0),h=\"vanilla\",i={github:{omitExtraWLInCodeBlocks:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,disableForced4SpacesIndentedSublists:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghCompatibleHeaderId:!0,ghMentions:!0},original:{noHeaderId:!0,ghCodeBlocks:!1},ghost:{omitExtraWLInCodeBlocks:!0,parseImgDimensions:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,smoothLivePreview:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghMentions:!1,encodeEmails:!0},vanilla:a(!0),allOn:function(){\"use strict\";var b=a(!0),c={};for(var d in b)b.hasOwnProperty(d)&&(c[d]=!0);return c}()};d.helper={},d.extensions={},d.setOption=function(a,b){\"use strict\";return g[a]=b,this},d.getOption=function(a){\"use strict\";return g[a]},d.getOptions=function(){\"use strict\";return g},d.resetOptions=function(){\"use strict\";g=a(!0)},d.setFlavor=function(a){\"use strict\";if(!i.hasOwnProperty(a))throw Error(a+\" flavor was not found\");d.resetOptions();var b=i[a];h=a;for(var c in b)b.hasOwnProperty(c)&&(g[c]=b[c])},d.getFlavor=function(){\"use strict\";return h},d.getFlavorOptions=function(a){\"use strict\";if(i.hasOwnProperty(a))return i[a]},d.getDefaultOptions=function(b){\"use strict\";return a(b)},d.subParser=function(a,b){\"use strict\";if(d.helper.isString(a)){if(void 0===b){if(e.hasOwnProperty(a))return e[a];throw Error(\"SubParser named \"+a+\" not registered!\")}e[a]=b}},d.extension=function(a,c){\"use strict\";if(!d.helper.isString(a))throw Error(\"Extension 'name' must be a string\");if(a=d.helper.stdExtName(a),d.helper.isUndefined(c)){if(!f.hasOwnProperty(a))throw Error(\"Extension named \"+a+\" is not registered!\");return f[a]}\"function\"==typeof c&&(c=c()),d.helper.isArray(c)||(c=[c]);var e=b(c,a);if(!e.valid)throw Error(e.error);f[a]=c},d.getAllExtensions=function(){\"use strict\";return f},d.removeExtension=function(a){\"use strict\";delete f[a]},d.resetExtensions=function(){\"use strict\";f={}},d.validateExtension=function(a){\"use strict\";var c=b(a,null);return!!c.valid||(console.warn(c.error),!1)},d.hasOwnProperty(\"helper\")||(d.helper={}),d.helper.isString=function(a){\"use strict\";return\"string\"==typeof a||a instanceof String},d.helper.isFunction=function(a){\"use strict\";var b={};return a&&\"[object Function]\"===b.toString.call(a)},d.helper.isArray=function(a){\"use strict\";return a.constructor===Array},d.helper.isUndefined=function(a){\"use strict\";return void 0===a},d.helper.forEach=function(a,b){\"use strict\";if(d.helper.isUndefined(a))throw new Error(\"obj param is required\");if(d.helper.isUndefined(b))throw new Error(\"callback param is required\");if(!d.helper.isFunction(b))throw new Error(\"callback param must be a function/closure\");if(\"function\"==typeof a.forEach)a.forEach(b);else if(d.helper.isArray(a))for(var c=0;c<a.length;c++)b(a[c],c,a);else{if(\"object\"!=typeof a)throw new Error(\"obj does not seem to be an array or an iterable object\");for(var e in a)a.hasOwnProperty(e)&&b(a[e],e,a)}},d.helper.stdExtName=function(a){\"use strict\";return a.replace(/[_?*+\\/\\\\.^-]/g,\"\").replace(/\\s/g,\"\").toLowerCase()},d.helper.escapeCharactersCallback=c,d.helper.escapeCharacters=function(a,b,d){\"use strict\";var e=\"([\"+b.replace(/([\\[\\]\\\\])/g,\"\\\\$1\")+\"])\";d&&(e=\"\\\\\\\\\"+e);var f=new RegExp(e,\"g\");return a=a.replace(f,c)};var j=function(a,b,c,d){\"use strict\";var e,f,g,h,i,j=d||\"\",k=j.indexOf(\"g\")>-1,l=new RegExp(b+\"|\"+c,\"g\"+j.replace(/g/g,\"\")),m=new RegExp(b,j.replace(/g/g,\"\")),n=[];do{for(e=0;g=l.exec(a);)if(m.test(g[0]))e++||(f=l.lastIndex,h=f-g[0].length);else if(e&&!--e){i=g.index+g[0].length;var o={left:{start:h,end:f},match:{start:f,end:g.index},right:{start:g.index,end:i},wholeMatch:{start:h,end:i}};if(n.push(o),!k)return n}}while(e&&(l.lastIndex=f));return n};d.helper.matchRecursiveRegExp=function(a,b,c,d){\"use strict\";for(var e=j(a,b,c,d),f=[],g=0;g<e.length;++g)f.push([a.slice(e[g].wholeMatch.start,e[g].wholeMatch.end),a.slice(e[g].match.start,e[g].match.end),a.slice(e[g].left.start,e[g].left.end),a.slice(e[g].right.start,e[g].right.end)]);return f},d.helper.replaceRecursiveRegExp=function(a,b,c,e,f){\"use strict\";if(!d.helper.isFunction(b)){var g=b;b=function(){return g}}var h=j(a,c,e,f),i=a,k=h.length;if(k>0){var l=[];0!==h[0].wholeMatch.start&&l.push(a.slice(0,h[0].wholeMatch.start));for(var m=0;m<k;++m)l.push(b(a.slice(h[m].wholeMatch.start,h[m].wholeMatch.end),a.slice(h[m].match.start,h[m].match.end),a.slice(h[m].left.start,h[m].left.end),a.slice(h[m].right.start,h[m].right.end))),m<k-1&&l.push(a.slice(h[m].wholeMatch.end,h[m+1].wholeMatch.start));h[k-1].wholeMatch.end<a.length&&l.push(a.slice(h[k-1].wholeMatch.end)),i=l.join(\"\")}return i},d.helper.regexIndexOf=function(a,b,c){\"use strict\";if(!d.helper.isString(a))throw\"InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string\";if(b instanceof RegExp==!1)throw\"InvalidArgumentError: second parameter of showdown.helper.regexIndexOf function must be an instance of RegExp\";var e=a.substring(c||0).search(b);return e>=0?e+(c||0):e},d.helper.splitAtIndex=function(a,b){\"use strict\";if(!d.helper.isString(a))throw\"InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string\";return[a.substring(0,b),a.substring(b)]},d.helper.encodeEmailAddress=function(a){\"use strict\";var b=[function(a){return\"&#\"+a.charCodeAt(0)+\";\"},function(a){return\"&#x\"+a.charCodeAt(0).toString(16)+\";\"},function(a){return a}];return a=a.replace(/./g,function(a){if(\"@\"===a)a=b[Math.floor(2*Math.random())](a);else{var c=Math.random();a=c>.9?b[2](a):c>.45?b[1](a):b[0](a)}return a})},\"undefined\"==typeof console&&(console={warn:function(a){\"use strict\";alert(a)},log:function(a){\"use strict\";alert(a)},error:function(a){\"use strict\";throw a}}),d.helper.regexes={asteriskAndDash:/([*_])/g},d.Converter=function(a){\"use strict\";function c(a,c){if(c=c||null,d.helper.isString(a)){if(a=d.helper.stdExtName(a),c=a,d.extensions[a])return console.warn(\"DEPRECATION WARNING: \"+a+\" is an old extension that uses a deprecated loading method.Please inform the developer that the extension should be updated!\"),void e(d.extensions[a],a);if(d.helper.isUndefined(f[a]))throw Error('Extension \"'+a+'\" could not be loaded. It was either not found or is not a valid extension.');a=f[a]}\"function\"==typeof a&&(a=a()),d.helper.isArray(a)||(a=[a]);var g=b(a,c);if(!g.valid)throw Error(g.error);for(var h=0;h<a.length;++h){switch(a[h].type){case\"lang\":m.push(a[h]);break;case\"output\":n.push(a[h])}if(a[h].hasOwnProperty(\"listeners\"))for(var i in a[h].listeners)a[h].listeners.hasOwnProperty(i)&&j(i,a[h].listeners[i])}}function e(a,c){\"function\"==typeof a&&(a=a(new d.Converter)),d.helper.isArray(a)||(a=[a]);var e=b(a,c);if(!e.valid)throw Error(e.error);for(var f=0;f<a.length;++f)switch(a[f].type){case\"lang\":m.push(a[f]);break;case\"output\":n.push(a[f]);break;default:throw Error(\"Extension loader error: Type unrecognized!!!\")}}function j(a,b){if(!d.helper.isString(a))throw Error(\"Invalid argument in converter.listen() method: name must be a string, but \"+typeof a+\" given\");if(\"function\"!=typeof b)throw Error(\"Invalid argument in converter.listen() method: callback must be a function, but \"+typeof b+\" given\");o.hasOwnProperty(a)||(o[a]=[]),o[a].push(b)}function k(a){var b=a.match(/^\\s*/)[0].length,c=new RegExp(\"^\\\\s{0,\"+b+\"}\",\"gm\");return a.replace(c,\"\")}var l={},m=[],n=[],o={},p=h;!function(){a=a||{};for(var b in g)g.hasOwnProperty(b)&&(l[b]=g[b]);if(\"object\"!=typeof a)throw Error(\"Converter expects the passed parameter to be an object, but \"+typeof a+\" was passed instead.\");for(var e in a)a.hasOwnProperty(e)&&(l[e]=a[e]);l.extensions&&d.helper.forEach(l.extensions,c)}(),this._dispatch=function(a,b,c,d){if(o.hasOwnProperty(a))for(var e=0;e<o[a].length;++e){var f=o[a][e](a,b,this,c,d);f&&void 0!==f&&(b=f)}return b},this.listen=function(a,b){return j(a,b),this},this.makeHtml=function(a){if(!a)return a;var b={gHtmlBlocks:[],gHtmlMdBlocks:[],gHtmlSpans:[],gUrls:{},gTitles:{},gDimensions:{},gListLevel:0,hashLinkCounts:{},langExtensions:m,outputModifiers:n,converter:this,ghCodeBlocks:[]};return a=a.replace(/\u00a8/g,\"\u00a8T\"),a=a.replace(/\\$/g,\"\u00a8D\"),a=a.replace(/\\r\\n/g,\"\\n\"),a=a.replace(/\\r/g,\"\\n\"),a=a.replace(/\\u00A0/g,\" \"),l.smartIndentationFix&&(a=k(a)),a=\"\\n\\n\"+a+\"\\n\\n\",a=d.subParser(\"detab\")(a,l,b),a=a.replace(/^[ \\t]+$/gm,\"\"),d.helper.forEach(m,function(c){a=d.subParser(\"runExtension\")(c,a,l,b)}),a=d.subParser(\"hashPreCodeTags\")(a,l,b),a=d.subParser(\"githubCodeBlocks\")(a,l,b),a=d.subParser(\"hashHTMLBlocks\")(a,l,b),a=d.subParser(\"hashCodeTags\")(a,l,b),a=d.subParser(\"stripLinkDefinitions\")(a,l,b),a=d.subParser(\"blockGamut\")(a,l,b),a=d.subParser(\"unhashHTMLSpans\")(a,l,b),a=d.subParser(\"unescapeSpecialChars\")(a,l,b),a=a.replace(/\u00a8D/g,\"$$\"),a=a.replace(/\u00a8T/g,\"\u00a8\"),d.helper.forEach(n,function(c){a=d.subParser(\"runExtension\")(c,a,l,b)}),a},this.setOption=function(a,b){l[a]=b},this.getOption=function(a){return l[a]},this.getOptions=function(){return l},this.addExtension=function(a,b){b=b||null,c(a,b)},this.useExtension=function(a){c(a)},this.setFlavor=function(a){if(!i.hasOwnProperty(a))throw Error(a+\" flavor was not found\");var b=i[a];p=a;for(var c in b)b.hasOwnProperty(c)&&(l[c]=b[c])},this.getFlavor=function(){return p},this.removeExtension=function(a){d.helper.isArray(a)||(a=[a]);for(var b=0;b<a.length;++b){for(var c=a[b],e=0;e<m.length;++e)m[e]===c&&m[e].splice(e,1);for(;0<n.length;++e)n[0]===c&&n[0].splice(e,1)}},this.getAllExtensions=function(){return{language:m,output:n}}},d.subParser(\"anchors\",function(a,b,c){\"use strict\";a=c.converter._dispatch(\"anchors.before\",a,b,c);var e=function(a,e,f,g,h,i,j){if(d.helper.isUndefined(j)&&(j=\"\"),f=f.toLowerCase(),a.search(/\\(<?\\s*>? ?(['\"].*['\"])?\\)$/m)>-1)g=\"\";else if(!g){if(f||(f=e.toLowerCase().replace(/ ?\\n/g,\" \")),g=\"#\"+f,d.helper.isUndefined(c.gUrls[f]))return a;g=c.gUrls[f],d.helper.isUndefined(c.gTitles[f])||(j=c.gTitles[f])}g=g.replace(d.helper.regexes.asteriskAndDash,d.helper.escapeCharactersCallback);var k='<a href=\"'+g+'\"';return\"\"!==j&&null!==j&&(j=j.replace(/\"/g,\"&quot;\"),j=j.replace(d.helper.regexes.asteriskAndDash,d.helper.escapeCharactersCallback),k+=' title=\"'+j+'\"'),b.openLinksInNewWindow&&(k+=' target=\"\u00a8E95Eblank\"'),k+=\">\"+e+\"</a>\"};return a=a.replace(/\\[((?:\\[[^\\]]*]|[^\\[\\]])*)] ?(?:\\n *)?\\[(.*?)]()()()()/g,e),a=a.replace(/\\[((?:\\[[^\\]]*]|[^\\[\\]])*)]()[ \\t]*\\([ \\t]?<([^>]*)>(?:[ \\t]*(([\"'])([^\"]*?)\\5))?[ \\t]?\\)/g,e),a=a.replace(/\\[((?:\\[[^\\]]*]|[^\\[\\]])*)]()[ \\t]*\\([ \\t]?<?([\\S]+?(?:\\([\\S]*?\\)[\\S]*?)?)>?(?:[ \\t]*(([\"'])([^\"]*?)\\5))?[ \\t]?\\)/g,e),a=a.replace(/\\[([^\\[\\]]+)]()()()()()/g,e),b.ghMentions&&(a=a.replace(/(^|\\s)(\\\\)?(@([a-z\\d\\-]+))(?=[.!?;,[\\]()]|\\s|$)/gim,function(a,c,e,f,g){if(\"\\\\\"===e)return c+f;if(!d.helper.isString(b.ghMentionsLink))throw new Error(\"ghMentionsLink option must be a string\");return c+'<a href=\"'+b.ghMentionsLink.replace(/\\{u}/g,g)+'\">'+f+\"</a>\"})),a=c.converter._dispatch(\"anchors.after\",a,b,c)});var k=/\\b(((https?|ftp|dict):\\/\\/|www\\.)[^'\">\\s]+\\.[^'\">\\s]+)()(?=\\s|$)(?![\"<>])/gi,l=/\\b(((https?|ftp|dict):\\/\\/|www\\.)[^'\">\\s]+\\.[^'\">\\s]+?)([.!?,()\\[\\]]?)(?=\\s|$)(?![\"<>])/gi,m=/<(((https?|ftp|dict):\\/\\/|www\\.)[^'\">\\s]+)()>/gi,n=/(^|\\s)(?:mailto:)?([A-Za-z0-9!#$%&'*+-\\/=?^_`{|}~.]+@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)(?=$|\\s)/gim,o=/<()(?:mailto:)?([-.\\w]+@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)>/gi,p=function(a){\"use strict\";return function(b,c,d,e,f){var g=c,h=\"\",i=\"\";return/^www\\./i.test(c)&&(c=c.replace(/^www\\./i,\"http://www.\")),a.excludeTrailingPunctuationFromURLs&&f&&(h=f),a.openLinksInNewWindow&&(i=' target=\"\u00a8E95Eblank\"'),'<a href=\"'+c+'\"'+i+\">\"+g+\"</a>\"+h}},q=function(a,b){\"use strict\";return function(c,e,f){var g=\"mailto:\";return e=e||\"\",f=d.subParser(\"unescapeSpecialChars\")(f,a,b),a.encodeEmails?(g=d.helper.encodeEmailAddress(g+f),f=d.helper.encodeEmailAddress(f)):g+=f,e+'<a href=\"'+g+'\">'+f+\"</a>\"}};d.subParser(\"autoLinks\",function(a,b,c){\"use strict\";return a=c.converter._dispatch(\"autoLinks.before\",a,b,c),a=a.replace(m,p(b)),a=a.replace(o,q(b,c)),a=c.converter._dispatch(\"autoLinks.after\",a,b,c)}),d.subParser(\"simplifiedAutoLinks\",function(a,b,c){\"use strict\";return b.simplifiedAutoLink?(a=c.converter._dispatch(\"simplifiedAutoLinks.before\",a,b,c),a=b.excludeTrailingPunctuationFromURLs?a.replace(l,p(b)):a.replace(k,p(b)),a=a.replace(n,q(b,c)),a=c.converter._dispatch(\"simplifiedAutoLinks.after\",a,b,c)):a}),d.subParser(\"blockGamut\",function(a,b,c){\"use strict\";return a=c.converter._dispatch(\"blockGamut.before\",a,b,c),a=d.subParser(\"blockQuotes\")(a,b,c),a=d.subParser(\"headers\")(a,b,c),a=d.subParser(\"horizontalRule\")(a,b,c),a=d.subParser(\"lists\")(a,b,c),a=d.subParser(\"codeBlocks\")(a,b,c),a=d.subParser(\"tables\")(a,b,c),a=d.subParser(\"hashHTMLBlocks\")(a,b,c),a=d.subParser(\"paragraphs\")(a,b,c),a=c.converter._dispatch(\"blockGamut.after\",a,b,c)}),d.subParser(\"blockQuotes\",function(a,b,c){\"use strict\";return a=c.converter._dispatch(\"blockQuotes.before\",a,b,c),a=a.replace(/((^ {0,3}>[ \\t]?.+\\n(.+\\n)*\\n*)+)/gm,function(a,e){var f=e;return f=f.replace(/^[ \\t]*>[ \\t]?/gm,\"\u00a80\"),f=f.replace(/\u00a80/g,\"\"),f=f.replace(/^[ \\t]+$/gm,\"\"),f=d.subParser(\"githubCodeBlocks\")(f,b,c),f=d.subParser(\"blockGamut\")(f,b,c),f=f.replace(/(^|\\n)/g,\"$1  \"),f=f.replace(/(\\s*<pre>[^\\r]+?<\\/pre>)/gm,function(a,b){var c=b;return c=c.replace(/^  /gm,\"\u00a80\"),c=c.replace(/\u00a80/g,\"\")}),d.subParser(\"hashBlock\")(\"<blockquote>\\n\"+f+\"\\n</blockquote>\",b,c)}),a=c.converter._dispatch(\"blockQuotes.after\",a,b,c)}),d.subParser(\"codeBlocks\",function(a,b,c){\"use strict\";a=c.converter._dispatch(\"codeBlocks.before\",a,b,c),a+=\"\u00a80\";var e=/(?:\\n\\n|^)((?:(?:[ ]{4}|\\t).*\\n+)+)(\\n*[ ]{0,3}[^ \\t\\n]|(?=\u00a80))/g;return a=a.replace(e,function(a,e,f){var g=e,h=f,i=\"\\n\";return g=d.subParser(\"outdent\")(g,b,c),g=d.subParser(\"encodeCode\")(g,b,c),g=d.subParser(\"detab\")(g,b,c),g=g.replace(/^\\n+/g,\"\"),g=g.replace(/\\n+$/g,\"\"),b.omitExtraWLInCodeBlocks&&(i=\"\"),g=\"<pre><code>\"+g+i+\"</code></pre>\",d.subParser(\"hashBlock\")(g,b,c)+h}),a=a.replace(/\u00a80/,\"\"),a=c.converter._dispatch(\"codeBlocks.after\",a,b,c)}),d.subParser(\"codeSpans\",function(a,b,c){\"use strict\";return a=c.converter._dispatch(\"codeSpans.before\",a,b,c),void 0===a&&(a=\"\"),a=a.replace(/(^|[^\\\\])(`+)([^\\r]*?[^`])\\2(?!`)/gm,function(a,e,f,g){var h=g;return h=h.replace(/^([ \\t]*)/g,\"\"),h=h.replace(/[ \\t]*$/g,\"\"),h=d.subParser(\"encodeCode\")(h,b,c),e+\"<code>\"+h+\"</code>\"}),a=c.converter._dispatch(\"codeSpans.after\",a,b,c)}),d.subParser(\"detab\",function(a,b,c){\"use strict\";return a=c.converter._dispatch(\"detab.before\",a,b,c),a=a.replace(/\\t(?=\\t)/g,\"    \"),a=a.replace(/\\t/g,\"\u00a8A\u00a8B\"),a=a.replace(/\u00a8B(.+?)\u00a8A/g,function(a,b){for(var c=b,d=4-c.length%4,e=0;e<d;e++)c+=\" \";return c}),a=a.replace(/\u00a8A/g,\"    \"),a=a.replace(/\u00a8B/g,\"\"),a=c.converter._dispatch(\"detab.after\",a,b,c)}),d.subParser(\"encodeAmpsAndAngles\",function(a,b,c){\"use strict\";return a=c.converter._dispatch(\"encodeAmpsAndAngles.before\",a,b,c),a=a.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\\w+);)/g,\"&amp;\"),a=a.replace(/<(?![a-z\\/?$!])/gi,\"&lt;\"),a=a.replace(/</g,\"&lt;\"),a=a.replace(/>/g,\"&gt;\"),a=c.converter._dispatch(\"encodeAmpsAndAngles.after\",a,b,c)}),d.subParser(\"encodeBackslashEscapes\",function(a,b,c){\"use strict\";return a=c.converter._dispatch(\"encodeBackslashEscapes.before\",a,b,c),a=a.replace(/\\\\(\\\\)/g,d.helper.escapeCharactersCallback),a=a.replace(/\\\\([`*_{}\\[\\]()>#+.!~=|-])/g,d.helper.escapeCharactersCallback),a=c.converter._dispatch(\"encodeBackslashEscapes.after\",a,b,c)}),d.subParser(\"encodeCode\",function(a,b,c){\"use strict\";return a=c.converter._dispatch(\"encodeCode.before\",a,b,c),a=a.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/([*_{}\\[\\]\\\\=~-])/g,d.helper.escapeCharactersCallback),a=c.converter._dispatch(\"encodeCode.after\",a,b,c)}),d.subParser(\"escapeSpecialCharsWithinTagAttributes\",function(a,b,c){\"use strict\";a=c.converter._dispatch(\"escapeSpecialCharsWithinTagAttributes.before\",a,b,c);var e=/(<[a-z\\/!$](\"[^\"]*\"|'[^']*'|[^'\">])*>|<!(--.*?--\\s*)+>)/gi;return a=a.replace(e,function(a){return a.replace(/(.)<\\/?code>(?=.)/g,\"$1`\").replace(/([\\\\`*_~=|])/g,d.helper.escapeCharactersCallback)}),a=c.converter._dispatch(\"escapeSpecialCharsWithinTagAttributes.after\",a,b,c)}),d.subParser(\"githubCodeBlocks\",function(a,b,c){\"use strict\";return b.ghCodeBlocks?(a=c.converter._dispatch(\"githubCodeBlocks.before\",a,b,c),a+=\"\u00a80\",a=a.replace(/(?:^|\\n)```(.*)\\n([\\s\\S]*?)\\n```/g,function(a,e,f){var g=b.omitExtraWLInCodeBlocks?\"\":\"\\n\";return f=d.subParser(\"encodeCode\")(f,b,c),f=d.subParser(\"detab\")(f,b,c),f=f.replace(/^\\n+/g,\"\"),f=f.replace(/\\n+$/g,\"\"),f=\"<pre><code\"+(e?' class=\"'+e+\" language-\"+e+'\"':\"\")+\">\"+f+g+\"</code></pre>\",f=d.subParser(\"hashBlock\")(f,b,c),\"\\n\\n\u00a8G\"+(c.ghCodeBlocks.push({text:a,codeblock:f})-1)+\"G\\n\\n\"}),a=a.replace(/\u00a80/,\"\"),c.converter._dispatch(\"githubCodeBlocks.after\",a,b,c)):a}),d.subParser(\"hashBlock\",function(a,b,c){\"use strict\";return a=c.converter._dispatch(\"hashBlock.before\",a,b,c),a=a.replace(/(^\\n+|\\n+$)/g,\"\"),a=\"\\n\\n\u00a8K\"+(c.gHtmlBlocks.push(a)-1)+\"K\\n\\n\",a=c.converter._dispatch(\"hashBlock.after\",a,b,c)}),d.subParser(\"hashCodeTags\",function(a,b,c){\"use strict\";a=c.converter._dispatch(\"hashCodeTags.before\",a,b,c);var e=function(a,e,f,g){var h=f+d.subParser(\"encodeCode\")(e,b,c)+g;return\"\u00a8C\"+(c.gHtmlSpans.push(h)-1)+\"C\"};return a=d.helper.replaceRecursiveRegExp(a,e,\"<code\\\\b[^>]*>\",\"</code>\",\"gim\"),a=c.converter._dispatch(\"hashCodeTags.after\",a,b,c)}),d.subParser(\"hashElement\",function(a,b,c){\"use strict\";return function(a,b){var d=b;return d=d.replace(/\\n\\n/g,\"\\n\"),d=d.replace(/^\\n/,\"\"),d=d.replace(/\\n+$/g,\"\"),d=\"\\n\\n\u00a8K\"+(c.gHtmlBlocks.push(d)-1)+\"K\\n\\n\"}}),d.subParser(\"hashHTMLBlocks\",function(a,b,c){\"use strict\";a=c.converter._dispatch(\"hashHTMLBlocks.before\",a,b,c);for(var e=[\"pre\",\"div\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"blockquote\",\"table\",\"dl\",\"ol\",\"ul\",\"script\",\"noscript\",\"form\",\"fieldset\",\"iframe\",\"math\",\"style\",\"section\",\"header\",\"footer\",\"nav\",\"article\",\"aside\",\"address\",\"audio\",\"canvas\",\"figure\",\"hgroup\",\"output\",\"video\",\"p\"],f=function(a,b,d,e){var f=a;return-1!==d.search(/\\bmarkdown\\b/)&&(f=d+c.converter.makeHtml(b)+e),\"\\n\\n\u00a8K\"+(c.gHtmlBlocks.push(f)-1)+\"K\\n\\n\"},g=0;g<e.length;++g)for(var h,i=new RegExp(\"^ {0,3}<\"+e[g]+\"\\\\b[^>]*>\",\"im\"),j=\"<\"+e[g]+\"\\\\b[^>]*>\",k=\"</\"+e[g]+\">\";-1!==(h=d.helper.regexIndexOf(a,i));){var l=d.helper.splitAtIndex(a,h),m=d.helper.replaceRecursiveRegExp(l[1],f,j,k,\"im\");if(m===l[1])break;a=l[0].concat(m)}return a=a.replace(/(\\n {0,3}(<(hr)\\b([^<>])*?\\/?>)[ \\t]*(?=\\n{2,}))/g,d.subParser(\"hashElement\")(a,b,c)),a=d.helper.replaceRecursiveRegExp(a,function(a){return\"\\n\\n\u00a8K\"+(c.gHtmlBlocks.push(a)-1)+\"K\\n\\n\"},\"^ {0,3}\\x3c!--\",\"--\\x3e\",\"gm\"),a=a.replace(/(?:\\n\\n)( {0,3}(?:<([?%])[^\\r]*?\\2>)[ \\t]*(?=\\n{2,}))/g,d.subParser(\"hashElement\")(a,b,c)),a=c.converter._dispatch(\"hashHTMLBlocks.after\",a,b,c)}),d.subParser(\"hashHTMLSpans\",function(a,b,c){\"use strict\";function d(a){return\"\u00a8C\"+(c.gHtmlSpans.push(a)-1)+\"C\"}return a=c.converter._dispatch(\"hashHTMLSpans.before\",a,b,c),a=a.replace(/<[^>]+?\\/>/gi,function(a){return d(a)}),a=a.replace(/<([^>]+?)>[\\s\\S]*?<\\/\\1>/g,function(a){return d(a)}),a=a.replace(/<([^>]+?)\\s[^>]+?>[\\s\\S]*?<\\/\\1>/g,function(a){return d(a)}),a=a.replace(/<[^>]+?>/gi,function(a){return d(a)}),a=c.converter._dispatch(\"hashHTMLSpans.after\",a,b,c)}),d.subParser(\"unhashHTMLSpans\",function(a,b,c){\"use strict\";a=c.converter._dispatch(\"unhashHTMLSpans.before\",a,b,c);for(var d=0;d<c.gHtmlSpans.length;++d){for(var e=c.gHtmlSpans[d],f=0;/\u00a8C(\\d+)C/.test(e);){var g=RegExp.$1;if(e=e.replace(\"\u00a8C\"+g+\"C\",c.gHtmlSpans[g]),10===f)break;++f}a=a.replace(\"\u00a8C\"+d+\"C\",e)}return a=c.converter._dispatch(\"unhashHTMLSpans.after\",a,b,c)}),d.subParser(\"hashPreCodeTags\",function(a,b,c){\"use strict\";a=c.converter._dispatch(\"hashPreCodeTags.before\",a,b,c);var e=function(a,e,f,g){var h=f+d.subParser(\"encodeCode\")(e,b,c)+g;return\"\\n\\n\u00a8G\"+(c.ghCodeBlocks.push({text:a,codeblock:h})-1)+\"G\\n\\n\"};return a=d.helper.replaceRecursiveRegExp(a,e,\"^ {0,3}<pre\\\\b[^>]*>\\\\s*<code\\\\b[^>]*>\",\"^ {0,3}</code>\\\\s*</pre>\",\"gim\"),a=c.converter._dispatch(\"hashPreCodeTags.after\",a,b,c)}),d.subParser(\"headers\",function(a,b,c){\"use strict\";function e(a){var e;if(b.customizedHeaderId){var f=a.match(/\\{([^{]+?)}\\s*$/);f&&f[1]&&(a=f[1])}return e=d.helper.isString(b.prefixHeaderId)?b.prefixHeaderId+a:!0===b.prefixHeaderId?\"section \"+a:a,e=g?e.replace(/ /g,\"-\").replace(/&amp;/g,\"\").replace(/\u00a8T/g,\"\").replace(/\u00a8D/g,\"\").replace(/[&+$,\\/:;=?@\"#{}|^\u00a8~\\[\\]`\\\\*)(%.!'<>]/g,\"\").toLowerCase():e.replace(/[^\\w]/g,\"\").toLowerCase(),c.hashLinkCounts[e]?e=e+\"-\"+c.hashLinkCounts[e]++:c.hashLinkCounts[e]=1,e}a=c.converter._dispatch(\"headers.before\",a,b,c);var f=isNaN(parseInt(b.headerLevelStart))?1:parseInt(b.headerLevelStart),g=b.ghCompatibleHeaderId,h=b.smoothLivePreview?/^(.+)[ \\t]*\\n={2,}[ \\t]*\\n+/gm:/^(.+)[ \\t]*\\n=+[ \\t]*\\n+/gm,i=b.smoothLivePreview?/^(.+)[ \\t]*\\n-{2,}[ \\t]*\\n+/gm:/^(.+)[ \\t]*\\n-+[ \\t]*\\n+/gm;a=a.replace(h,function(a,g){var h=d.subParser(\"spanGamut\")(g,b,c),i=b.noHeaderId?\"\":' id=\"'+e(g)+'\"',j=f,k=\"<h\"+j+i+\">\"+h+\"</h\"+j+\">\";return d.subParser(\"hashBlock\")(k,b,c)}),a=a.replace(i,function(a,g){var h=d.subParser(\"spanGamut\")(g,b,c),i=b.noHeaderId?\"\":' id=\"'+e(g)+'\"',j=f+1,k=\"<h\"+j+i+\">\"+h+\"</h\"+j+\">\";return d.subParser(\"hashBlock\")(k,b,c)});var j=b.requireSpaceBeforeHeadingText?/^(#{1,6})[ \\t]+(.+?)[ \\t]*#*\\n+/gm:/^(#{1,6})[ \\t]*(.+?)[ \\t]*#*\\n+/gm;return a=a.replace(j,function(a,g,h){var i=h;b.customizedHeaderId&&(i=h.replace(/\\s?\\{([^{]+?)}\\s*$/,\"\"));var j=d.subParser(\"spanGamut\")(i,b,c),k=b.noHeaderId?\"\":' id=\"'+e(h)+'\"',l=f-1+g.length,m=\"<h\"+l+k+\">\"+j+\"</h\"+l+\">\";return d.subParser(\"hashBlock\")(m,b,c)}),a=c.converter._dispatch(\"headers.after\",a,b,c)}),d.subParser(\"horizontalRule\",function(a,b,c){\"use strict\";a=c.converter._dispatch(\"horizontalRule.before\",a,b,c);var e=d.subParser(\"hashBlock\")(\"<hr />\",b,c);return a=a.replace(/^ {0,2}( ?-){3,}[ \\t]*$/gm,e),a=a.replace(/^ {0,2}( ?\\*){3,}[ \\t]*$/gm,e),a=a.replace(/^ {0,2}( ?_){3,}[ \\t]*$/gm,e),a=c.converter._dispatch(\"horizontalRule.after\",a,b,c)}),d.subParser(\"images\",function(a,b,c){\"use strict\";function e(a,b,e,f,g,h,i,j){var k=c.gUrls,l=c.gTitles,m=c.gDimensions;if(e=e.toLowerCase(),j||(j=\"\"),a.search(/\\(<?\\s*>? ?(['\"].*['\"])?\\)$/m)>-1)f=\"\";else if(\"\"===f||null===f){if(\"\"!==e&&null!==e||(e=b.toLowerCase().replace(/ ?\\n/g,\" \")),f=\"#\"+e,d.helper.isUndefined(k[e]))return a;f=k[e],d.helper.isUndefined(l[e])||(j=l[e]),d.helper.isUndefined(m[e])||(g=m[e].width,h=m[e].height)}b=b.replace(/\"/g,\"&quot;\").replace(d.helper.regexes.asteriskAndDash,d.helper.escapeCharactersCallback),f=f.replace(d.helper.regexes.asteriskAndDash,d.helper.escapeCharactersCallback);var n='<img src=\"'+f+'\" alt=\"'+b+'\"';return j&&(j=j.replace(/\"/g,\"&quot;\").replace(d.helper.regexes.asteriskAndDash,d.helper.escapeCharactersCallback),n+=' title=\"'+j+'\"'),g&&h&&(g=\"*\"===g?\"auto\":g,h=\"*\"===h?\"auto\":h,n+=' width=\"'+g+'\"',n+=' height=\"'+h+'\"'),n+=\" />\"}a=c.converter._dispatch(\"images.before\",a,b,c);var f=/!\\[([^\\]]*?)][ \\t]*()\\([ \\t]?<?([\\S]+?(?:\\([\\S]*?\\)[\\S]*?)?)>?(?: =([*\\d]+[A-Za-z%]{0,4})x([*\\d]+[A-Za-z%]{0,4}))?[ \\t]*(?:([\"'])([^\"]*?)\\6)?[ \\t]?\\)/g,g=/!\\[([^\\]]*?)][ \\t]*()\\([ \\t]?<([^>]*)>(?: =([*\\d]+[A-Za-z%]{0,4})x([*\\d]+[A-Za-z%]{0,4}))?[ \\t]*(?:(?:([\"'])([^\"]*?)\\6))?[ \\t]?\\)/g,h=/!\\[([^\\]]*?)] ?(?:\\n *)?\\[(.*?)]()()()()()/g,i=/!\\[([^\\[\\]]+)]()()()()()/g;return a=a.replace(h,e),a=a.replace(g,e),a=a.replace(f,e),a=a.replace(i,e),a=c.converter._dispatch(\"images.after\",a,b,c)}),d.subParser(\"italicsAndBold\",function(a,b,c){\"use strict\";function e(a,e,f){return b.simplifiedAutoLink&&(a=d.subParser(\"simplifiedAutoLinks\")(a,b,c)),e+a+f}return a=c.converter._dispatch(\"italicsAndBold.before\",a,b,c),b.literalMidWordUnderscores?(a=a.replace(/\\b___(\\S[\\s\\S]*)___\\b/g,function(a,b){return e(b,\"<strong><em>\",\"</em></strong>\")}),a=a.replace(/\\b__(\\S[\\s\\S]*)__\\b/g,function(a,b){return e(b,\"<strong>\",\"</strong>\")}),a=a.replace(/\\b_(\\S[\\s\\S]*?)_\\b/g,function(a,b){return e(b,\"<em>\",\"</em>\")})):(a=a.replace(/___(\\S[\\s\\S]*?)___/g,function(a,b){return/\\S$/.test(b)?e(b,\"<strong><em>\",\"</em></strong>\"):a}),a=a.replace(/__(\\S[\\s\\S]*?)__/g,function(a,b){return/\\S$/.test(b)?e(b,\"<strong>\",\"</strong>\"):a}),a=a.replace(/_([^\\s_][\\s\\S]*?)_/g,function(a,b){return/\\S$/.test(b)?e(b,\"<em>\",\"</em>\"):a})),b.literalMidWordAsterisks?(a=a.trim().replace(/(?:^| +)\\*{3}(\\S[\\s\\S]*?)\\*{3}(?: +|$)/g,function(a,b){return e(b,\" <strong><em>\",\"</em></strong> \")}),a=a.trim().replace(/(?:^| +)\\*{2}(\\S[\\s\\S]*?)\\*{2}(?: +|$)/g,function(a,b){return e(b,\" <strong>\",\"</strong> \")}),a=a.trim().replace(/(?:^| +)\\*{1}(\\S[\\s\\S]*?)\\*{1}(?: +|$)/g,function(a,b){return e(b,\" <em>\",\"</em>\"+(\" \"===a.slice(-1)?\" \":\"\"))})):(a=a.replace(/\\*\\*\\*(\\S[\\s\\S]*?)\\*\\*\\*/g,function(a,b){return/\\S$/.test(b)?e(b,\"<strong><em>\",\"</em></strong>\"):a}),a=a.replace(/\\*\\*(\\S[\\s\\S]*?)\\*\\*/g,function(a,b){return/\\S$/.test(b)?e(b,\"<strong>\",\"</strong>\"):a}),a=a.replace(/\\*([^\\s*][\\s\\S]*?)\\*/g,function(a,b){return/\\S$/.test(b)?e(b,\"<em>\",\"</em>\"):a})),a=c.converter._dispatch(\"italicsAndBold.after\",a,b,c)}),d.subParser(\"lists\",function(a,b,c){\"use strict\";function e(a,e){c.gListLevel++,a=a.replace(/\\n{2,}$/,\"\\n\"),a+=\"\u00a80\";var f=/(\\n)?(^ {0,3})([*+-]|\\d+[.])[ \\t]+((\\[(x|X| )?])?[ \\t]*[^\\r]+?(\\n{1,2}))(?=\\n*(\u00a80| {0,3}([*+-]|\\d+[.])[ \\t]+))/gm,g=/\\n[ \\t]*\\n(?!\u00a80)/.test(a);return b.disableForced4SpacesIndentedSublists&&(f=/(\\n)?(^ {0,3})([*+-]|\\d+[.])[ \\t]+((\\[(x|X| )?])?[ \\t]*[^\\r]+?(\\n{1,2}))(?=\\n*(\u00a80|\\2([*+-]|\\d+[.])[ \\t]+))/gm),a=a.replace(f,function(a,e,f,h,i,j,k){k=k&&\"\"!==k.trim();var l=d.subParser(\"outdent\")(i,b,c),m=\"\";return j&&b.tasklists&&(m=' class=\"task-list-item\" style=\"list-style-type: none;\"',l=l.replace(/^[ \\t]*\\[(x|X| )?]/m,function(){var a='<input type=\"checkbox\" disabled style=\"margin: 0px 0.35em 0.25em -1.6em; vertical-align: middle;\"';return k&&(a+=\" checked\"),a+=\">\"})),l=l.replace(/^([-*+]|\\d\\.)[ \\t]+[\\S\\n ]*/g,function(a){return\"\u00a8A\"+a}),e||l.search(/\\n{2,}/)>-1?(l=d.subParser(\"githubCodeBlocks\")(l,b,c),l=d.subParser(\"blockGamut\")(l,b,c)):(l=d.subParser(\"lists\")(l,b,c),l=l.replace(/\\n$/,\"\"),l=d.subParser(\"hashHTMLBlocks\")(l,b,c),l=l.replace(/\\n\\n+/g,\"\\n\\n\"),l=l.replace(/\\n\\n/g,\"\u00a8B\"),l=g?d.subParser(\"paragraphs\")(l,b,c):d.subParser(\"spanGamut\")(l,b,c),l=l.replace(/\u00a8B/g,\"\\n\\n\")),l=l.replace(\"\u00a8A\",\"\"),l=\"<li\"+m+\">\"+l+\"</li>\\n\"}),a=a.replace(/\u00a80/g,\"\"),c.gListLevel--,e&&(a=a.replace(/\\s+$/,\"\")),a}function f(a,c,d){var f=b.disableForced4SpacesIndentedSublists?/^ ?\\d+\\.[ \\t]/gm:/^ {0,3}\\d+\\.[ \\t]/gm,g=b.disableForced4SpacesIndentedSublists?/^ ?[*+-][ \\t]/gm:/^ {0,3}[*+-][ \\t]/gm,h=\"ul\"===c?f:g,i=\"\";return-1!==a.search(h)?function a(b){var j=b.search(h);-1!==j?(i+=\"\\n<\"+c+\">\\n\"+e(b.slice(0,j),!!d)+\"</\"+c+\">\\n\",c=\"ul\"===c?\"ol\":\"ul\",h=\"ul\"===c?f:g,a(b.slice(j))):i+=\"\\n<\"+c+\">\\n\"+e(b,!!d)+\"</\"+c+\">\\n\"}(a):i=\"\\n<\"+c+\">\\n\"+e(a,!!d)+\"</\"+c+\">\\n\",i}"
    },
    "id": "7b16e327-201b-33bf-b7f4-89291bee34d8",
    "branch": null,
    "message": null,
    "author": null,
    "commit": null,
    "date": null
  },
  {
    "rule": {
      "id": "high-entropy",
      "message": "High Entropy",
      "severity": "MEDIUM"
    },
    "path": "docs/solution/a2-broken-authentication-and-session-management.md",
    "line": "8",
    "secret": "abpa0b6ff456806tre66nhbb93aaa9c4",
    "context": {
      "8": "http://dvja:8080/resetPasswordExecute.action?login=john.doe&key=abba0b6ff456806bab66baed93e6d9c4"
    },
    "id": "e874dc5d-5a3a-3c00-82f2-83c18c74cba1",
    "branch": null,
    "message": null,
    "author": null,
    "commit": null,
    "date": null
  }
]

Last updated