Added Google Analytics support.

Added Google Analytics support.

error: pathspec 'source/_assets/javascripts/analytics.coffee' did not match any file(s) known to git

--- source/_assets/javascripts/analytics.coffee
+++ source/_assets/javascripts/analytics.coffee
@@ -0,0 +1,40 @@
+class GoogleAnalytics
+  @init: (webPropertyId) ->
+    @_initQueue webPropertyId
+    scriptTag = @_createScriptTag()
+    @_injectScriptTag scriptTag
+    true
+
+  @_initQueue: (webPropertyId) ->
+    window._gaq ?= []
+    window._gaq.push ['_setAccount', webPropertyId]
+    window._gaq.push ['_trackPageview']
+
+  @_createScriptTag: ->
+    scriptTag = document.createElement 'script'
+    scriptTag.type = 'text/javascript'
+    scriptTag.async = true
+    protocol = location.protocol
+    scriptTag.src = "#{ protocol }//stats.g.doubleclick.net/dc.js"
+    scriptTag
+
+  @_injectScriptTag: (scriptTag) ->
+    firstScriptTag = document.getElementsByTagName('script')[0]
+    firstScriptTag.parentNode.insertBefore scriptTag, firstScriptTag
+
+  @trackPageView: (url) ->
+    window._gaq.push ['_trackPageview', url]
+
+  @trackEvent: (category, action, label = null, value = null, nonInteraction = null) ->
+    trackedEvent = ['_trackEvent', category, action]
+    for argument in [label, value, nonInteraction]
+      if argument? then trackedEvent.push argument else break
+    window._gaq.push trackedEvent
+
+
+
+# Assuming you're using jQuery to get up and going...
+$ ->
+  # Replace the parameter to GoogleAnalytics.init with your Google Analytics
+  # web property ID.  This tracks the initial page view.
+  GoogleAnalytics.init 'UA-1642439-40'


Disable deprecations unless in dev/spec mode

These are currently adding ~200ms to startup so temporarily disable
until the grim performance is improved and/or core and bundled packages
are updated to not call deprecated APIs.

--- src/atom.coffee
+++ src/atom.coffee
@@ -158,6 +158,12 @@
   #
   # Call after this instance has been assigned to the `atom` global.
   initialize: ->
+    # Disable deprecations unless in dev mode or spec mode so that regular
+    # editor performance isn't impacted by generating stack traces for
+    # deprecated calls.
+    unless @inDevMode() or @inSpecMode()
+      require('grim').deprecate = ->
+
     window.onerror = =>
       @openDevTools()
       @executeJavaScriptInDevTools('InspectorFrontendAPI.showConsole()')


fix dynamic mode with no library or no tags file

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/Qbuer/groovebasin.git/'


Create epics unit test

Create epics unit test

error: pathspec 'app/modules/epics/create-epic/create-epic.controller.spec.coffee' did not match any file(s) known to git

--- app/modules/epics/create-epic/create-epic.controller.spec.coffee
+++ app/modules/epics/create-epic/create-epic.controller.spec.coffee
@@ -0,0 +1,63 @@
+###
+# Copyright (C) 2014-2015 Taiga Agile LLC <taiga@taiga.io>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+# File: epic-row.controller.spec.coffee
+###
+
+describe "EpicRow", ->
+    createEpicCtrl =  null
+    provide = null
+    controller = null
+    mocks = {}
+
+    _mockTgResources = () ->
+        mocks.tgResources = {
+            epics: {
+                post: sinon.stub()
+            }
+        }
+
+        provide.value "tgResources", mocks.tgResources
+
+    _mocks = () ->
+        module ($provide) ->
+            provide = $provide
+            _mockTgResources()
+
+            return null
+
+    beforeEach ->
+        module "taigaEpics"
+
+        _mocks()
+
+        inject ($controller) ->
+            controller = $controller
+
+    it "create Epic", (done) ->
+        createEpicCtrl = controller "CreateEpicCtrl"
+        createEpicCtrl.project = {
+            id: 7
+        }
+        createEpicCtrl.newEpic = {
+            project: createEpicCtrl.project.id
+        }
+        createEpicCtrl.onReloadEpics = sinon.stub()
+        promise = mocks.tgResources.epics.post.withArgs(createEpicCtrl.newEpic).promise().resolve()
+
+        createEpicCtrl.createEpic().then () ->
+            expect(createEpicCtrl.onReloadEpics).have.been.called
+            done()


initial file class

initial file class

error: pathspec 'src/file.coffee' did not match any file(s) known to git

--- src/file.coffee
+++ src/file.coffee
@@ -0,0 +1,38 @@
+'use strict'
+
+fs = require 'fs'
+path = require 'path'
+_ = require 'underscore'
+_s = require 'underscore.string'
+marked = require 'marked'
+
+class File
+
+	ALLOWED_EXTENSIONS = ['.md', '.markdown', '.mdown']
+	URL_PREFIX = "_lantern"
+
+	constructor: (full_path) ->
+		@full_path = full_path
+
+	name: ->
+		path.basename @full_path
+
+	extension: ->
+		path.extname @full_path
+
+	url: ->
+		file_with_ext = path.join(File::URL_PREFIX, _s.strRight(@full_path, process.cwd()))
+		"#{_s.strLeft(file_with_ext, path.extname(@full_path))}?e=#{_s.strRight(this.extension(), ".")}"
+
+	content: ->
+		fs.readFileSync(@full_path, "utf8")
+
+	render: ->
+		marked(this.content())
+
+	isValid: ->
+		_.contains(File::ALLOWED_EXTENSIONS, this.extension())
+
+
+file = new File(path.join(process.cwd(), "README.md"))
+console.log file.render()


fixed a bug with nodemon starting multiple times

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/Industrial/id-server.git/'


Cleanup

Cleanup

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/evercam/evercam-dashboard.git/'


Use 'transfer-encoding' instead of 'content-length' in http header

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/Postmedia/connect-esi.git/'


memory leak fix

memory leak fix

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/skgcorp/core.git/'


Sort flags alphabetically

Sort flags alphabetically

--- src/main.coffee
+++ src/main.coffee
@@ -61,8 +61,8 @@
   options.alias('h', 'help').boolean('h').describe('h', 'Print this usage message.')
   options.alias('n', 'new-window').boolean('n').describe('n', 'Open a new window.')
   options.alias('t', 'test').boolean('t').describe('t', 'Run the Atom specs and exit with error code on failures.')
+  options.alias('v', 'version').boolean('v').describe('v', 'Print the version.')
   options.alias('w', 'wait').boolean('w').describe('w', 'Wait for window to be closed before returning.')
-  options.alias('v', 'version').boolean('v').describe('v', 'Print the version.')
   args = options.argv

   if args.h


Add identity functions

Add identity functions

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/tombell/hubot-github-identity.git/'


even better IntersectionHelper

even better IntersectionHelper

--- src/digraph.coffee
+++ src/digraph.coffee
@@ -94,25 +94,31 @@
     vertex_list.push(last_vertex)
     vertex_list

-  class IntersectionHelper
-    constructor: (graph1, graph2, intersection) ->
+  class @IntersectionHelper
+    constructor: (graph1, graph2, @intersection) ->
       @unvisited = {}
