function isCanadianSIN(input) {
		  var digitsArray = input.split('');
		  var even = digitsArray.filter(function (_, idx) {
		    return idx % 2;
		  }).map(function (i) {
		    return Number(i) * 2;
		  }).join('').split('');
		  var total = digitsArray.filter(function (_, idx) {
		    return !(idx % 2);
		  }).concat(even).map(function (i) {
		    return Number(i);
		  }).reduce(function (acc, cur) {
		    return acc + cur;
		  });
		  return total % 10 === 0;
		}
Define mimetype -> extension mappings.  Each key is a mime-type that maps
to an array of extensions associated with the type.  The first extension is
used as the default extension for the type.

e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']});

If a type declares an extension that has already been defined, an error will
be thrown.  To suppress this error and force the extension to be associated
with the new type, pass `force`=true.  Alternatively, you may prefix the
extension with "*" to map the type to extension, without mapping the
extension to the type.

e.g. mime.define({'audio/wav', ['wav']}, {'audio/x-wav', ['*wav']});


@param map (Object) type definitions
@param force (Boolean) if true, force overriding of existing definitions