-      @product_vertexes = {}
+      @product_vertices = {}
       root_key = @vkey(graph1.source, graph2.source)
       @unvisited[root_key] = [graph1.source, graph2.source]
-      @product_vertexes[root_key] = intersection.source
+      @product_vertices[root_key] = @intersection.source

     vkey: (v1, v2) ->
       "#{v1.id},#{v2.id}"

     product_vertex: (v1, v2) ->
       key = @vkey(v1, v2)
-      @product_vertexes[key]
-
-    add_unvisited: (v1, v2, v3) ->
+      @product_vertices[key]
+
+    product_next: (v1, v2) ->
+      unless (result = @product_vertex(v1, v2))
+        result = @intersection.create_vertex()
+        @add_unvisited(v1, v2, result)
+      result
+
+    add_unvisited: (v1, v2, product_vertex) ->
       key = @vkey(v1, v2)
       @unvisited[key] = [v1, v2]
-      @product_vertexes[key] = v3
+      @product_vertices[key] = product_vertex

     get_next_vertices: ->
       keys = Object.keys(@unvisited)
@@ -122,14 +128,14 @@
         key = keys[0]
         [v1, v2] = @unvisited[key]
         delete @unvisited[key]
-        [v1, v2, @product_vertexes[key]]
+        [v1, v2, @product_vertices[key]]

   # return a new digraph that is the intersection of the two graphs.
   intersect: (other) ->
     digraph = @
     product = new @constructor()
-    helper = new IntersectionHelper(digraph, other, product)
+    helper = new @constructor.IntersectionHelper(digraph, other, product)

     while (next_vertices = helper.get_next_vertices())
       [this_vertex, other_vertex, product_vertex] = next_vertices
@@ -143,9 +149,7 @@

           # if the new graph does not already have the intersection state,
           # create an intersection state and index it
-          unless (product_next = helper.product_vertex(this_next, other_next))
-            product_next = product.create_vertex()
-            helper.add_unvisited(this_next, other_next, product_next)
+          product_next = helper.product_next(this_next, other_next)
           product.add_arc(product_vertex, product_next, this_arc.value)
     product


docs fixed typo in navbar api

docs fixed typo in navbar api

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/AppGyver/supersonic.git/'


containsNativeModule -> isNativeModule

containsNativeModule -> isNativeModule

--- src/package.coffee
+++ src/package.coffee
@@ -342,20 +342,22 @@
       eventHandler.handler = eventHandler.disabledHandler
       delete eventHandler.disabledHandler

-  containsNativeModule: (modulePath) ->
+  # Does the given module path contain native code?
+  isNativeModule: (modulePath) ->
     try
       fs.listSync(path.join(modulePath, 'build', 'Release'), ['.node']).length > 0
     catch error
       false

+  # Get an array of all the native modules that this package depends on.
+  # This will recurse through all dependencies.
   getNativeModuleDependencyPaths: ->
     nativeModulePaths = []

     traversePath = (nodeModulesPath) =>
       try
         for modulePath in fs.listSync(nodeModulesPath)
-          if @containsNativeModule(modulePath)
-            nativeModulePaths.push(modulePath)
+          nativeModulePaths.push(modulePath) if @isNativeModule(modulePath)
           traversePath(path.join(modulePath, 'node_modules'))

     traversePath(path.join(@path, 'node_modules'))


Check that url is string before replacing prefix

--- src/package.coffee
+++ src/package.coffee
@@ -29,8 +29,8 @@
     unless metadata?._id
       normalizePackageData ?= require 'normalize-package-data'
       normalizePackageData(metadata)
-      if metadata.repository?.type is 'git'
-        metadata.repository.url = metadata.repository.url?.replace(/^git\+/, '')
+      if metadata.repository?.type is 'git' and typeof metadata.repository.url is 'string'
+        metadata.repository.url = metadata.repository.url.replace(/^git\+/, '')

   @loadMetadata: (packagePath, ignoreErrors=false) ->
     packageName = path.basename(packagePath)


script to show dropdowns in the navbar

script to show dropdowns in the navbar

error: pathspec 'app/assets/javascripts/navbar.js.coffee' did not match any file(s) known to git

--- app/assets/javascripts/navbar.js.coffee
+++ app/assets/javascripts/navbar.js.coffee
@@ -0,0 +1,11 @@
+$(document).ready ->
+  menuToggle = $('#js-mobile-menu').unbind()
+  $('#js-navigation-menu').removeClass 'show'
+  menuToggle.on 'click', (e) ->
+    e.preventDefault()
+    $('#js-navigation-menu').slideToggle ->
+      if $('#js-navigation-menu').is(':hidden')
+        $('#js-navigation-menu').removeAttr 'style'
+      return
+    return
+  return


Create todo.coffee

Create todo.coffee

error: pathspec 'src/todo.coffee' did not match any file(s) known to git

--- src/todo.coffee
+++ src/todo.coffee
@@ -0,0 +1,24 @@
+document.addEventListener 'DOMContentLoaded', ->
+  'use strict'
+  ref = new Firebase 'https://amber-fire-5590.firebaseio.com'
+  todo = new Vue
+    el: '#todo'
+    data: todos: [ {
+      done: false
+      content: 'Loading data from Firebase...'
+    } ]
+    methods:
+      addTo: ->
+        ref.push
+          done: false
+          content: document.getElementById('newTodo').value
+        document.getElementById('newTodo').value = ''
+      clearCompleted: ->
+        _.each todo.$get('todos'), (t, todoKey) ->
+          if t and t.done
+            ref.child(todoKey).remove()
+      madeDone: ->
+        ref.child('done').set({done: true})
+
+  ref.on 'value', (snapshot) ->
+    todo.$set 'todos', snapshot.val()


Make addEditor and removeEditor private methods on project

--- src/project.coffee
+++ src/project.coffee
@@ -128,13 +128,12 @@
     filePath = @resolve(filePath)
     @buildEditorForBuffer(@bufferForPathSync(filePath), options)

-
-  # Public: Add the given {Editor}.
+  # Add the given {Editor}.
   addEditor: (editor) ->
     @editors.push editor
     @emit 'editor-created', editor

-  # Public: Return and removes the given {Editor}.
+  # Return and removes the given {Editor}.
   removeEditor: (editor) ->
     _.remove(@editors, editor)


Disable cyclomatic complexity check for #define().

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/RobotSnacks/stout-orm.git/'


Disable several CSS Lint rules

Disable several CSS Lint rules

--- Gruntfile.coffee
+++ Gruntfile.coffee
@@ -121,12 +121,19 @@
     csslint:
       options:
         'adjoining-classes': false
+        'box-model': false
         'box-sizing': false
         'bulletproof-font-face': false
         'compatible-vendor-prefixes': false
         'fallback-colors': false
         'gradients': false
+        'ids': false
         'important': false
+        'known-properties': false
+        'overqualified-elements': false
+        'qualified-headings': false
+        'unique-headings': false
+        'universal-selector': false
         'vendor-prefix': false
       src: [
         'src/**/*.css',


adding a coffee script port of the country list

error: pathspec 'assets/coffeescript/country_list.coffee' did not match any file(s) known to git

--- assets/coffeescript/country_list.coffee
+++ assets/coffeescript/country_list.coffee
@@ -0,0 +1,2098 @@
+countryList =
+  'Andorra':
+    'countryISO': 'AD'
+    'countryName': 'Andorra'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'United Arab Emirates':
+    'countryISO': 'AE'
+    'countryName': 'United Arab Emirates'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Afghanistan':
+    'countryISO': 'AF'
+    'countryName': 'Afghanistan'
+    'locationFormat': 'Suburb'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Antigua':
+    'countryISO': 'AG'
+    'countryName': 'Antigua'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Anguilla':
+    'countryISO': 'AI'
+    'countryName': 'Anguilla'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Albania':
+    'countryISO': 'AL'
+    'countryName': 'Albania'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Armenia':
+    'countryISO': 'AM'
+    'countryName': 'Armenia'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'Netherlands Antilles':
+    'countryISO': 'AN'
+    'countryName': 'Netherlands Antilles'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Angola':
+    'countryISO': 'AO'
+    'countryName': 'Angola'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Argentina':
+    'countryISO': 'AR'
+    'countryName': 'Argentina'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'American Samoa':
+    'countryISO': 'AS'
+    'countryName': 'American Samoa'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Austria':
+    'countryISO': 'AT'
+    'countryName': 'Austria'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'Australia':
+    'countryISO': 'AU'
+    'countryName': 'Australia'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'Aruba':
+    'countryISO': 'AW'
+    'countryName': 'Aruba'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Azerbaijan':
+    'countryISO': 'AZ'
+    'countryName': 'Azerbaijan'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '999999, 9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 6
+    'postalCodeLenVariance': 2
+  'Bosnia and Herzegovina':
+    'countryISO': 'BA'
+    'countryName': 'Bosnia and Herzegovina'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Barbados':
+    'countryISO': 'BB'
+    'countryName': 'Barbados'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Bangladesh':
+    'countryISO': 'BD'
+    'countryName': 'Bangladesh'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'Belgium':
+    'countryISO': 'BE'
+    'countryName': 'Belgium'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'Burkina Faso':
+    'countryISO': 'BF'
+    'countryName': 'Burkina Faso'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Bulgaria':
+    'countryISO': 'BG'
+    'countryName': 'Bulgaria'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'Bahrain':
+    'countryISO': 'BH'
+    'countryName': 'Bahrain'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Burundi':
+    'countryISO': 'BI'
+    'countryName': 'Burundi'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Benin':
+    'countryISO': 'BJ'
+    'countryName': 'Benin'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Bermuda':
+    'countryISO': 'BM'
+    'countryName': 'Bermuda'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Brunei':
+    'countryISO': 'BN'
+    'countryName': 'Brunei'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': 'AA9999'
+    'postalCodeLenMin': 6
+    'postalCodeLenMax': 6
+    'postalCodeLenVariance': 0
+  'Bolivia':
+    'countryISO': 'BO'
+    'countryName': 'Bolivia'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Brazil':
+    'countryISO': 'BR'
+    'countryName': 'Brazil'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999,99999-999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 9
+    'postalCodeLenVariance': 4
+  'Bahamas':
+    'countryISO': 'BS'
+    'countryName': 'Bahamas'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Bhutan':
+    'countryISO': 'BT'
+    'countryName': 'Bhutan'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Botswana':
+    'countryISO': 'BW'
+    'countryName': 'Botswana'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Belarus':
+    'countryISO': 'BY'
+    'countryName': 'Belarus'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '999999'
+    'postalCodeLenMin': 6
+    'postalCodeLenMax': 6
+    'postalCodeLenVariance': 0
+  'Belize':
+    'countryISO': 'BZ'
+    'countryName': 'Belize'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Canada':
+    'countryISO': 'CA'
+    'countryName': 'Canada'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': 'A9A 9A9,A9A 9A'
+    'postalCodeLenMin': 6
+    'postalCodeLenMax': 7
+    'postalCodeLenVariance': 1
+  'Congo, The Democratic Republic of':
+    'countryISO': 'CD'
+    'countryName': 'Congo, The Democratic Republic of'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Central African Republic':
+    'countryISO': 'CF'
+    'countryName': 'Central African Republic'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Congo':
+    'countryISO': 'CG'
+    'countryName': 'Congo'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Switzerland':
+    'countryISO': 'CH'
+    'countryName': 'Switzerland'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'Cote d\'Ivoire':
+    'countryISO': 'CI'
+    'countryName': 'Cote d\'Ivoire'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Cook Islands':
+    'countryISO': 'CK'
+    'countryName': 'Cook Islands'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Chile':
+    'countryISO': 'CL'
+    'countryName': 'Chile'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Cameroon':
+    'countryISO': 'CM'
+    'countryName': 'Cameroon'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'China, People\'s Republic':
+    'countryISO': 'CN'
+    'countryName': 'China, People\'s Republic'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '999999'
+    'postalCodeLenMin': 6
+    'postalCodeLenMax': 6
+    'postalCodeLenVariance': 0
+  'Colombia':
+    'countryISO': 'CO'
+    'countryName': 'Colombia'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Costa Rica':
+    'countryISO': 'CR'
+    'countryName': 'Costa Rica'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Cuba':
+    'countryISO': 'CU'
+    'countryName': 'Cuba'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Cape Verde':
+    'countryISO': 'CV'
+    'countryName': 'Cape Verde'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Cyprus':
+    'countryISO': 'CY'
+    'countryName': 'Cyprus'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'Czech Republic, The':
+    'countryISO': 'CZ'
+    'countryName': 'Czech Republic, The'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '999 99'
+    'postalCodeLenMin': 6
+    'postalCodeLenMax': 6
+    'postalCodeLenVariance': 0
+  'Germany':
+    'countryISO': 'DE'
+    'countryName': 'Germany'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Djibouti':
+    'countryISO': 'DJ'
+    'countryName': 'Djibouti'
+    'locationFormat': 'Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Denmark':
+    'countryISO': 'DK'
+    'countryName': 'Denmark'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'Dominica':
+    'countryISO': 'DM'
+    'countryName': 'Dominica'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Dominican Rep.':
+    'countryISO': 'DO'
+    'countryName': 'Dominican Rep.'
+    'locationFormat': ''
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Algeria':
+    'countryISO': 'DZ'
+    'countryName': 'Algeria'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Ecuador':
+    'countryISO': 'EC'
+    'countryName': 'Ecuador'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Estonia':
+    'countryISO': 'EE'
+    'countryName': 'Estonia'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Egypt':
+    'countryISO': 'EG'
+    'countryName': 'Egypt'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Eritrea':
+    'countryISO': 'ER'
+    'countryName': 'Eritrea'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Spain':
+    'countryISO': 'ES'
+    'countryName': 'Spain'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Ethiopia':
+    'countryISO': 'ET'
+    'countryName': 'Ethiopia'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Finland':
+    'countryISO': 'FI'
+    'countryName': 'Finland'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Fiji':
+    'countryISO': 'FJ'
+    'countryName': 'Fiji'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Falkland Islands':
+    'countryISO': 'FK'
+    'countryName': 'Falkland Islands'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Micronesia, Federated States Of':
+    'countryISO': 'FM'
+    'countryName': 'Micronesia, Federated States Of'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Faroe Islands':
+    'countryISO': 'FO'
+    'countryName': 'Faroe Islands'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '999'
+    'postalCodeLenMin': 3
+    'postalCodeLenMax': 3
+    'postalCodeLenVariance': 0
+  'France':
+    'countryISO': 'FR'
+    'countryName': 'France'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Gabon':
+    'countryISO': 'GA'
+    'countryName': 'Gabon'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'United Kingdom':
+    'countryISO': 'GB'
+    'countryName': 'United Kingdom'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': 'A9 9AA, A99 9AA, A9A 9AA, AA9 9AA, AA99 9AA, AA9A 9AA'
+    'postalCodeLenMin': 6
+    'postalCodeLenMax': 8
+    'postalCodeLenVariance': 2
+  'Grenada':
+    'countryISO': 'GD'
+    'countryName': 'Grenada'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Georgia':
+    'countryISO': 'GE'
+    'countryName': 'Georgia'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'French Guyana':
+    'countryISO': 'GF'
+    'countryName': 'French Guyana'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Guernsey':
+    'countryISO': 'GG'
+    'countryName': 'Guernsey'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': 'AA9 9AA'
+    'postalCodeLenMin': 7
+    'postalCodeLenMax': 7
+    'postalCodeLenVariance': 0
+  'Ghana':
+    'countryISO': 'GH'
+    'countryName': 'Ghana'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Gibraltar':
+    'countryISO': 'GI'
+    'countryName': 'Gibraltar'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Greenland':
+    'countryISO': 'GL'
+    'countryName': 'Greenland'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'Gambia':
+    'countryISO': 'GM'
+    'countryName': 'Gambia'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Guinea Republic':
+    'countryISO': 'GN'
+    'countryName': 'Guinea Republic'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Guadeloupe':
+    'countryISO': 'GP'
+    'countryName': 'Guadeloupe'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Guinea-Equatorial':
+    'countryISO': 'GQ'
+    'countryName': 'Guinea-Equatorial'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Greece':
+    'countryISO': 'GR'
+    'countryName': 'Greece'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '999 99'
+    'postalCodeLenMin': 6
+    'postalCodeLenMax': 6
+    'postalCodeLenVariance': 0
+  'Guatemala':
+    'countryISO': 'GT'
+    'countryName': 'Guatemala'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Guam':
+    'countryISO': 'GU'
+    'countryName': 'Guam'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Guinea-Bissau':
+    'countryISO': 'GW'
+    'countryName': 'Guinea-Bissau'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Guyana (British)':
+    'countryISO': 'GY'
+    'countryName': 'Guyana (British)'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Hong Kong':
+    'countryISO': 'HK'
+    'countryName': 'Hong Kong'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Honduras':
+    'countryISO': 'HN'
+    'countryName': 'Honduras'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Croatia':
+    'countryISO': 'HR'
+    'countryName': 'Croatia'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Haiti':
+    'countryISO': 'HT'
+    'countryName': 'Haiti'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Hungary':
+    'countryISO': 'HU'
+    'countryName': 'Hungary'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'Canary Islands, The':
+    'countryISO': 'IC'
+    'countryName': 'Canary Islands, The'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Indonesia':
+    'countryISO': 'ID'
+    'countryName': 'Indonesia'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Ireland, Republic Of':
+    'countryISO': 'IE'
+    'countryName': 'Ireland, Republic Of'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Israel':
+    'countryISO': 'IL'
+    'countryName': 'Israel'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'India':
+    'countryISO': 'IN'
+    'countryName': 'India'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '999999'
+    'postalCodeLenMin': 6
+    'postalCodeLenMax': 6
+    'postalCodeLenVariance': 0
+  'Iraq                          ':
+    'countryISO': 'IQ'
+    'countryName': 'Iraq                          '
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Iran (Islamic Republic of)':
+    'countryISO': 'IR'
+    'countryName': 'Iran (Islamic Republic of)'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Iceland':
+    'countryISO': 'IS'
+    'countryName': 'Iceland'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '999'
+    'postalCodeLenMin': 3
+    'postalCodeLenMax': 3
+    'postalCodeLenVariance': 0
+  'Italy':
+    'countryISO': 'IT'
+    'countryName': 'Italy'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Jersey':
+    'countryISO': 'JE'
+    'countryName': 'Jersey'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': 'AA9 9AA'
+    'postalCodeLenMin': 7
+    'postalCodeLenMax': 7
+    'postalCodeLenVariance': 0
+  'Jamaica':
+    'countryISO': 'JM'
+    'countryName': 'Jamaica'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Jordan':
+    'countryISO': 'JO'
+    'countryName': 'Jordan'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Japan':
+    'countryISO': 'JP'
+    'countryName': 'Japan'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '999-9999'
+    'postalCodeLenMin': 8
+    'postalCodeLenMax': 8
+    'postalCodeLenVariance': 0
+  'Kenya':
+    'countryISO': 'KE'
+    'countryName': 'Kenya'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Kyrgyzstan':
+    'countryISO': 'KG'
+    'countryName': 'Kyrgyzstan'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '999999'
+    'postalCodeLenMin': 6
+    'postalCodeLenMax': 6
+    'postalCodeLenVariance': 0
+  'Cambodia':
+    'countryISO': 'KH'
+    'countryName': 'Cambodia'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Kiribati':
+    'countryISO': 'KI'
+    'countryName': 'Kiribati'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Comoros':
+    'countryISO': 'KM'
+    'countryName': 'Comoros'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'St. Kitts':
+    'countryISO': 'KN'
+    'countryName': 'St. Kitts'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Korea, The D.P.R of':
+    'countryISO': 'KP'
+    'countryName': 'Korea, The D.P.R of'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Korea, Republic Of':
+    'countryISO': 'KR'
+    'countryName': 'Korea, Republic Of'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '999-999'
+    'postalCodeLenMin': 7
+    'postalCodeLenMax': 7
+    'postalCodeLenVariance': 0
+  'Kosovo                          ':
+    'countryISO': 'KV'
+    'countryName': 'Kosovo                          '
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Kuwait':
+    'countryISO': 'KW'
+    'countryName': 'Kuwait'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Cayman Islands':
+    'countryISO': 'KY'
+    'countryName': 'Cayman Islands'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Kazakhstan':
+    'countryISO': 'KZ'
+    'countryName': 'Kazakhstan'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '999999'
+    'postalCodeLenMin': 6
+    'postalCodeLenMax': 6
+    'postalCodeLenVariance': 0
+  'Lao People\'s Democratic Republic':
+    'countryISO': 'LA'
+    'countryName': 'Lao People\'s Democratic Republic'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Lebanon':
+    'countryISO': 'LB'
+    'countryName': 'Lebanon'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'St. Lucia':
+    'countryISO': 'LC'
+    'countryName': 'St. Lucia'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Liechtenstein':
+    'countryISO': 'LI'
+    'countryName': 'Liechtenstein'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'Sri Lanka':
+    'countryISO': 'LK'
+    'countryName': 'Sri Lanka'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Liberia':
+    'countryISO': 'LR'
+    'countryName': 'Liberia'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Lesotho':
+    'countryISO': 'LS'
+    'countryName': 'Lesotho'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Lithuania':
+    'countryISO': 'LT'
+    'countryName': 'Lithuania'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Luxembourg':
+    'countryISO': 'LU'
+    'countryName': 'Luxembourg'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'Latvia':
+    'countryISO': 'LV'
+    'countryName': 'Latvia'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'Libya':
+    'countryISO': 'LY'
+    'countryName': 'Libya'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Morocco':
+    'countryISO': 'MA'
+    'countryName': 'Morocco'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Monaco':
+    'countryISO': 'MC'
+    'countryName': 'Monaco'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Moldova, Republic Of':
+    'countryISO': 'MD'
+    'countryName': 'Moldova, Republic Of'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'Montenegro, Republic of':
+    'countryISO': 'ME'
+    'countryName': 'Montenegro, Republic of'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Madagascar':
+    'countryISO': 'MG'
+    'countryName': 'Madagascar'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '999'
+    'postalCodeLenMin': 3
+    'postalCodeLenMax': 3
+    'postalCodeLenVariance': 0
+  'Marshall Islands':
+    'countryISO': 'MH'
+    'countryName': 'Marshall Islands'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Macedonia, Rep. of (FYROM)':
+    'countryISO': 'MK'
+    'countryName': 'Macedonia, Rep. of (FYROM)'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'Mali':
+    'countryISO': 'ML'
+    'countryName': 'Mali'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Myanmar':
+    'countryISO': 'MM'
+    'countryName': 'Myanmar'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Mongolia':
+    'countryISO': 'MN'
+    'countryName': 'Mongolia'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '999999, 99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 6
+    'postalCodeLenVariance': 1
+  'Macau':
+    'countryISO': 'MO'
+    'countryName': 'Macau'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Saipan':
+    'countryISO': 'MP'
+    'countryName': 'Saipan'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Martinique':
+    'countryISO': 'MQ'
+    'countryName': 'Martinique'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Mauritania':
+    'countryISO': 'MR'
+    'countryName': 'Mauritania'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Montserrat':
+    'countryISO': 'MS'
+    'countryName': 'Montserrat'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Malta':
+    'countryISO': 'MT'
+    'countryName': 'Malta'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Mauritius':
+    'countryISO': 'MU'
+    'countryName': 'Mauritius'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Maldives':
+    'countryISO': 'MV'
+    'countryName': 'Maldives'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999, 9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 1
+  'Malawi':
+    'countryISO': 'MW'
+    'countryName': 'Malawi'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Mexico':
+    'countryISO': 'MX'
+    'countryName': 'Mexico'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Malaysia':
+    'countryISO': 'MY'
+    'countryName': 'Malaysia'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Mozambique':
+    'countryISO': 'MZ'
+    'countryName': 'Mozambique'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Namibia':
+    'countryISO': 'NA'
+    'countryName': 'Namibia'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'New Caledonia':
+    'countryISO': 'NC'
+    'countryName': 'New Caledonia'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Niger':
+    'countryISO': 'NE'
+    'countryName': 'Niger'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Nigeria':
+    'countryISO': 'NG'
+    'countryName': 'Nigeria'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Nicaragua':
+    'countryISO': 'NI'
+    'countryName': 'Nicaragua'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Netherlands, The':
+    'countryISO': 'NL'
+    'countryName': 'Netherlands, The'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'Norway':
+    'countryISO': 'NO'
+    'countryName': 'Norway'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'Nepal':
+    'countryISO': 'NP'
+    'countryName': 'Nepal'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Nauru, Republic Of':
+    'countryISO': 'NR'
+    'countryName': 'Nauru, Republic Of'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Niue':
+    'countryISO': 'NU'
+    'countryName': 'Niue'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'New Zealand':
+    'countryISO': 'NZ'
+    'countryName': 'New Zealand'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'Oman':
+    'countryISO': 'OM'
+    'countryName': 'Oman'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Panama':
+    'countryISO': 'PA'
+    'countryName': 'Panama'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Peru':
+    'countryISO': 'PE'
+    'countryName': 'Peru'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Tahiti':
+    'countryISO': 'PF'
+    'countryName': 'Tahiti'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Papua New Guinea':
+    'countryISO': 'PG'
+    'countryName': 'Papua New Guinea'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '999'
+    'postalCodeLenMin': 3
+    'postalCodeLenMax': 3
+    'postalCodeLenVariance': 0
+  'Philippines, The':
+    'countryISO': 'PH'
+    'countryName': 'Philippines, The'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'Pakistan':
+    'countryISO': 'PK'
+    'countryName': 'Pakistan'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Poland':
+    'countryISO': 'PL'
+    'countryName': 'Poland'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '99-999'
+    'postalCodeLenMin': 6
+    'postalCodeLenMax': 6
+    'postalCodeLenVariance': 0
+  'Puerto Rico':
+    'countryISO': 'PR'
+    'countryName': 'Puerto Rico'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Portugal':
+    'countryISO': 'PT'
+    'countryName': 'Portugal'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999, 9999-999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 8
+    'postalCodeLenVariance': 4
+  'Palau                         ':
+    'countryISO': 'PW'
+    'countryName': 'Palau                         '
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Paraguay':
+    'countryISO': 'PY'
+    'countryName': 'Paraguay'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Qatar':
+    'countryISO': 'QA'
+    'countryName': 'Qatar'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Reunion, Island Of':
+    'countryISO': 'RE'
+    'countryName': 'Reunion, Island Of'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Romania':
+    'countryISO': 'RO'
+    'countryName': 'Romania'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '999999'
+    'postalCodeLenMin': 6
+    'postalCodeLenMax': 6
+    'postalCodeLenVariance': 0
+  'Serbia, Republic of        ':
+    'countryISO': 'RS'
+    'countryName': 'Serbia, Republic of        '
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Russian Federation, The':
+    'countryISO': 'RU'
+    'countryName': 'Russian Federation, The'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '999999'
+    'postalCodeLenMin': 6
+    'postalCodeLenMax': 6
+    'postalCodeLenVariance': 0
+  'Rwanda':
+    'countryISO': 'RW'
+    'countryName': 'Rwanda'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Saudi Arabia':
+    'countryISO': 'SA'
+    'countryName': 'Saudi Arabia'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Solomon Islands':
+    'countryISO': 'SB'
+    'countryName': 'Solomon Islands'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Seychelles':
+    'countryISO': 'SC'
+    'countryName': 'Seychelles'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Sudan':
+    'countryISO': 'SD'
+    'countryName': 'Sudan'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Sweden':
+    'countryISO': 'SE'
+    'countryName': 'Sweden'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '999 99'
+    'postalCodeLenMin': 6
+    'postalCodeLenMax': 6
+    'postalCodeLenVariance': 0
+  'Singapore':
+    'countryISO': 'SG'
+    'countryName': 'Singapore'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '999999'
+    'postalCodeLenMin': 6
+    'postalCodeLenMax': 6
+    'postalCodeLenVariance': 0
+  'SAINT HELENA':
+    'countryISO': 'SH'
+    'countryName': 'SAINT HELENA'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Slovenia':
+    'countryISO': 'SI'
+    'countryName': 'Slovenia'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'Slovakia':
+    'countryISO': 'SK'
+    'countryName': 'Slovakia'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '999 99'
+    'postalCodeLenMin': 6
+    'postalCodeLenMax': 6
+    'postalCodeLenVariance': 0
+  'Sierra Leone':
+    'countryISO': 'SL'
+    'countryName': 'Sierra Leone'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'San Marino                       ':
+    'countryISO': 'SM'
+    'countryName': 'San Marino                       '
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Senegal':
+    'countryISO': 'SN'
+    'countryName': 'Senegal'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Somalia':
+    'countryISO': 'SO'
+    'countryName': 'Somalia'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Suriname':
+    'countryISO': 'SR'
+    'countryName': 'Suriname'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'South Sudan':
+    'countryISO': 'SS'
+    'countryName': 'South Sudan'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Sao Tome and Principe':
+    'countryISO': 'ST'
+    'countryName': 'Sao Tome and Principe'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'El Salvador':
+    'countryISO': 'SV'
+    'countryName': 'El Salvador'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Syria':
+    'countryISO': 'SY'
+    'countryName': 'Syria'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Swaziland':
+    'countryISO': 'SZ'
+    'countryName': 'Swaziland'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': 'A999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'Turks and Caicos Islands':
+    'countryISO': 'TC'
+    'countryName': 'Turks and Caicos Islands'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Chad':
+    'countryISO': 'TD'
+    'countryName': 'Chad'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Togo':
+    'countryISO': 'TG'
+    'countryName': 'Togo'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Thailand':
+    'countryISO': 'TH'
+    'countryName': 'Thailand'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Tajikistan':
+    'countryISO': 'TJ'
+    'countryName': 'Tajikistan'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '999999'
+    'postalCodeLenMin': 6
+    'postalCodeLenMax': 6
+    'postalCodeLenVariance': 0
+  'East Timor':
+    'countryISO': 'TL'
+    'countryName': 'East Timor'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Tunisia':
+    'countryISO': 'TN'
+    'countryName': 'Tunisia'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'Tonga':
+    'countryISO': 'TO'
+    'countryName': 'Tonga'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Turkey':
+    'countryISO': 'TR'
+    'countryName': 'Turkey'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Trinidad and Tobago':
+    'countryISO': 'TT'
+    'countryName': 'Trinidad and Tobago'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Tuvalu':
+    'countryISO': 'TV'
+    'countryName': 'Tuvalu'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Taiwan':
+    'countryISO': 'TW'
+    'countryName': 'Taiwan'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '999, 99999'
+    'postalCodeLenMin': 3
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 2
+  'Tanzania':
+    'countryISO': 'TZ'
+    'countryName': 'Tanzania'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Ukraine':
+    'countryISO': 'UA'
+    'countryName': 'Ukraine'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Uganda':
+    'countryISO': 'UG'
+    'countryName': 'Uganda'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'United States Of America':
+    'countryISO': 'US'
+    'countryName': 'United States Of America'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999, 99999-9999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 10
+    'postalCodeLenVariance': 5
+  'Uruguay':
+    'countryISO': 'UY'
+    'countryName': 'Uruguay'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Uzbekistan':
+    'countryISO': 'UZ'
+    'countryName': 'Uzbekistan'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '999999'
+    'postalCodeLenMin': 6
+    'postalCodeLenMax': 6
+    'postalCodeLenVariance': 0
+  'St. Vincent':
+    'countryISO': 'VC'
+    'countryName': 'St. Vincent'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Venezuela':
+    'countryISO': 'VE'
+    'countryName': 'Venezuela'
+    'locationFormat': 'Suburb'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Virgin Islands (British)':
+    'countryISO': 'VG'
+    'countryName': 'Virgin Islands (British)'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Virgin Islands (US)':
+    'countryISO': 'VI'
+    'countryName': 'Virgin Islands (US)'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Vietnam':
+    'countryISO': 'VN'
+    'countryName': 'Vietnam'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Vanuatu':
+    'countryISO': 'VU'
+    'countryName': 'Vanuatu'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Samoa':
+    'countryISO': 'WS'
+    'countryName': 'Samoa'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Bonaire':
+    'countryISO': 'XB'
+    'countryName': 'Bonaire'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Curacao':
+    'countryISO': 'XC'
+    'countryName': 'Curacao'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'St. Eustatius':
+    'countryISO': 'XE'
+    'countryName': 'St. Eustatius'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'St. Maarten':
+    'countryISO': 'XM'
+    'countryName': 'St. Maarten'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Nevis':
+    'countryISO': 'XN'
+    'countryName': 'Nevis'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Somaliland, Rep of (North Somalia)':
+    'countryISO': 'XS'
+    'countryName': 'Somaliland, Rep of (North Somalia)'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'St. Barthelemy':
+    'countryISO': 'XY'
+    'countryName': 'St. Barthelemy'
+    'locationFormat': 'City'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'Yemen, Republic of':
+    'countryISO': 'YE'
+    'countryName': 'Yemen, Republic of'
+    'locationFormat': 'City'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Mayotte':
+    'countryISO': 'YT'
+    'countryName': 'Mayotte'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '99999'
+    'postalCodeLenMin': 5
+    'postalCodeLenMax': 5
+    'postalCodeLenVariance': 0
+  'South Africa':
+    'countryISO': 'ZA'
+    'countryName': 'South Africa'
+    'locationFormat': 'City Postcode'
+    'usesPostalCode': true
+    'postalCodeFormat': '9999'
+    'postalCodeLenMin': 4
+    'postalCodeLenMax': 4
+    'postalCodeLenVariance': 0
+  'Zambia':
+    'countryISO': 'ZM'
+    'countryName': 'Zambia'
+    'locationFormat': 'Suburb'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0
+  'Zimbabwe':
+    'countryISO': 'ZW'
+    'countryName': 'Zimbabwe'
+    'locationFormat': 'Postcode'
+    'usesPostalCode': false
+    'postalCodeFormat': null
+    'postalCodeLenMin': 0
+    'postalCodeLenMax': 0
+    'postalCodeLenVariance': 0


Fixed broken date format of first and last snapshot in recording tab. (#1903)


adding last labels configuration

adding last labels configuration

error: pathspec 'services/web/public/coffee/ide/editor/directives/aceEditor/labels/LabelsManager.coffee' did not match any file(s) known to git

--- services/web/public/coffee/ide/editor/directives/aceEditor/labels/LabelsManager.coffee
+++ services/web/public/coffee/ide/editor/directives/aceEditor/labels/LabelsManager.coffee
@@ -0,0 +1,58 @@
+define [
+	"ace/ace"
+], () ->
+	Range = ace.require("ace/range").Range
+
+	getLastCommandFragment = (lineUpToCursor) ->
+		if m = lineUpToCursor.match(/(\\[^\\]+)$/)
+			return m[1]
+		else
+			return null
+
+	class LabelsManager
+		constructor: (@$scope, @editor, @element, @Labels) ->
+			@debouncer = {}  # DocId => Timeout
+
+			onChange = (change) =>
+				if change.remote
+					return
+				if change.action not in ['remove', 'insert']
+					return
+				cursorPosition = @editor.getCursorPosition()
+				end = change.end
+				range = new Range(end.row, 0, end.row, end.column)
+				lineUpToCursor = @editor.getSession().getTextRange(range)
+				commandFragment = getLastCommandFragment(lineUpToCursor)
+				linesContainLabel = _.any(change.lines, (line) -> line.match(/\\label\{[^\}\n\\]{0,80}\}/))
+				lastCommandFragmentIsLabel = commandFragment?.slice(0,7) == '\\label{'
+				if linesContainLabel or lastCommandFragmentIsLabel
+					@scheduleLoadCurrentDocLabelsFromServer()
+
+			@editor.on "changeSession", (e) =>
+				e.oldSession.off "change", onChange
+				e.session.on "change", onChange
+
+		loadCurrentDocLabelsFromServer: () ->
+			currentDocId = @$scope.docId
+			@Labels.loadDocLabelsFromServer(currentDocId)
+
+		loadDocLabelsFromServer: (docId) ->
+			@Labels.loadDocLabelsFromServer(docId)
+
+		scheduleLoadCurrentDocLabelsFromServer: () ->
+			# De-bounce loading labels with a timeout
+			currentDocId = @$scope.docId
+			existingTimeout = @debouncer[currentDocId]
+			if existingTimeout?
+				clearTimeout(existingTimeout)
+				delete @debouncer[currentDocId]
+			@debouncer[currentDocId] = setTimeout(
+				() =>
+					@loadDocLabelsFromServer(currentDocId)
+					delete @debouncer[currentDocId]
+				, 1000
+				, this
+			)
+
+		getAllLabels: () ->
+			@Labels.getAllLabels()


Omit fields from oauth account provided by rocket.chat

--- packages/rocketchat-oauth2-server-config/oauth/server/oauth2-server.coffee
+++ packages/rocketchat-oauth2-server-config/oauth/server/oauth2-server.coffee
@@ -52,5 +52,4 @@
 		# console.log 'user not found'.red
 		return

-	return user: user
-
+	return user: _.omit(user, [ 'joinCode', '$loki', 'meta' ])


設定項目の入力処理の実験コードを追加

設定項目の入力処理の実験コードを追加

error: pathspec 'lamjet_init.coffee' did not match any file(s) known to git

--- lamjet_init.coffee
+++ lamjet_init.coffee
@@ -0,0 +1,36 @@
+
+Promise = require("promise")
+
+console.log "init"
+
+# stdin = require("get-stdin")
+# stdin.buffer (line)->
+#   console.log "line: #{line}"
+
+stdout = process.stdout
+stdin  = process.stdin
+stdin.setEncoding("utf8")
+
+question = (stdout, stdin, message, defaultValue)->
+  # TODO: 改行しない方法を調べる
+  stdout.write "#{message} [#{defaultValue}] "
+  buffer = ""
+  pattern = /^(.*?)\n/
+  return new Promise (resolve, reject)->
+    stdin.on "readable", ->
+      while chunk = stdin.read()
+        buffer += chunk
+      # console.log(JSON.stringify({buffer: buffer}, null, 2))
+      match = pattern.exec(buffer)
+      if match?
+        if match[1] == ""
+          resolve(defaultValue)
+        else
+          resolve(match[1])
+    stdin.on "end", ->
+      resolve(defaultValue)
+
+
+question(stdout, stdin, "hoge?", "yes")
+  .then (result)->
+    console.log(JSON.stringify({then: result}, null, 2))


Getting the package manager requires devMode

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/kevinrenaers/atom.git/'


Use scrollView in benchmarks

Use scrollView in benchmarks

--- benchmark/benchmark-suite.coffee
+++ benchmark/benchmark-suite.coffee
@@ -53,7 +53,7 @@
       benchmark "moving-to-eof.", 1, ->
         editor.moveCursorToBottom()
         waitsFor (scrollComplete) ->
-          editor.scroller.on 'scroll', scrollComplete
+          editor.scrollView.on 'scroll', scrollComplete

       describe "on-first-line.", ->
         benchmark "inserting-newline", 5, ->


Use JS to set active class on product nav

error: pathspec 'app/assets/javascripts/home.js.coffee' did not match any file(s) known to git

--- app/assets/javascripts/home.js.coffee
+++ app/assets/javascripts/home.js.coffee
@@ -0,0 +1,16 @@
+jQuery ($) ->
+  $(document).ready ->
+    unless $('dl.tabs dd').hasClass('active')
+      setActive()
+
+  $('dl.tabs dd').on('click', setActive)
+
+setActive = (item) ->
+  console.log(item)
+  $('dl.tabs dd').removeClass('active')
+  $('div.tabs-content div').removeClass('active')
+  if ! item
+    $('dl.tabs dd').first().addClass('active')
+    $('div.tabs-content div').first().addClass('active')
+  else
+    $(item).addClass('active')


fixed typo

fixed typo

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/leonidas/qa-reports.git/'


nginx: use proxy_protocol for devproxy server

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/andrewjcasal/koding.git/'


Moved process.env.ATOM_HOME to a variable

For clarity and so as not to break the line length limit

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/jerone/flex-toolbar.git/'


logging stats

logging stats

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/AppCivico/votolegal-www.git/'


adding tests of LoginController

adding tests of LoginController

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/roseliux/CafeTownsend-Angular-Rails.git/'


much faster date range selection

much faster date range selection

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/artsyca/emberui.git/'


select -> selectAction

select -> selectAction


Add timeIndependentHmacCompare method to compare hmacs in verify method

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/laterpay/laterpay-client-node.git/'


task name is now inferred from start doc filename, rather than design doc name

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/UCSFMemoryAndAging/tabcat.git/'


update: minor changes to developer.svc

update: minor changes to developer.svc

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/xaun/impac-angular.git/'


fix (prompt) define documentEvents

fix (prompt) define documentEvents

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/AppGyver/supersonic.git/'


of course i fucked up something small like this

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/Mikuia/Mikuia.git/'


dict tasks

dict tasks

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/suprMax/wordgame.git/'


Added dataupdate event for graph

Added dataupdate event for graph

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/evercam/evercam-dashboard.git/'


Fix the tests

Fix the tests

--- test/lib/MeshbluSocketIOHandler-spec.coffee
+++ test/lib/MeshbluSocketIOHandler-spec.coffee
@@ -2,9 +2,12 @@
 MeshbluSocketIOHandler = require '../../lib/MeshbluSocketIOHandler'

 describe 'MeshbluSocketIOHandler', ->
+  beforeEach ->
+    @meshbluEventEmitter = new EventEmitter
+
   describe 'initialize', ->
     beforeEach ->
-      @sut = new MeshbluSocketIOHandler
+      @sut = new MeshbluSocketIOHandler meshbluEventEmitter: @meshbluEventEmitter
       @socket = new EventEmitter
       @sut.initialize @socket

@@ -17,7 +20,7 @@
         @socket = new EventEmitter

         @authDevice = sinon.stub().yields new Error 'not authorized'
-        @sut = new MeshbluSocketIOHandler authDevice: @authDevice
+        @sut = new MeshbluSocketIOHandler authDevice: @authDevice, meshbluEventEmitter: @meshbluEventEmitter
         @sut.initialize @socket
         @socket.emit 'identity', {uuid: 'something', token: 'something-else'}, (@result) =>

@@ -31,7 +34,7 @@
         @socket = new EventEmitter

         @authDevice = sinon.stub().yields null, {uuid: 'device'}
-        @sut = new MeshbluSocketIOHandler authDevice: @authDevice
+        @sut = new MeshbluSocketIOHandler authDevice: @authDevice, meshbluEventEmitter: @meshbluEventEmitter
         @sut.initialize @socket
         @callback = sinon.spy()
         @socket.emit 'identity', uuid: 'device', token: 'wrong', @callback
@@ -48,7 +51,7 @@

         @device = {some: 'device', uuid: '23955'}
         @authDevice = sinon.stub().yields null, @device
-        @sut = new MeshbluSocketIOHandler authDevice: @authDevice
+        @sut = new MeshbluSocketIOHandler authDevice: @authDevice, meshbluEventEmitter: @meshbluEventEmitter
         @sut.initialize @socket
         @callback = sinon.spy()
         @socket.emit 'identity', uuid: '23955', token: '$###', @callback
@@ -67,7 +70,7 @@

         @authDevice = sinon.stub().yields new Error

-        @sut = new MeshbluSocketIOHandler authDevice: @authDevice
+        @sut = new MeshbluSocketIOHandler authDevice: @authDevice, meshbluEventEmitter: @meshbluEventEmitter
         @sut.initialize @socket
         @sut = sinon.spy()

@@ -87,7 +90,7 @@
         @authDevice = sinon.stub().yields null, @device
         @updateIfAuthorized = sinon.stub()

-        @sut = new MeshbluSocketIOHandler authDevice: @authDevice, updateIfAuthorized: @updateIfAuthorized
+        @sut = new MeshbluSocketIOHandler authDevice: @authDevice, updateIfAuthorized: @updateIfAuthorized, meshbluEventEmitter: @meshbluEventEmitter
         @sut.initialize @socket
         @sut.authedDevice = uuid: '1345', token: 'toooooken'
         @sut = sinon.spy()


Add unit tests for Trix.MutationObserver

error: pathspec 'test/src/unit/mutation_observer_test.coffee' did not match any file(s) known to git

--- test/src/unit/mutation_observer_test.coffee
+++ test/src/unit/mutation_observer_test.coffee
@@ -0,0 +1,70 @@
+{assert, defer, test, testGroup} = Trix.TestHelpers
+
+observer = null
+element = null
+summaries = []
+
+install = (html) ->
+  element = document.createElement("div")
+  element.innerHTML = html if html
+  observer = new Trix.MutationObserver element
+  observer.delegate =
+    elementDidMutate: (summary) ->
+      summaries.push(summary)
+
+uninstall = ->
+  observer?.stop()
+  observer = null
+  element = null
+  summaries = []
+
+observerTest = (name, options = {}, callback) ->
+  test name, (done) ->
+    install(options.html)
+    callback ->
+      uninstall()
+      done()
+
+
+testGroup "Trix.MutationObserver", ->
+  observerTest "add character", html: "a", (done) ->
+    element.firstChild.data += "b"
+    defer ->
+      assert.equal summaries.length, 1
+      assert.deepEqual summaries[0], textAdded: "b"
+      done()
+
+  observerTest "remove character", html: "ab", (done) ->
+    element.firstChild.data = "a"
+    defer ->
+      assert.equal summaries.length, 1
+      assert.deepEqual summaries[0], textDeleted: "b"
+      done()
+
+  observerTest "replace character", html: "ab", (done) ->
+    element.firstChild.data = "ac"
+    defer ->
+      assert.equal summaries.length, 1
+      assert.deepEqual summaries[0], textAdded: "c", textDeleted: "b"
+      done()
+
+  observerTest "add
", html: "a", (done) ->
+    element.appendChild(document.createElement("br"))
+    defer ->
+      assert.equal summaries.length, 1
+      assert.deepEqual summaries[0], textAdded: "\n"
+      done()
+
+  observerTest "remove
", html: "a
", (done) ->
+    element.removeChild(element.lastChild)
+    defer ->
+      assert.equal summaries.length, 1
+      assert.deepEqual summaries[0], textDeleted: "\n"
+      done()
+
+  observerTest "remove block comment", html: "
a
", (done) ->
+    element.firstChild.removeChild(element.firstChild.firstChild)
+    defer ->
+      assert.equal summaries.length, 1
+      assert.deepEqual summaries[0], textDeleted: "\n"
+      done()


Fixed zh-HANT.coffee merge conflicts.

Fixed zh-HANT.coffee merge conflicts.

--- app/locale/zh-HANT.coffee
+++ app/locale/zh-HANT.coffee
@@ -670,29 +670,29 @@
 #    rules: "Rules"
 #    winners: "Winners"

-#  user:
+  user:
 #    stats: "Stats"
-#    singleplayer_title: "Singleplayer Levels"
-#    multiplayer_title: "Multiplayer Levels"
-#    achievements_title: "Achievements"
-#    last_played: "Last Played"
-#    status: "Status"
-#    status_completed: "Completed"
-#    status_unfinished: "Unfinished"
-#    no_singleplayer: "No Singleplayer games played yet."
-#    no_multiplayer: "No Multiplayer games played yet."
-#    no_achievements: "No Achievements earned yet."
-#    favorite_prefix: "Favorite language is "
-#    favorite_postfix: "."
-
-#  achievements:
+    singleplayer_title: "單人遊戲等級"
+    multiplayer_title: "多人遊戲等級"
+    achievements_title: "成就"
+    last_played: "最後游玩"
+    status: "狀態"
+    status_completed: "已完成"
+    status_unfinished: "未完成"
+    no_singleplayer: "還沒有玩過單人遊戲."
+    no_multiplayer: "還沒有玩過多 人遊戲."
+    no_achievements: "還沒有取得成就."
+    favorite_prefix: "語言喜好為"
+    favorite_postfix: "."
+
+  achievements:
 #    last_earned: "Last Earned"
-#    amount_achieved: "Amount"
-#    achievement: "Achievement"
-#    category_contributor: "Contributor"
+    amount_achieved: "數量"
+    achievement: "成就"
+    category_contributor: "貢獻者"
 #    category_miscellaneous: "Miscellaneous"
-#    category_levels: "Levels"
-#    category_undefined: "Uncategorized"
+    category_levels: "等級"
+    category_undefined: "未定義"
 #    current_xp_prefix: ""
 #    current_xp_postfix: " in total"
 #    new_xp_prefix: ""
@@ -701,9 +701,9 @@
 #    left_xp_infix: " until level "
 #    left_xp_postfix: ""

-#  account:
-#    recently_played: "Recently Played"
-#    no_recent_games: "No games played during the past two weeks."
+  account:
+    recently_played: "最近玩過"
+    no_recent_games: "在過去兩個星期沒有遊戲玩過。"

 #  loading_error:
 #    could_not_load: "Error loading from server"