Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/testing/modules/   (Firefox Browser Version 153.0.1©)  Datei vom 27.6.2026 mit Größe 3 MB image not shown  

Quellcode-Bibliothek sinon-7.2.7.js

  Sprache: JAVA
 

/* Sinon.JS 7.2.7, 2019-03-04, @license BSD-3 */(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.sinon = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
"use strict";

var behavior = require("./sinon/behavior");
var createSandbox = require("./sinon/create-sandbox");
var deprecated = require("./sinon/util/core/deprecated");
var extend = require("./sinon/util/core/extend");
var fakeTimers = require("./sinon/util/fake-timers");
var format = require("./sinon/util/core/format");
var nise = require("nise");
var Sandbox = require("./sinon/sandbox");
var stub = require("./sinon/stub");

var apiMethods = {
    createSandbox: createSandbox,
    assert: require("./sinon/assert"),
    match: require("@sinonjs/samsam").createMatcher,
    spyCall: require("./sinon/call"),

    expectation: require("./sinon/mock-expectation"),
    createStubInstance: require("./sinon/stub").createStubInstance,
    defaultConfig: require("./sinon/util/core/default-config"),

    setFormatter: format.setFormatter,

    // fake timers
    timers: fakeTimers.timers,

    // fake XHR
    xhr: nise.fakeXhr.xhr,
    FakeXMLHttpRequest: nise.fakeXhr.FakeXMLHttpRequest,

    // fake server
    fakeServer: nise.fakeServer,
    fakeServerWithClock: nise.fakeServerWithClock,
    createFakeServer: nise.fakeServer.create.bind(nise.fakeServer),
    createFakeServerWithClock: nise.fakeServerWithClock.create.bind(nise.fakeServerWithClock),

    addBehavior: function(name, fn) {
        behavior.addBehavior(stub, name, fn);
    }
};

var legacySandboxAPI = {
    sandbox: {
        create: deprecated.wrap(
            createSandbox,
            // eslint-disable-next-line max-len
            "`sandbox.create()` is deprecated. Use default sandbox at `sinon.sandbox` or create new sandboxes with `sinon.createSandbox()`"
        )
    }
};

var sandbox = new Sandbox();

var api = extend(sandbox, legacySandboxAPI, apiMethods);

module.exports = api;

},{"./sinon/assert":2,"./sinon/behavior":3,"./sinon/call":4,"./sinon/create-sandbox":7,"./sinon/mock-expectation":10,"./sinon/sandbox":12,"./sinon/stub":16,"./sinon/util/core/default-config":18,"./sinon/util/core/deprecated":19,"./sinon/util/core/extend":21,"./sinon/util/core/format":22,"./sinon/util/fake-timers":34,"@sinonjs/samsam":65,"nise":85}],2:[function(require,module,exports){
(function (global){
"use strict";

var arrayProto = require("@sinonjs/commons").prototypes.array;
var calledInOrder = require("@sinonjs/commons").calledInOrder;
var createMatcher = require("@sinonjs/samsam").createMatcher;
var orderByFirstCall = require("@sinonjs/commons").orderByFirstCall;
var timesInWords = require("./util/core/times-in-words");
var format = require("./util/core/format");
var stringSlice = require("@sinonjs/commons").prototypes.string.slice;

var arraySlice = arrayProto.slice;
var concat = arrayProto.concat;
var forEach = arrayProto.forEach;
var join = arrayProto.join;
var splice = arrayProto.splice;

var assert;

function verifyIsStub() {
    var args = arraySlice(arguments);

    forEach(args, function(method) {
        if (!method) {
            assert.fail("fake is not a spy");
        }

        if (method.proxy && method.proxy.isSinonProxy) {
            verifyIsStub(method.proxy);
        } else {
            if (typeof method !== "function") {
                assert.fail(method + " is not a function");
            }

            if (typeof method.getCall !== "function") {
                assert.fail(method + " is not stubbed");
            }
        }
    });
}

function verifyIsValidAssertion(assertionMethod, assertionArgs) {
    switch (assertionMethod) {
        case "notCalled":
        case "called":
        case "calledOnce":
        case "calledTwice":
        case "calledThrice":
            if (assertionArgs.length !== 0) {
                assert.fail(
                    assertionMethod +
                        " takes 1 argument but was called with " +
                        (assertionArgs.length + 1) +
                        " arguments"
                );
            }
            break;
        default:
            break;
    }
}

function failAssertion(object, msg) {
    var obj = object || global;
    var failMethod = obj.fail || assert.fail;
    failMethod.call(obj, msg);
}

function mirrorPropAsAssertion(name, method, message) {
    var msg = message;
    var meth = method;
    if (arguments.length === 2) {
        msg = method;
        meth = name;
    }

    assert[name] = function(fake) {
        verifyIsStub(fake);

        var args = arraySlice(arguments, 1);
        var failed = false;

        verifyIsValidAssertion(name, args);

        if (typeof meth === "function") {
            failed = !meth(fake);
        } else {
            failed = typeof fake[meth] === "function" ? !fake[meth].apply(fake, args) : !fake[meth];
        }

        if (failed) {
            failAssertion(this, (fake.printf || fake.proxy.printf).apply(fake, concat([msg], args)));
        } else {
            assert.pass(name);
        }
    };
}

function exposedName(prefix, prop) {
    return !prefix || /^fail/.test(prop) ? prop : prefix + stringSlice(prop, 01).toUpperCase() + stringSlice(prop, 1);
}

assert = {
    failException: "AssertError",

    fail: function fail(message) {
        var error = new Error(message);
        error.name = this.failException || assert.failException;

        throw error;
    },

    pass: function pass() {
        return;
    },

    callOrder: function assertCallOrder() {
        verifyIsStub.apply(null, arguments);
        var expected = "";
        var actual = "";

        if (!calledInOrder(arguments)) {
            try {
                expected = join(arguments, ", ");
                var calls = arraySlice(arguments);
                var i = calls.length;
                while (i) {
                    if (!calls[--i].called) {
                        splice(calls, i, 1);
                    }
                }
                actual = join(orderByFirstCall(calls), ", ");
            } catch (e) {
                // If this fails, we'll just fall back to the blank string
            }

            failAssertion(this"expected " + expected + " to be called in order but were called as " + actual);
        } else {
            assert.pass("callOrder");
        }
    },

    callCount: function assertCallCount(method, count) {
        verifyIsStub(method);

        if (method.callCount !== count) {
            var msg = "expected %n to be called " + timesInWords(count) + " but was called %c%C";
            failAssertion(this, method.printf(msg));
        } else {
            assert.pass("callCount");
        }
    },

    expose: function expose(target, options) {
        if (!target) {
            throw new TypeError("target is null or undefined");
        }

        var o = options || {};
        var prefix = (typeof o.prefix === "undefined" && "assert") || o.prefix;
        var includeFail = typeof o.includeFail === "undefined" || Boolean(o.includeFail);
        var instance = this;

        forEach(Object.keys(instance), function(method) {
            if (method !== "expose" && (includeFail || !/^(fail)/.test(method))) {
                target[exposedName(prefix, method)] = instance[method];
            }
        });

        return target;
    },

    match: function match(actual, expectation) {
        var matcher = createMatcher(expectation);
        if (matcher.test(actual)) {
            assert.pass("match");
        } else {
            var formatted = [
                "expected value to match",
                "    expected = " + format(expectation),
                "    actual = " + format(actual)
            ];

            failAssertion(this, join(formatted, "\n"));
        }
    }
};

mirrorPropAsAssertion("called""expected %n to have been called at least once but was never called");
mirrorPropAsAssertion(
    "notCalled",
    function(spy) {
        return !spy.called;
    },
    "expected %n to not have been called but was called %c%C"
);
mirrorPropAsAssertion("calledOnce""expected %n to be called once but was called %c%C");
mirrorPropAsAssertion("calledTwice""expected %n to be called twice but was called %c%C");
mirrorPropAsAssertion("calledThrice""expected %n to be called thrice but was called %c%C");
mirrorPropAsAssertion("calledOn""expected %n to be called with %1 as this but was called with %t");
mirrorPropAsAssertion("alwaysCalledOn""expected %n to always be called with %1 as this but was called with %t");
mirrorPropAsAssertion("calledWithNew""expected %n to be called with new");
mirrorPropAsAssertion("alwaysCalledWithNew""expected %n to always be called with new");
mirrorPropAsAssertion("calledWith""expected %n to be called with arguments %D");
mirrorPropAsAssertion("calledWithMatch""expected %n to be called with match %D");
mirrorPropAsAssertion("alwaysCalledWith""expected %n to always be called with arguments %D");
mirrorPropAsAssertion("alwaysCalledWithMatch""expected %n to always be called with match %D");
mirrorPropAsAssertion("calledWithExactly""expected %n to be called with exact arguments %D");
mirrorPropAsAssertion("alwaysCalledWithExactly""expected %n to always be called with exact arguments %D");
mirrorPropAsAssertion("neverCalledWith""expected %n to never be called with arguments %*%C");
mirrorPropAsAssertion("neverCalledWithMatch""expected %n to never be called with match %*%C");
mirrorPropAsAssertion("threw""%n did not throw exception%C");
mirrorPropAsAssertion("alwaysThrew""%n did not always throw exception%C");

module.exports = assert;

}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})

},{"./util/core/format":22,"./util/core/times-in-words":30,"@sinonjs/commons":39,"@sinonjs/samsam":65}],3:[function(require,module,exports){
"use strict";

var arrayProto = require("@sinonjs/commons").prototypes.array;
var extend = require("./util/core/extend");
var functionName = require("@sinonjs/commons").functionName;
var nextTick = require("./util/core/next-tick");
var valueToString = require("@sinonjs/commons").valueToString;
var exportAsyncBehaviors = require("./util/core/export-async-behaviors");

var concat = arrayProto.concat;
var join = arrayProto.join;
var reverse = arrayProto.reverse;
var slice = arrayProto.slice;

var useLeftMostCallback = -1;
var useRightMostCallback = -2;

function getCallback(behavior, args) {
    var callArgAt = behavior.callArgAt;

    if (callArgAt >= 0) {
        return args[callArgAt];
    }

    var argumentList;

    if (callArgAt === useLeftMostCallback) {
        argumentList = args;
    }

    if (callArgAt === useRightMostCallback) {
        argumentList = reverse(slice(args));
    }

    var callArgProp = behavior.callArgProp;

    for (var i = 0, l = argumentList.length; i < l; ++i) {
        if (!callArgProp && typeof argumentList[i] === "function") {
            return argumentList[i];
        }

        if (callArgProp && argumentList[i] && typeof argumentList[i][callArgProp] === "function") {
            return argumentList[i][callArgProp];
        }
    }

    return null;
}

function getCallbackError(behavior, func, args) {
    if (behavior.callArgAt < 0) {
        var msg;

        if (behavior.callArgProp) {
            msg =
                functionName(behavior.stub) +
                " expected to yield to '" +
                valueToString(behavior.callArgProp) +
                "', but no object with such a property was passed.";
        } else {
            msg = functionName(behavior.stub) + " expected to yield, but no callback was passed.";
        }

        if (args.length > 0) {
            msg += " Received [" + join(args, ", ") + "]";
        }

        return msg;
    }

    return "argument at index " + behavior.callArgAt + " is not a function: " + func;
}

function ensureArgs(name, behavior, args) {
    // map function name to internal property
    //   callsArg => callArgAt
    var property = name.replace(/sArg/, "ArgAt");
    var index = behavior[property];

    if (index >= args.length) {
        throw new TypeError(
            name + " failed: " + (index + 1) + " arguments required but only " + args.length + " present"
        );
    }
}

function callCallback(behavior, args) {
    if (typeof behavior.callArgAt === "number") {
        ensureArgs("callsArg", behavior, args);
        var func = getCallback(behavior, args);

        if (typeof func !== "function") {
            throw new TypeError(getCallbackError(behavior, func, args));
        }

        if (behavior.callbackAsync) {
            nextTick(function() {
                func.apply(behavior.callbackContext, behavior.callbackArguments);
            });
        } else {
            return func.apply(behavior.callbackContext, behavior.callbackArguments);
        }
    }

    return undefined;
}

var proto = {
    create: function create(stub) {
        var behavior = extend({}, proto);
        delete behavior.create;
        delete behavior.addBehavior;
        delete behavior.createBehavior;
        behavior.stub = stub;

        if (stub.defaultBehavior && stub.defaultBehavior.promiseLibrary) {
            behavior.promiseLibrary = stub.defaultBehavior.promiseLibrary;
        }

        return behavior;
    },

    isPresent: function isPresent() {
        return (
            typeof this.callArgAt === "number" ||
            this.exception ||
            this.exceptionCreator ||
            typeof this.returnArgAt === "number" ||
            this.returnThis ||
            typeof this.resolveArgAt === "number" ||
            this.resolveThis ||
            typeof this.throwArgAt === "number" ||
            this.fakeFn ||
            this.returnValueDefined
        );
    },

    invoke: function invoke(context, args) {
        /*
         * callCallback (conditionally) calls ensureArgs
         *
         * Note: callCallback intentionally happens before
         * everything else and cannot be moved lower
         */
        var returnValue = callCallback(this, args);

        if (this.exception) {
            throw this.exception;
        } else if (this.exceptionCreator) {
            this.exception = this.exceptionCreator();
            this.exceptionCreator = undefined;
            throw this.exception;
        } else if (typeof this.returnArgAt === "number") {
            ensureArgs("returnsArg", this, args);
            return args[this.returnArgAt];
        } else if (this.returnThis) {
            return context;
        } else if (typeof this.throwArgAt === "number") {
            ensureArgs("throwsArg", this, args);
            throw args[this.throwArgAt];
        } else if (this.fakeFn) {
            return this.fakeFn.apply(context, args);
        } else if (typeof this.resolveArgAt === "number") {
            ensureArgs("resolvesArg", this, args);
            return (this.promiseLibrary || Promise).resolve(args[this.resolveArgAt]);
        } else if (this.resolveThis) {
            return (this.promiseLibrary || Promise).resolve(context);
        } else if (this.resolve) {
            return (this.promiseLibrary || Promise).resolve(this.returnValue);
        } else if (this.reject) {
            return (this.promiseLibrary || Promise).reject(this.returnValue);
        } else if (this.callsThrough) {
            return this.stub.wrappedMethod.apply(context, args);
        } else if (typeof this.returnValue !== "undefined") {
            return this.returnValue;
        } else if (typeof this.callArgAt === "number") {
            return returnValue;
        }

        return this.returnValue;
    },

    onCall: function onCall(index) {
        return this.stub.onCall(index);
    },

    onFirstCall: function onFirstCall() {
        return this.stub.onFirstCall();
    },

    onSecondCall: function onSecondCall() {
        return this.stub.onSecondCall();
    },

    onThirdCall: function onThirdCall() {
        return this.stub.onThirdCall();
    },

    withArgs: function withArgs(/* arguments */) {
        throw new Error(
            'Defining a stub by invoking "stub.onCall(...).withArgs(...)" ' +
                'is not supported. Use "stub.withArgs(...).onCall(...)" ' +
                "to define sequential behavior for calls with certain arguments."
        );
    }
};

function createBehavior(behaviorMethod) {
    return function() {
        this.defaultBehavior = this.defaultBehavior || proto.create(this);
        this.defaultBehavior[behaviorMethod].apply(this.defaultBehavior, arguments);
        return this;
    };
}

function addBehavior(stub, name, fn) {
    proto[name] = function() {
        fn.apply(this, concat([this], slice(arguments)));
        return this.stub || this;
    };

    stub[name] = createBehavior(name);
}

proto.addBehavior = addBehavior;
proto.createBehavior = createBehavior;

var asyncBehaviors = exportAsyncBehaviors(proto);

module.exports = extend.nonEnum({}, proto, asyncBehaviors);

},{"./util/core/export-async-behaviors":20,"./util/core/extend":21,"./util/core/next-tick":29,"@sinonjs/commons":39}],4:[function(require,module,exports){
"use strict";

var arrayProto = require("@sinonjs/commons").prototypes.array;
var match = require("@sinonjs/samsam").createMatcher;
var deepEqual = require("@sinonjs/samsam").deepEqual;
var functionName = require("@sinonjs/commons").functionName;
var sinonFormat = require("./util/core/format");
var valueToString = require("@sinonjs/commons").valueToString;

var concat = arrayProto.concat;
var filter = arrayProto.filter;
var join = arrayProto.join;
var map = arrayProto.map;
var reduce = arrayProto.reduce;
var slice = arrayProto.slice;

function throwYieldError(proxy, text, args) {
    var msg = functionName(proxy) + text;
    if (args.length) {
        msg += " Received [" + join(slice(args), ", ") + "]";
    }
    throw new Error(msg);
}

var callProto = {
    calledOn: function calledOn(thisValue) {
        if (match.isMatcher(thisValue)) {
            return thisValue.test(this.thisValue);
        }
        return this.thisValue === thisValue;
    },

    calledWith: function calledWith() {
        var self = this;
        var calledWithArgs = slice(arguments);

        if (calledWithArgs.length > self.args.length) {
            return false;
        }

        return reduce(
            calledWithArgs,
            function(prev, arg, i) {
                return prev && deepEqual(self.args[i], arg);
            },
            true
        );
    },

    calledWithMatch: function calledWithMatch() {
        var self = this;
        var calledWithMatchArgs = slice(arguments);

        if (calledWithMatchArgs.length > self.args.length) {
            return false;
        }

        return reduce(
            calledWithMatchArgs,
            function(prev, expectation, i) {
                var actual = self.args[i];

                return prev && match(expectation).test(actual);
            },
            true
        );
    },

    calledWithExactly: function calledWithExactly() {
        return arguments.length === this.args.length && this.calledWith.apply(this, arguments);
    },

    notCalledWith: function notCalledWith() {
        return !this.calledWith.apply(this, arguments);
    },

    notCalledWithMatch: function notCalledWithMatch() {
        return !this.calledWithMatch.apply(this, arguments);
    },

    returned: function returned(value) {
        return deepEqual(this.returnValue, value);
    },

    threw: function threw(error) {
        if (typeof error === "undefined" || !this.exception) {
            return Boolean(this.exception);
        }

        return this.exception === error || this.exception.name === error;
    },

    calledWithNew: function calledWithNew() {
        return this.proxy.prototype && this.thisValue instanceof this.proxy;
    },

    calledBefore: function(other) {
        return this.callId < other.callId;
    },

    calledAfter: function(other) {
        return this.callId > other.callId;
    },

    calledImmediatelyBefore: function(other) {
        return this.callId === other.callId - 1;
    },

    calledImmediatelyAfter: function(other) {
        return this.callId === other.callId + 1;
    },

    callArg: function(pos) {
        this.ensureArgIsAFunction(pos);
        return this.args[pos]();
    },

    callArgOn: function(pos, thisValue) {
        this.ensureArgIsAFunction(pos);
        return this.args[pos].apply(thisValue);
    },

    callArgWith: function(pos) {
        return this.callArgOnWith.apply(this, concat([pos, null], slice(arguments, 1)));
    },

    callArgOnWith: function(pos, thisValue) {
        this.ensureArgIsAFunction(pos);
        var args = slice(arguments, 2);
        return this.args[pos].apply(thisValue, args);
    },

    throwArg: function(pos) {
        if (pos > this.args.length) {
            throw new TypeError("Not enough arguments: " + pos + " required but only " + this.args.length + present");
        }

        throw this.args[pos];
    },

    yield: function() {
        return this.yieldOn.apply(this, concat([null], slice(arguments, 0)));
    },

    yieldOn: function(thisValue) {
        var args = slice(this.args);
        var yieldFn = filter(args, function(arg) {
            return typeof arg === "function";
        })[0];

        if (!yieldFn) {
            throwYieldError(this.proxy, " cannot yield since no callback was passed.", args);
        }

        return yieldFn.apply(thisValue, slice(arguments, 1));
    },

    yieldTo: function(prop) {
        return this.yieldToOn.apply(this, concat([prop, null], slice(arguments, 1)));
    },

    yieldToOn: function(prop, thisValue) {
        var args = slice(this.args);
        var yieldArg = filter(args, function(arg) {
            return arg && typeof arg[prop] === "function";
        })[0];
        var yieldFn = yieldArg && yieldArg[prop];

        if (!yieldFn) {
            throwYieldError(
                this.proxy,
                " cannot yield to '" + valueToString(prop) + "' since no callback was passed.",
                args
            );
        }

        return yieldFn.apply(thisValue, slice(arguments, 2));
    },

    toString: function() {
        var callStr = this.proxy ? String(this.proxy) + "(" : "";
        var formattedArgs;

        if (!this.args) {
            return ":(";
        }

        formattedArgs = map(this.args, function(arg) {
            return sinonFormat(arg);
        });

        callStr = callStr + join(formattedArgs, ", ") + ")";

        if (typeof this.returnValue !== "undefined") {
            callStr += " => " + sinonFormat(this.returnValue);
        }

        if (this.exception) {
            callStr += " !" + this.exception.name;

            if (this.exception.message) {
                callStr += "(" + this.exception.message + ")";
            }
        }
        if (this.stack) {
            // Omit the error message and the two top stack frames in sinon itself:
            callStr += (this.stack.split("\n")[3] || "unknown").replace(/^\s*(?:at\s+|@)?/, " at ");
        }

        return callStr;
    },

    ensureArgIsAFunction: function(pos) {
        if (typeof this.args[pos] !== "function") {
            throw new TypeError(
                "Expected argument at position " + pos + " to be a Function, but was " + typeof this.args[pos]
            );
        }
    }
};
Object.defineProperty(callProto, "stack", {
    enumerable: true,
    configurable: true,
    get: function() {
        return (this.errorWithCallStack && this.errorWithCallStack.stack) || "";
    }
});

callProto.invokeCallback = callProto.yield;

function createSpyCall(spy, thisValue, args, returnValue, exception, id, errorWithCallStack) {
    if (typeof id !== "number") {
        throw new TypeError("Call id is not a number");
    }

    var proxyCall = Object.create(callProto);
    var lastArg = (args.length > 0 && args[args.length - 1]) || undefined;
    var callback = lastArg && typeof lastArg === "function" ? lastArg : undefined;

    proxyCall.proxy = spy;
    proxyCall.thisValue = thisValue;
    proxyCall.args = args;
    proxyCall.lastArg = lastArg;
    proxyCall.callback = callback;
    proxyCall.returnValue = returnValue;
    proxyCall.exception = exception;
    proxyCall.callId = id;
    proxyCall.errorWithCallStack = errorWithCallStack;

    return proxyCall;
}
createSpyCall.toString = callProto.toString; // used by mocks

module.exports = createSpyCall;

},{"./util/core/format":22,"@sinonjs/commons":39,"@sinonjs/samsam":65}],5:[function(require,module,exports){
"use strict";

var walk = require("./util/core/walk");
var getPropertyDescriptor = require("./util/core/get-property-descriptor");
var hasOwnProperty = require("@sinonjs/commons").prototypes.object.hasOwnProperty;
var push = require("@sinonjs/commons").prototypes.array.push;

function collectMethod(methods, object, prop, propOwner) {
    if (typeof getPropertyDescriptor(propOwner, prop).value === "function" && hasOwnProperty(object, prop)) {
        push(methods, object[prop]);
    }
}

// This function returns an array of all the own methods on the passed object
function collectOwnMethods(object) {
    var methods = [];

    walk(object, collectMethod.bind(null, methods, object));

    return methods;
}

module.exports = collectOwnMethods;

},{"./util/core/get-property-descriptor":25,"./util/core/walk":32,"@sinonjs/commons":39}],6:[function(require,module,exports){
"use strict";

var supportsColor = require("supports-color");

function colorize(str, color) {
    if (supportsColor.stdout === false) {
        return str;
    }

    return "\x1b[" + color + "m" + str + "\x1b[0m";
}

exports.red = function(str) {
    return colorize(str, 31);
};

exports.green = function(str) {
    return colorize(str, 32);
};

exports.cyan = function(str) {
    return colorize(str, 96);
};

exports.white = function(str) {
    return colorize(str, 39);
};

exports.bold = function(str) {
    return colorize(str, 1);
};

},{"supports-color":88}],7:[function(require,module,exports){
"use strict";

var arrayProto = require("@sinonjs/commons").prototypes.array;
var Sandbox = require("./sandbox");

var forEach = arrayProto.forEach;
var push = arrayProto.push;

function prepareSandboxFromConfig(config) {
    var sandbox = new Sandbox();

    if (config.useFakeServer) {
        if (typeof config.useFakeServer === "object") {
            sandbox.serverPrototype = config.useFakeServer;
        }

        sandbox.useFakeServer();
    }

    if (config.useFakeTimers) {
        if (typeof config.useFakeTimers === "object") {
            sandbox.useFakeTimers(config.useFakeTimers);
        } else {
            sandbox.useFakeTimers();
        }
    }

    return sandbox;
}

function exposeValue(sandbox, config, key, value) {
    if (!value) {
        return;
    }

    if (config.injectInto && !(key in config.injectInto)) {
        config.injectInto[key] = value;
        push(sandbox.injectedKeys, key);
    } else {
        push(sandbox.args, value);
    }
}

function createSandbox(config) {
    if (!config) {
        return new Sandbox();
    }

    var configuredSandbox = prepareSandboxFromConfig(config);
    configuredSandbox.args = configuredSandbox.args || [];
    configuredSandbox.injectedKeys = [];
    configuredSandbox.injectInto = config.injectInto;
    var exposed = configuredSandbox.inject({});

    if (config.properties) {
        forEach(config.properties, function(prop) {
            var value = exposed[prop] || (prop === "sandbox" && configuredSandbox);
            exposeValue(configuredSandbox, config, prop, value);
        });
    } else {
        exposeValue(configuredSandbox, config, "sandbox");
    }

    return configuredSandbox;
}

module.exports = createSandbox;

},{"./sandbox":12,"@sinonjs/commons":39}],8:[function(require,module,exports){
"use strict";

var arrayProto = require("@sinonjs/commons").prototypes.array;
var isPropertyConfigurable = require("./util/core/is-property-configurable");
var exportAsyncBehaviors = require("./util/core/export-async-behaviors");
var extend = require("./util/core/extend");

var slice = arrayProto.slice;

var useLeftMostCallback = -1;
var useRightMostCallback = -2;

function throwsException(fake, error, message) {
    if (typeof error === "function") {
        fake.exceptionCreator = error;
    } else if (typeof error === "string") {
        fake.exceptionCreator = function() {
            var newException = new Error(message || "");
            newException.name = error;
            return newException;
        };
    } else if (!error) {
        fake.exceptionCreator = function() {
            return new Error("Error");
        };
    } else {
        fake.exception = error;
    }
}

var defaultBehaviors = {
    callsFake: function callsFake(fake, fn) {
        fake.fakeFn = fn;
    },

    callsArg: function callsArg(fake, index) {
        if (typeof index !== "number") {
            throw new TypeError("argument index is not number");
        }

        fake.callArgAt = index;
        fake.callbackArguments = [];
        fake.callbackContext = undefined;
        fake.callArgProp = undefined;
        fake.callbackAsync = false;
    },

    callsArgOn: function callsArgOn(fake, index, context) {
        if (typeof index !== "number") {
            throw new TypeError("argument index is not number");
        }

        fake.callArgAt = index;
        fake.callbackArguments = [];
        fake.callbackContext = context;
        fake.callArgProp = undefined;
        fake.callbackAsync = false;
    },

    callsArgWith: function callsArgWith(fake, index) {
        if (typeof index !== "number") {
            throw new TypeError("argument index is not number");
        }

        fake.callArgAt = index;
        fake.callbackArguments = slice(arguments, 2);
        fake.callbackContext = undefined;
        fake.callArgProp = undefined;
        fake.callbackAsync = false;
    },

    callsArgOnWith: function callsArgWith(fake, index, context) {
        if (typeof index !== "number") {
            throw new TypeError("argument index is not number");
        }

        fake.callArgAt = index;
        fake.callbackArguments = slice(arguments, 3);
        fake.callbackContext = context;
        fake.callArgProp = undefined;
        fake.callbackAsync = false;
    },

    usingPromise: function usingPromise(fake, promiseLibrary) {
        fake.promiseLibrary = promiseLibrary;
    },

    yields: function(fake) {
        fake.callArgAt = useLeftMostCallback;
        fake.callbackArguments = slice(arguments, 1);
        fake.callbackContext = undefined;
        fake.callArgProp = undefined;
        fake.callbackAsync = false;
    },

    yieldsRight: function(fake) {
        fake.callArgAt = useRightMostCallback;
        fake.callbackArguments = slice(arguments, 1);
        fake.callbackContext = undefined;
        fake.callArgProp = undefined;
        fake.callbackAsync = false;
    },

    yieldsOn: function(fake, context) {
        fake.callArgAt = useLeftMostCallback;
        fake.callbackArguments = slice(arguments, 2);
        fake.callbackContext = context;
        fake.callArgProp = undefined;
        fake.callbackAsync = false;
    },

    yieldsTo: function(fake, prop) {
        fake.callArgAt = useLeftMostCallback;
        fake.callbackArguments = slice(arguments, 2);
        fake.callbackContext = undefined;
        fake.callArgProp = prop;
        fake.callbackAsync = false;
    },

    yieldsToOn: function(fake, prop, context) {
        fake.callArgAt = useLeftMostCallback;
        fake.callbackArguments = slice(arguments, 3);
        fake.callbackContext = context;
        fake.callArgProp = prop;
        fake.callbackAsync = false;
    },

    throws: throwsException,
    throwsException: throwsException,

    returns: function returns(fake, value) {
        fake.returnValue = value;
        fake.resolve = false;
        fake.reject = false;
        fake.returnValueDefined = true;
        fake.exception = undefined;
        fake.exceptionCreator = undefined;
        fake.fakeFn = undefined;
    },

    returnsArg: function returnsArg(fake, index) {
        if (typeof index !== "number") {
            throw new TypeError("argument index is not number");
        }

        fake.returnArgAt = index;
    },

    throwsArg: function throwsArg(fake, index) {
        if (typeof index !== "number") {
            throw new TypeError("argument index is not number");
        }

        fake.throwArgAt = index;
    },

    returnsThis: function returnsThis(fake) {
        fake.returnThis = true;
    },

    resolves: function resolves(fake, value) {
        fake.returnValue = value;
        fake.resolve = true;
        fake.resolveThis = false;
        fake.reject = false;
        fake.returnValueDefined = true;
        fake.exception = undefined;
        fake.exceptionCreator = undefined;
        fake.fakeFn = undefined;
    },

    resolvesArg: function resolvesArg(fake, index) {
        if (typeof index !== "number") {
            throw new TypeError("argument index is not number");
        }
        fake.resolveArgAt = index;
        fake.returnValue = undefined;
        fake.resolve = true;
        fake.resolveThis = false;
        fake.reject = false;
        fake.returnValueDefined = false;
        fake.exception = undefined;
        fake.exceptionCreator = undefined;
        fake.fakeFn = undefined;
    },

    rejects: function rejects(fake, error, message) {
        var reason;
        if (typeof error === "string") {
            reason = new Error(message || "");
            reason.name = error;
        } else if (!error) {
            reason = new Error("Error");
        } else {
            reason = error;
        }
        fake.returnValue = reason;
        fake.resolve = false;
        fake.resolveThis = false;
        fake.reject = true;
        fake.returnValueDefined = true;
        fake.exception = undefined;
        fake.exceptionCreator = undefined;
        fake.fakeFn = undefined;

        return fake;
    },

    resolvesThis: function resolvesThis(fake) {
        fake.returnValue = undefined;
        fake.resolve = false;
        fake.resolveThis = true;
        fake.reject = false;
        fake.returnValueDefined = false;
        fake.exception = undefined;
        fake.exceptionCreator = undefined;
        fake.fakeFn = undefined;
    },

    callThrough: function callThrough(fake) {
        fake.callsThrough = true;
    },

    get: function get(fake, getterFunction) {
        var rootStub = fake.stub || fake;

        Object.defineProperty(rootStub.rootObj, rootStub.propName, {
            get: getterFunction,
            configurable: isPropertyConfigurable(rootStub.rootObj, rootStub.propName)
        });

        return fake;
    },

    set: function set(fake, setterFunction) {
        var rootStub = fake.stub || fake;

        Object.defineProperty(
            rootStub.rootObj,
            rootStub.propName,
            // eslint-disable-next-line accessor-pairs
            {
                set: setterFunction,
                configurable: isPropertyConfigurable(rootStub.rootObj, rootStub.propName)
            }
        );

        return fake;
    },

    value: function value(fake, newVal) {
        var rootStub = fake.stub || fake;

        Object.defineProperty(rootStub.rootObj, rootStub.propName, {
            value: newVal,
            enumerable: true,
            configurable: isPropertyConfigurable(rootStub.rootObj, rootStub.propName)
        });

        return fake;
    }
};

var asyncBehaviors = exportAsyncBehaviors(defaultBehaviors);

module.exports = extend({}, defaultBehaviors, asyncBehaviors);

},{"./util/core/export-async-behaviors":20,"./util/core/extend":21,"./util/core/is-property-configurable":28,"@sinonjs/commons":39}],9:[function(require,module,exports){
"use strict";

var arrayProto = require("@sinonjs/commons").prototypes.array;
var spy = require("./spy");
var nextTick = require("./util/core/next-tick");

var forEach = arrayProto.forEach;
var slice = arrayProto.slice;

function getError(value) {
    return value instanceof Error ? value : new Error(value);
}

function cleanProxy(f) {
    var undesirableProperties = [
        "instantiateFake",
        "callArg",
        "callArgOn",
        "callArgOnWith",
        "callArgWith",
        "invokeCallback",
        "throwArg",
        "withArgs",
        "yield",
        "yieldOn",
        "yieldTo",
        "yieldToOn"
    ];

    forEach(undesirableProperties, function(key) {
        delete f[key];
    });

    return f;
}

var uuid = 0;
function wrapFunc(f) {
    var fakeInstance = function() {
        var lastArg = arguments.length > 0 ? arguments[arguments.length - 1] : undefined;
        var callback = lastArg && typeof lastArg === "function" ? lastArg : undefined;

        /* eslint-disable no-use-before-define */
        p.lastArg = lastArg;
        p.callback = callback;
        /* eslint-enable no-use-before-define */

        return f && f.apply(this, arguments);
    };
    var p = cleanProxy(spy(fakeInstance));

    p.displayName = "fake";
    p.id = "fake#" + uuid++;

    return p;
}

function fake(f) {
    if (arguments.length > 0 && typeof f !== "function") {
        throw new TypeError("Expected f argument to be a Function");
    }

    return wrapFunc(f);
}

fake.returns = function returns(value) {
    function f() {
        return value;
    }

    return wrapFunc(f);
};

fake.throws = function throws(value) {
    function f() {
        throw getError(value);
    }

    return wrapFunc(f);
};

fake.resolves = function resolves(value) {
    function f() {
        return Promise.resolve(value);
    }

    return wrapFunc(f);
};

fake.rejects = function rejects(value) {
    function f() {
        return Promise.reject(getError(value));
    }

    return wrapFunc(f);
};

function yieldInternal(async, values) {
    function f() {
        var callback = arguments[arguments.length - 1];
        if (typeof callback !== "function") {
            throw new TypeError("Expected last argument to be a function");
        }
        if (async) {
            nextTick(function() {
                callback.apply(null, values);
            });
        } else {
            callback.apply(null, values);
        }
    }

    return wrapFunc(f);
}

fake.yields = function yields() {
    return yieldInternal(false, slice(arguments));
};

fake.yieldsAsync = function yieldsAsync() {
    return yieldInternal(true, slice(arguments));
};

module.exports = fake;

},{"./spy":14,"./util/core/next-tick":29,"@sinonjs/commons":39}],10:[function(require,module,exports){
"use strict";

var arrayProto = require("@sinonjs/commons").prototypes.array;
var spyInvoke = require("./spy").invoke;
var spyCallToString = require("./call").toString;
var timesInWords = require("./util/core/times-in-words");
var extend = require("./util/core/extend");
var match = require("@sinonjs/samsam").createMatcher;
var stub = require("./stub");
var assert = require("./assert");
var deepEqual = require("@sinonjs/samsam").deepEqual;
var format = require("./util/core/format");
var valueToString = require("@sinonjs/commons").valueToString;

var every = arrayProto.every;
var forEach = arrayProto.forEach;
var push = arrayProto.push;
var slice = arrayProto.slice;

function callCountInWords(callCount) {
    if (callCount === 0) {
        return "never called";
    }

    return "called " + timesInWords(callCount);
}

function expectedCallCountInWords(expectation) {
    var min = expectation.minCalls;
    var max = expectation.maxCalls;

    if (typeof min === "number" && typeof max === "number") {
        var str = timesInWords(min);

        if (min !== max) {
            str = "at least " + str + " and at most " + timesInWords(max);
        }

        return str;
    }

    if (typeof min === "number") {
        return "at least " + timesInWords(min);
    }

    return "at most " + timesInWords(max);
}

function receivedMinCalls(expectation) {
    var hasMinLimit = typeof expectation.minCalls === "number";
    return !hasMinLimit || expectation.callCount >= expectation.minCalls;
}

function receivedMaxCalls(expectation) {
    if (typeof expectation.maxCalls !== "number") {
        return false;
    }

    return expectation.callCount === expectation.maxCalls;
}

function verifyMatcher(possibleMatcher, arg) {
    var isMatcher = match.isMatcher(possibleMatcher);

    return (isMatcher && possibleMatcher.test(arg)) || true;
}

var mockExpectation = {
    minCalls: 1,
    maxCalls: 1,

    create: function create(methodName) {
        var expectation = extend.nonEnum(stub.create(), mockExpectation);
        delete expectation.create;
        expectation.method = methodName;

        return expectation;
    },

    invoke: function invoke(func, thisValue, args) {
        this.verifyCallAllowed(thisValue, args);

        return spyInvoke.apply(this, arguments);
    },

    atLeast: function atLeast(num) {
        if (typeof num !== "number") {
            throw new TypeError("'" + valueToString(num) + "' is not number");
        }

        if (!this.limitsSet) {
            this.maxCalls = null;
            this.limitsSet = true;
        }

        this.minCalls = num;

        return this;
    },

    atMost: function atMost(num) {
        if (typeof num !== "number") {
            throw new TypeError("'" + valueToString(num) + "' is not number");
        }

        if (!this.limitsSet) {
            this.minCalls = null;
            this.limitsSet = true;
        }

        this.maxCalls = num;

        return this;
    },

    never: function never() {
        return this.exactly(0);
    },

    once: function once() {
        return this.exactly(1);
    },

    twice: function twice() {
        return this.exactly(2);
    },

    thrice: function thrice() {
        return this.exactly(3);
    },

    exactly: function exactly(num) {
        if (typeof num !== "number") {
            throw new TypeError("'" + valueToString(num) + "' is not a number");
        }

        this.atLeast(num);
        return this.atMost(num);
    },

    met: function met() {
        return !this.failed && receivedMinCalls(this);
    },

    verifyCallAllowed: function verifyCallAllowed(thisValue, args) {
        var expectedArguments = this.expectedArguments;

        if (receivedMaxCalls(this)) {
            this.failed = true;
            mockExpectation.fail(this.method + " already called " + timesInWords(this.maxCalls));
        }

        if ("expectedThis" in this && this.expectedThis !== thisValue) {
            mockExpectation.fail(
                this.method +
                    " called with " +
                    valueToString(thisValue) +
                    " as thisValue, expected " +
                    valueToString(this.expectedThis)
            );
        }

        if (!("expectedArguments" in this)) {
            return;
        }

        if (!args) {
            mockExpectation.fail(this.method + " received no arguments, expected " + format(expectedArguments));
        }

        if (args.length < expectedArguments.length) {
            mockExpectation.fail(
                this.method +
                    " received too few arguments (" +
                    format(args) +
                    "), expected " +
                    format(expectedArguments)
            );
        }

        if (this.expectsExactArgCount && args.length !== expectedArguments.length) {
            mockExpectation.fail(
                this.method +
                    " received too many arguments (" +
                    format(args) +
                    "), expected " +
                    format(expectedArguments)
            );
        }

        forEach(
            expectedArguments,
            function(expectedArgument, i) {
                if (!verifyMatcher(expectedArgument, args[i])) {
                    mockExpectation.fail(
                        this.method +
                            " received wrong arguments " +
                            format(args) +
                            ", didn't match " +
                            String(expectedArguments)
                    );
                }

                if (!deepEqual(args[i], expectedArgument)) {
                    mockExpectation.fail(
                        this.method +
                            " received wrong arguments " +
                            format(args) +
                            ", expected " +
                            format(expectedArguments)
                    );
                }
            },
            this
        );
    },

    allowsCall: function allowsCall(thisValue, args) {
        var expectedArguments = this.expectedArguments;

        if (this.met() && receivedMaxCalls(this)) {
            return false;
        }

        if ("expectedThis" in this && this.expectedThis !== thisValue) {
            return false;
        }

        if (!("expectedArguments" in this)) {
            return true;
        }

        // eslint-disable-next-line no-underscore-dangle
        var _args = args || [];

        if (_args.length < expectedArguments.length) {
            return false;
        }

        if (this.expectsExactArgCount && _args.length !== expectedArguments.length) {
            return false;
        }

        return every(expectedArguments, function(expectedArgument, i) {
            if (!verifyMatcher(expectedArgument, _args[i])) {
                return false;
            }

            if (!deepEqual(_args[i], expectedArgument)) {
                return false;
            }

            return true;
        });
    },

    withArgs: function withArgs() {
        this.expectedArguments = slice(arguments);
        return this;
    },

    withExactArgs: function withExactArgs() {
        this.withArgs.apply(this, arguments);
        this.expectsExactArgCount = true;
        return this;
    },

    on: function on(thisValue) {
        this.expectedThis = thisValue;
        return this;
    },

    toString: function() {
        var args = slice(this.expectedArguments || []);

        if (!this.expectsExactArgCount) {
            push(args, "[...]");
        }

        var callStr = spyCallToString.call({
            proxy: this.method || "anonymous mock expectation",
            args: args
        });

        var message = callStr.replace(", [...""[, ...") + " " + expectedCallCountInWords(this);

        if (this.met()) {
            return "Expectation met: " + message;
        }

        return "Expected " + message + " (" + callCountInWords(this.callCount) + ")";
    },

    verify: function verify() {
        if (!this.met()) {
            mockExpectation.fail(String(this));
        } else {
            mockExpectation.pass(String(this));
        }

        return true;
    },

    pass: function pass(message) {
        assert.pass(message);
    },

    fail: function fail(message) {
        var exception = new Error(message);
        exception.name = "ExpectationError";

        throw exception;
    }
};

module.exports = mockExpectation;

},{"./assert":2,"./call":4,"./spy":14,"./stub":16,"./util/core/extend":21,"./util/core/format":22,"./util/core/times-in-words":30,"@sinonjs/commons":39,"@sinonjs/samsam":65}],11:[function(require,module,exports){
"use strict";

var arrayProto = require("@sinonjs/commons").prototypes.array;
var mockExpectation = require("./mock-expectation");
var spyCallToString = require("./call").toString;
var extend = require("./util/core/extend");
var deepEqual = require("@sinonjs/samsam").deepEqual;
var wrapMethod = require("./util/core/wrap-method");
var usePromiseLibrary = require("./util/core/use-promise-library");

var concat = arrayProto.concat;
var filter = arrayProto.filter;
var forEach = arrayProto.forEach;
var every = arrayProto.every;
var join = arrayProto.join;
var push = arrayProto.push;
var slice = arrayProto.slice;
var unshift = arrayProto.unshift;

function mock(object) {
    if (!object || typeof object === "string") {
        return mockExpectation.create(object ? object : "Anonymous mock");
    }

    return mock.create(object);
}

function each(collection, callback) {
    var col = collection || [];

    forEach(col, callback);
}

function arrayEquals(arr1, arr2, compareLength) {
    if (compareLength && arr1.length !== arr2.length) {
        return false;
    }

    return every(arr1, function(element, i) {
        return deepEqual(arr2[i], element);
    });
}

extend(mock, {
    create: function create(object) {
        if (!object) {
            throw new TypeError("object is null");
        }

        var mockObject = extend.nonEnum({}, mock, { object: object });
        delete mockObject.create;

        return mockObject;
    },

    expects: function expects(method) {
        if (!method) {
            throw new TypeError("method is falsy");
        }

        if (!this.expectations) {
            this.expectations = {};
            this.proxies = [];
            this.failures = [];
        }

        if (!this.expectations[method]) {
            this.expectations[method] = [];
            var mockObject = this;

            wrapMethod(this.object, method, function() {
                return mockObject.invokeMethod(method, this, arguments);
            });

            push(this.proxies, method);
        }

        var expectation = mockExpectation.create(method);
        extend.nonEnum(expectation, this.object[method]);
        push(this.expectations[method], expectation);
        usePromiseLibrary(this.promiseLibrary, expectation);

        return expectation;
    },

    restore: function restore() {
        var object = this.object;

        each(this.proxies, function(proxy) {
            if (typeof object[proxy].restore === "function") {
                object[proxy].restore();
            }
        });
    },

    verify: function verify() {
        var expectations = this.expectations || {};
        var messages = this.failures ? slice(this.failures) : [];
        var met = [];

        each(this.proxies, function(proxy) {
            each(expectations[proxy], function(expectation) {
                if (!expectation.met()) {
                    push(messages, String(expectation));
                } else {
                    push(met, String(expectation));
                }
            });
        });

        this.restore();

        if (messages.length > 0) {
            mockExpectation.fail(join(concat(messages, met), "\n"));
        } else if (met.length > 0) {
            mockExpectation.pass(join(concat(messages, met), "\n"));
        }

        return true;
    },

    usingPromise: function usingPromise(promiseLibrary) {
        this.promiseLibrary = promiseLibrary;

        return this;
    },

    invokeMethod: function invokeMethod(method, thisValue, args) {
        /* if we cannot find any matching files we will explicitly call mockExpection#fail with error messages */
        /* eslint consistent-return"off" */
        var expectations = this.expectations && this.expectations[method] ? this.expectations[method] : [];
        var currentArgs = args || [];
        var available;

        var expectationsWithMatchingArgs = filter(expectations, function(expectation) {
            var expectedArgs = expectation.expectedArguments || [];

            return arrayEquals(expectedArgs, currentArgs, expectation.expectsExactArgCount);
        });

        var expectationsToApply = filter(expectationsWithMatchingArgs, function(expectation) {
            return !expectation.met() && expectation.allowsCall(thisValue, args);
        });

        if (expectationsToApply.length > 0) {
            return expectationsToApply[0].apply(thisValue, args);
        }

        var messages = [];
        var exhausted = 0;

        forEach(expectationsWithMatchingArgs, function(expectation) {
            if (expectation.allowsCall(thisValue, args)) {
                available = available || expectation;
            } else {
                exhausted += 1;
            }
        });

        if (available && exhausted === 0) {
            return available.apply(thisValue, args);
        }

        forEach(expectations, function(expectation) {
            push(messages, "    " + String(expectation));
        });

        unshift(
            messages,
            "Unexpected call: " +
                spyCallToString.call({
                    proxy: method,
                    args: args
                })
        );

        var err = new Error();
        if (!err.stack) {
            // PhantomJS does not serialize the stack trace until the error has been thrown
            try {
                throw err;
            } catch (e) {
                /* empty */
            }
        }
        push(
            this.failures,
            "Unexpected call: " +
                spyCallToString.call({
                    proxy: method,
                    args: args,
                    stack: err.stack
                })
        );

        mockExpectation.fail(join(messages, "\n"));
    }
});

module.exports = mock;

},{"./call":4,"./mock-expectation":10,"./util/core/extend":21,"./util/core/use-promise-library":31,"./util/core/wrap-method":33,"@sinonjs/commons":39,"@sinonjs/samsam":65}],12:[function(require,module,exports){
"use strict";

var arrayProto = require("@sinonjs/commons").prototypes.array;
var collectOwnMethods = require("./collect-own-methods");
var getPropertyDescriptor = require("./util/core/get-property-descriptor");
var isEsModule = require("./util/core/is-es-module");
var isPropertyConfigurable = require("./util/core/is-property-configurable");
var isNonExistentOwnProperty = require("./util/core/is-non-existent-own-property");
var match = require("@sinonjs/samsam").createMatcher;
var sinonAssert = require("./assert");
var sinonClock = require("./util/fake-timers");
var sinonMock = require("./mock");
var sinonSpy = require("./spy");
var sinonStub = require("./stub");
var sinonFake = require("./fake");
var valueToString = require("@sinonjs/commons").valueToString;
var fakeServer = require("nise").fakeServer;
var fakeXhr = require("nise").fakeXhr;
var usePromiseLibrary = require("./util/core/use-promise-library");

var filter = arrayProto.filter;
var forEach = arrayProto.filter;
var push = arrayProto.push;
var reverse = arrayProto.reverse;

function applyOnEach(fakes, method) {
    var matchingFakes = filter(fakes, function(fake) {
        return typeof fake[method] === "function";
    });

    forEach(matchingFakes, function(fake) {
        fake[method]();
    });
}

function Sandbox() {
    var sandbox = this;
    var collection = [];
    var fakeRestorers = [];
    var promiseLib;

    sandbox.serverPrototype = fakeServer;

    // this is for testing only
    sandbox.getFakes = function getFakes() {
        return collection;
    };

    // this is for testing only
    sandbox.getRestorers = function() {
        return fakeRestorers;
    };

    sandbox.createStubInstance = function createStubInstance(constructor) {
        if (typeof constructor !== "function") {
            throw new TypeError("The constructor should be a function.");
        }
        return this.stub(Object.create(constructor.prototype));
    };

    sandbox.inject = function inject(obj) {
        obj.spy = function() {
            return sandbox.spy.apply(null, arguments);
        };

        obj.stub = function() {
            return sandbox.stub.apply(null, arguments);
        };

        obj.mock = function() {
            return sandbox.mock.apply(null, arguments);
        };

        if (sandbox.clock) {
            obj.clock = sandbox.clock;
        }

        if (sandbox.server) {
            obj.server = sandbox.server;
            obj.requests = sandbox.server.requests;
        }

        obj.match = match;

        return obj;
    };

    sandbox.mock = function mock() {
        var m = sinonMock.apply(null, arguments);

        push(collection, m);
        usePromiseLibrary(promiseLib, m);

        return m;
    };

    sandbox.reset = function reset() {
        applyOnEach(collection, "reset");
        applyOnEach(collection, "resetHistory");
    };

    sandbox.resetBehavior = function resetBehavior() {
        applyOnEach(collection, "resetBehavior");
    };

    sandbox.resetHistory = function resetHistory() {
        function privateResetHistory(f) {
            var method = f.resetHistory || f.reset;
            if (method) {
                method.call(f);
            }
        }

        forEach(collection, function(fake) {
            if (typeof fake === "function") {
                privateResetHistory(fake);
                return;
            }

            var methods = [];
            if (fake.get) {
                push(methods, fake.get);
            }

            if (fake.set) {
                push(methods, fake.set);
            }

            forEach(methods, privateResetHistory);
        });
    };

    sandbox.restore = function restore() {
        if (arguments.length) {
            throw new Error("sandbox.restore() does not take any parameters. Perhaps you meant stub.restore()");
        }

        reverse(collection);
        applyOnEach(collection, "restore");
        collection = [];

        forEach(fakeRestorers, function(restorer) {
            restorer();
        });
        fakeRestorers = [];

        sandbox.restoreContext();
    };

    sandbox.restoreContext = function restoreContext() {
        var injectedKeys = sandbox.injectedKeys;
        var injectInto = sandbox.injectInto;

        if (!injectedKeys) {
            return;
        }

        forEach(injectedKeys, function(injectedKey) {
            delete injectInto[injectedKey];
        });

        injectedKeys = [];
    };

    function getFakeRestorer(object, property) {
        var descriptor = getPropertyDescriptor(object, property);

        function restorer() {
            Object.defineProperty(object, property, descriptor);
        }
        restorer.object = object;
        restorer.property = property;
        return restorer;
    }

    function verifyNotReplaced(object, property) {
        forEach(fakeRestorers, function(fakeRestorer) {
            if (fakeRestorer.object === object && fakeRestorer.property === property) {
                throw new TypeError("Attempted to replace " + property + " which is already replaced");
            }
        });
    }

    sandbox.replace = function replace(object, property, replacement) {
        var descriptor = getPropertyDescriptor(object, property);

        if (typeof descriptor === "undefined") {
            throw new TypeError("Cannot replace non-existent own property " + valueToString(property));
        }

        if (typeof replacement === "undefined") {
            throw new TypeError("Expected replacement argument to be defined");
        }

        if (typeof descriptor.get === "function") {
            throw new Error("Use sandbox.replaceGetter for replacing getters");
        }

        if (typeof descriptor.set === "function") {
            throw new Error("Use sandbox.replaceSetter for replacing setters");
        }

        if (typeof object[property] !== typeof replacement) {
            throw new TypeError("Cannot replace " + typeof object[property] + " with " + typeof replacement);
        }

        verifyNotReplaced(object, property);

        // store a function for restoring the replaced property
        push(fakeRestorers, getFakeRestorer(object, property));

        object[property] = replacement;

        return replacement;
    };

    sandbox.replaceGetter = function replaceGetter(object, property, replacement) {
        var descriptor = getPropertyDescriptor(object, property);

        if (typeof descriptor === "undefined") {
            throw new TypeError("Cannot replace non-existent own property " + valueToString(property));
        }

        if (typeof replacement !== "function") {
            throw new TypeError("Expected replacement argument to be a function");
        }

        if (typeof descriptor.get !== "function") {
            throw new Error("`object.property` is not a getter");
        }

        verifyNotReplaced(object, property);

        // store a function for restoring the replaced property
        push(fakeRestorers, getFakeRestorer(object, property));

        Object.defineProperty(object, property, {
            get: replacement,
            configurable: isPropertyConfigurable(object, property)
        });

        return replacement;
    };

    sandbox.replaceSetter = function replaceSetter(object, property, replacement) {
        var descriptor = getPropertyDescriptor(object, property);

        if (typeof descriptor === "undefined") {
            throw new TypeError("Cannot replace non-existent own property " + valueToString(property));
        }

        if (typeof replacement !== "function") {
            throw new TypeError("Expected replacement argument to be a function");
        }

        if (typeof descriptor.set !== "function") {
            throw new Error("`object.property` is not a setter");
        }

        verifyNotReplaced(object, property);

        // store a function for restoring the replaced property
        push(fakeRestorers, getFakeRestorer(object, property));

        // eslint-disable-next-line accessor-pairs
        Object.defineProperty(object, property, {
            set: replacement,
            configurable: isPropertyConfigurable(object, property)
        });

        return replacement;
    };

    sandbox.spy = function spy() {
        var s = sinonSpy.apply(sinonSpy, arguments);

        push(collection, s);

        return s;
    };

    sandbox.stub = function stub(object, property) {
        if (isEsModule(object)) {
            throw new TypeError("ES Modules cannot be stubbed");
        }

        if (isNonExistentOwnProperty(object, property)) {
            throw new TypeError("Cannot stub non-existent own property " + valueToString(property));
        }

        var stubbed = sinonStub.apply(null, arguments);
        var isStubbingEntireObject = typeof property === "undefined" && typeof object === "object";

        if (isStubbingEntireObject) {
            var ownMethods = collectOwnMethods(stubbed);

            forEach(ownMethods, function(method) {
                push(collection, method);
            });

            usePromiseLibrary(promiseLib, ownMethods);
        } else {
            push(collection, stubbed);
            usePromiseLibrary(promiseLib, stubbed);
        }

        return stubbed;
    };

    // eslint-disable-next-line no-unused-vars
    sandbox.fake = function fake(f) {
        var s = sinonFake.apply(sinonFake, arguments);

        push(collection, s);

        return s;
    };

    forEach(Object.keys(sinonFake), function(key) {
        var fakeBehavior = sinonFake[key];
        if (typeof fakeBehavior === "function") {
            sandbox.fake[key] = function() {
                var s = fakeBehavior.apply(fakeBehavior, arguments);

                push(collection, s);

                return s;
            };
        }
    });

    sandbox.useFakeTimers = function useFakeTimers(args) {
        var clock = sinonClock.useFakeTimers.call(null, args);

        sandbox.clock = clock;
        push(collection, clock);

        return clock;
    };

    sandbox.verify = function verify() {
        applyOnEach(collection, "verify");
    };

    sandbox.verifyAndRestore = function verifyAndRestore() {
        var exception;

        try {
            sandbox.verify();
        } catch (e) {
            exception = e;
        }

        sandbox.restore();

        if (exception) {
            throw exception;
        }
    };

    sandbox.useFakeServer = function useFakeServer() {
        var proto = sandbox.serverPrototype || fakeServer;

        if (!proto || !proto.create) {
            return null;
        }

        sandbox.server = proto.create();
        push(collection, sandbox.server);

        return sandbox.server;
    };

    sandbox.useFakeXMLHttpRequest = function useFakeXMLHttpRequest() {
        var xhr = fakeXhr.useFakeXMLHttpRequest();
        push(collection, xhr);
        return xhr;
    };

    sandbox.usingPromise = function usingPromise(promiseLibrary) {
        promiseLib = promiseLibrary;
        collection.promiseLibrary = promiseLibrary;

        return sandbox;
    };
}

Sandbox.prototype.assert = sinonAssert;
Sandbox.prototype.match = match;

module.exports = Sandbox;

},{"./assert":2,"./collect-own-methods":5,"./fake":9,"./mock":11,"./spy":14,"./stub":16,"./util/core/get-property-descriptor":25,"./util/core/is-es-module":26,"./util/core/is-non-existent-own-property":27,"./util/core/is-property-configurable":28,"./util/core/use-promise-library":31,"./util/fake-timers":34,"@sinonjs/commons":39,"@sinonjs/samsam":65,"nise":85}],13:[function(require,module,exports){
"use strict";

var arrayProto = require("@sinonjs/commons").prototypes.array;
var color = require("./color");
var match = require("@sinonjs/samsam").createMatcher;
var timesInWords = require("./util/core/times-in-words");
var sinonFormat = require("./util/core/format");
var jsDiff = require("diff");

var join = arrayProto.join;
var map = arrayProto.map;
var push = arrayProto.push;

function colorSinonMatchText(matcher, calledArg, calledArgMessage) {
    var calledArgumentMessage = calledArgMessage;
    if (!matcher.test(calledArg)) {
        matcher.message = color.red(matcher.message);
        if (calledArgumentMessage) {
            calledArgumentMessage = color.green(calledArgumentMessage);
        }
    }
    return calledArgumentMessage + " " + matcher.message;
}

function colorDiffText(diff) {
    var objects = map(diff, function(part) {
        var text = part.value;
        if (part.added) {
            text = color.green(text);
        } else if (part.removed) {
            text = color.red(text);
        }
        if (diff.length === 2) {
            text += " "; // format simple diffs
        }
        return text;
    });
    return join(objects, "");
}

module.exports = {
    c: function(spyInstance) {
        return timesInWords(spyInstance.callCount);
    },

    n: function(spyInstance) {
        // eslint-disable-next-line local-rules/no-prototype-methods
        return spyInstance.toString();
    },

    D: function(spyInstance, args) {
        var message = "";

        for (var i = 0, l = spyInstance.callCount; i < l; ++i) {
            // describe multiple calls
            if (l > 1) {
                message += "\nCall " + (i + 1) + ":";
            }
            var calledArgs = spyInstance.getCall(i).args;
            for (var j = 0; j < calledArgs.length || j < args.length; ++j) {
                message += "\n";
                var calledArgMessage = j < calledArgs.length ? sinonFormat(calledArgs[j]) : "";
                if (match.isMatcher(args[j])) {
                    message += colorSinonMatchText(args[j], calledArgs[j], calledArgMessage);
                } else {
                    var expectedArgMessage = j < args.length ? sinonFormat(args[j]) : "";
                    var diff = jsDiff.diffJson(calledArgMessage, expectedArgMessage);
                    message += colorDiffText(diff);
                }
            }
        }

        return message;
    },

    C: function(spyInstance) {
        var calls = [];

        for (var i = 0, l = spyInstance.callCount; i < l; ++i) {
            // eslint-disable-next-line local-rules/no-prototype-methods
            var stringifiedCall = "    " + spyInstance.getCall(i).toString();
            if (/\n/.test(calls[i - 1])) {
                stringifiedCall = "\n" + stringifiedCall;
            }
            push(calls, stringifiedCall);
        }

        return calls.length > 0 ? "\n" + join(calls, "\n") : "";
    },

    t: function(spyInstance) {
        var objects = [];

        for (var i = 0, l = spyInstance.callCount; i < l; ++i) {
            push(objects, sinonFormat(spyInstance.thisValues[i]));
        }

        return join(objects, ", ");
    },

    "*": function(spyInstance, args) {
        return join(
            map(args, function(arg) {
                return sinonFormat(arg);
            }),
            ", "
        );
    }
};

},{"./color":6,"./util/core/format":22,"./util/core/times-in-words":30,"@sinonjs/commons":39,"@sinonjs/samsam":65,"diff":69}],14:[function(require,module,exports){
"use strict";

var arrayProto = require("@sinonjs/commons").prototypes.array;
var createBehavior = require("./behavior").create;
var extend = require("./util/core/extend");
var functionName = require("@sinonjs/commons").functionName;
var functionToString = require("./util/core/function-to-string");
var getPropertyDescriptor = require("./util/core/get-property-descriptor");
var deepEqual = require("@sinonjs/samsam").deepEqual;
var isEsModule = require("./util/core/is-es-module");
var spyCall = require("./call");
var wrapMethod = require("./util/core/wrap-method");
var sinonFormat = require("./util/core/format");
var valueToString = require("@sinonjs/commons").valueToString;

/* cache references to library methods so that they also can be stubbed without problems */
var concat = arrayProto.concat;
var forEach = arrayProto.forEach;
var pop = arrayProto.pop;
var push = arrayProto.push;
var slice = arrayProto.slice;
var filter = Array.prototype.filter;
var ErrorConstructor = Error.prototype.constructor;
var bind = Function.prototype.bind;

var callId = 0;

function spy(object, property, types) {
    var descriptor, methodDesc;

    if (isEsModule(object)) {
        throw new TypeError("ES Modules cannot be spied");
    }

    if (!property && typeof object === "function") {
        return spy.create(object);
    }

    if (!object && !property) {
        return spy.create(function() {
            return;
        });
    }

    if (!types) {
        return wrapMethod(object, property, spy.create(object[property]));
    }

    descriptor = {};
    methodDesc = getPropertyDescriptor(object, property);

    forEach(types, function(type) {
        descriptor[type] = spy.create(methodDesc[type]);
    });

    return wrapMethod(object, property, descriptor);
}

function incrementCallCount() {
    this.called = true;
    this.callCount += 1;
    this.notCalled = false;
    this.calledOnce = this.callCount === 1;
    this.calledTwice = this.callCount === 2;
    this.calledThrice = this.callCount === 3;
}

function createCallProperties() {
    this.firstCall = this.getCall(0);
    this.secondCall = this.getCall(1);
    this.thirdCall = this.getCall(2);
    this.lastCall = this.getCall(this.callCount - 1);
}

function createProxy(func, proxyLength) {
    // Retain the function length:
    var p;
    if (proxyLength) {
        // Do not change this to use an eval. Projects that depend on sinon block the use of eval.
        // ref: https://github.com/sinonjs/sinon/issues/710
        switch (proxyLength) {
            /*eslint-disable no-unused-vars, max-len*/
            case 1:
                p = function proxy(a) {
                    return p.invoke(func, this, slice(arguments));
                };
                break;
            case 2:
                p = function proxy(a, b) {
                    return p.invoke(func, this, slice(arguments));
                };
                break;
            case 3:
                p = function proxy(a, b, c) {
                    return p.invoke(func, this, slice(arguments));
                };
                break;
            case 4:
                p = function proxy(a, b, c, d) {
                    return p.invoke(func, this, slice(arguments));
                };
                break;
            case 5:
                p = function proxy(a, b, c, d, e) {
                    return p.invoke(func, this, slice(arguments));
                };
                break;
            case 6:
                p = function proxy(a, b, c, d, e, f) {
                    return p.invoke(func, this, slice(arguments));
                };
                break;
            case 7:
                p = function proxy(a, b, c, d, e, f, g) {
                    return p.invoke(func, this, slice(arguments));
                };
                break;
            case 8:
                p = function proxy(a, b, c, d, e, f, g, h) {
                    return p.invoke(func, this, slice(arguments));
                };
                break;
            case 9:
                p = function proxy(a, b, c, d, e, f, g, h, i) {
                    return p.invoke(func, this, slice(arguments));
                };
                break;
            case 10:
                p = function proxy(a, b, c, d, e, f, g, h, i, j) {
                    return p.invoke(func, this, slice(arguments));
                };
                break;
            case 11:
                p = function proxy(a, b, c, d, e, f, g, h, i, j, k) {
                    return p.invoke(func, this, slice(arguments));
                };
                break;
            case 12:
                p = function proxy(a, b, c, d, e, f, g, h, i, j, k, l) {
                    return p.invoke(func, this, slice(arguments));
                };
                break;
            default:
                p = function proxy() {
                    return p.invoke(func, this, slice(arguments));
                };
                break;
            /*eslint-enable*/
        }
    } else {
        p = function proxy() {
            return p.invoke(func, this, slice(arguments));
        };
    }
    var nameDescriptor = Object.getOwnPropertyDescriptor(func, "name");
    if (nameDescriptor && nameDescriptor.configurable) {
        // IE 11 functions don't have a name.
        // Safari 9 has names that are not configurable.
        Object.defineProperty(p, "name", nameDescriptor);
    }
    extend.nonEnum(p, {
        isSinonProxy: true,

        called: false,
        notCalled: true,
        calledOnce: false,
        calledTwice: false,
        calledThrice: false,
        callCount: 0,
        firstCall: null,
        secondCall: null,
        thirdCall: null,
        lastCall: null,
        args: [],
        returnValues: [],
        thisValues: [],
        exceptions: [],
        callIds: [],
        errorsWithCallStack: []
    });
    return p;
}

var uuid = 0;

// Public API
var spyApi = {
    formatters: require("./spy-formatters"),

    resetHistory: function() {
        if (this.invoking) {
            var err = new Error(
                "Cannot reset Sinon function while invoking it. " +
                    "Move the call to .resetHistory outside of the callback."
            );
            err.name = "InvalidResetException";
            throw err;
        }

        this.called = false;
        this.notCalled = true;
        this.calledOnce = false;
        this.calledTwice = false;
        this.calledThrice = false;
        this.callCount = 0;
        this.firstCall = null;
        this.secondCall = null;
        this.thirdCall = null;
        this.lastCall = null;
        this.args = [];
        this.returnValues = [];
        this.thisValues = [];
        this.exceptions = [];
        this.callIds = [];
        this.errorsWithCallStack = [];

        if (this.fakes) {
            forEach(this.fakes, function(fake) {
                if (fake.resetHistory) {
                    fake.resetHistory();
                } else {
                    fake.reset();
                }
            });
        }

        return this;
    },

    create: function create(func, spyLength) {
        var name;
        var funk = func;

        if (typeof funk !== "function") {
            funk = function() {
                return;
            };
        } else {
            name = functionName(funk);
        }

        var length = spyLength || funk.length;
        var proxy = createProxy(funk, length);

        extend.nonEnum(proxy, spy);
        delete proxy.create;
        extend(proxy, funk);

        proxy.resetHistory();
        proxy.prototype = funk.prototype;

        extend.nonEnum(proxy, {
            displayName: name || "spy",
            toString: functionToString,
            instantiateFake: spy.create,
            id: "spy#" + uuid++
        });

        return proxy;
    },

    invoke: function invoke(func, thisValue, args) {
        var matchings = this.matchingFakes(args);
        var currentCallId = callId++;
        var exception, returnValue;

        incrementCallCount.call(this);
        push(this.thisValues, thisValue);
        push(this.args, args);
        push(this.callIds, currentCallId);
        forEach(matchings, function(matching) {
            incrementCallCount.call(matching);
            push(matching.thisValues, thisValue);
            push(matching.args, args);
            push(matching.callIds, currentCallId);
        });

        // Make call properties available from within the spied function:
        createCallProperties.call(this);
        forEach(matchings, function(matching) {
            createCallProperties.call(matching);
        });

        try {
            this.invoking = true;

            var thisCall = this.getCall(this.callCount - 1);

            if (thisCall.calledWithNew()) {
                // Call through with `new`
                returnValue = new (bind.apply(this.func || func, concat([thisValue], args)))();

                if (typeof returnValue !== "object") {
                    returnValue = thisValue;
                }
            } else {
                returnValue = (this.func || func).apply(thisValue, args);
            }
        } catch (e) {
            exception = e;
        } finally {
            delete this.invoking;
        }

        push(this.exceptions, exception);
        push(this.returnValues, returnValue);
        forEach(matchings, function(matching) {
            push(matching.exceptions, exception);
            push(matching.returnValues, returnValue);
        });

        var err = new ErrorConstructor();
        // 1. Please do not get stack at this point. It may be so very slow, and not actually used
        // 2. PhantomJS does not serialize the stack trace until the error has been thrown:
        // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/Stack
        try {
            throw err;
        } catch (e) {
            /* empty */
        }
        push(this.errorsWithCallStack, err);
        forEach(matchings, function(matching) {
            push(matching.errorsWithCallStack, err);
        });

        // Make return value and exception available in the calls:
        createCallProperties.call(this);
        forEach(matchings, function(matching) {
            createCallProperties.call(matching);
        });

        if (exception !== undefined) {
            throw exception;
        }

        return returnValue;
    },

    named: function named(name) {
        this.displayName = name;
        var nameDescriptor = Object.getOwnPropertyDescriptor(this, "name");
        if (nameDescriptor && nameDescriptor.configurable) {
            // IE 11 functions don't have a name.
            // Safari 9 has names that are not configurable.
            nameDescriptor.value = name;
            Object.defineProperty(this, "name", nameDescriptor);
        }
        return this;
    },

    getCall: function getCall(i) {
        if (i < 0 || i >= this.callCount) {
            return null;
        }

        return spyCall(
            this,
            this.thisValues[i],
            this.args[i],
            this.returnValues[i],
            this.exceptions[i],
            this.callIds[i],
            this.errorsWithCallStack[i]
        );
    },

    getCalls: function() {
        var calls = [];
        var i;

        for (i = 0; i < this.callCount; i++) {
            push(calls, this.getCall(i));
        }

        return calls;
    },

    calledBefore: function calledBefore(spyFn) {
        if (!this.called) {
            return false;
        }

        if (!spyFn.called) {
            return true;
        }

        return this.callIds[0] < spyFn.callIds[spyFn.callIds.length - 1];
    },

    calledAfter: function calledAfter(spyFn) {
        if (!this.called || !spyFn.called) {
            return false;
        }

        return this.callIds[this.callCount - 1] > spyFn.callIds[0];
    },

    calledImmediatelyBefore: function calledImmediatelyBefore(spyFn) {
        if (!this.called || !spyFn.called) {
            return false;
        }

        return this.callIds[this.callCount - 1] === spyFn.callIds[spyFn.callCount - 1] - 1;
    },

    calledImmediatelyAfter: function calledImmediatelyAfter(spyFn) {
        if (!this.called || !spyFn.called) {
            return false;
        }

        return this.callIds[this.callCount - 1] === spyFn.callIds[spyFn.callCount - 1] + 1;
    },

    withArgs: function() {
        var args = slice(arguments);

        if (this.fakes) {
            var matching = pop(this.matchingFakes(args, true));

            if (matching) {
                return matching;
            }
        } else {
            extend.nonEnum(this, { fakes: [] });
        }

        var original = this;
        var fake = this.instantiateFake();
        fake.matchingArguments = args;
        fake.parent = this;
        push(this.fakes, fake);

        if (original.defaultBehavior && original.defaultBehavior.promiseLibrary) {
            fake.defaultBehavior = fake.defaultBehavior || createBehavior(fake);
            fake.defaultBehavior.promiseLibrary = original.defaultBehavior.promiseLibrary;
        }

        fake.withArgs = function() {
            return original.withArgs.apply(original, arguments);
        };

        forEach(original.args, function(arg, i) {
            if (!fake.matches(arg)) {
                return;
            }

            incrementCallCount.call(fake);
            push(fake.thisValues, original.thisValues[i]);
            push(fake.args, arg);
            push(fake.returnValues, original.returnValues[i]);
            push(fake.exceptions, original.exceptions[i]);
            push(fake.callIds, original.callIds[i]);
        });

        createCallProperties.call(fake);

        return fake;
    },

    matchingFakes: function(args, strict) {
        return filter.call(this.fakes || [], function(fake) {
            return fake.matches(args, strict);
        });
    },

    matches: function(args, strict) {
        var margs = this.matchingArguments;

        if (margs.length <= args.length && deepEqual(slice(args, 0, margs.length), margs)) {
            return !strict || margs.length === args.length;
        }

        return undefined;
    },

    printf: function(format) {
        var spyInstance = this;
        var args = slice(arguments, 1);
        var formatter;

        return (format || "").replace(/%(.)/g, function(match, specifyer) {
            formatter = spyApi.formatters[specifyer];

            if (typeof formatter === "function") {
                return String(formatter(spyInstance, args));
            } else if (!isNaN(parseInt(specifyer, 10))) {
                return sinonFormat(args[specifyer - 1]);
            }

            return "%" + specifyer;
        });
    }
};

function delegateToCalls(method, matchAny, actual, returnsValues, notCalled, totalCallCount) {
    spyApi[method] = function() {
        if (!this.called) {
            if (notCalled) {
                return notCalled.apply(this, arguments);
            }
            return false;
        }

        if (totalCallCount !== undefined && this.callCount !== totalCallCount) {
            return false;
        }

        var currentCall;
        var matches = 0;
        var returnValues = [];

        for (var i = 0, l = this.callCount; i < l; i += 1) {
            currentCall = this.getCall(i);
            var returnValue = currentCall[actual || method].apply(currentCall, arguments);
            push(returnValues, returnValue);
            if (returnValue) {
                matches += 1;

                if (matchAny) {
                    return true;
                }
            }
        }

        if (returnsValues) {
            return returnValues;
        }
        return matches === this.callCount;
    };
}

delegateToCalls("calledOn"true);
delegateToCalls("alwaysCalledOn"false"calledOn");
delegateToCalls("calledWith"true);
delegateToCalls("calledOnceWith"true"calledWith"false, undefined, 1);
delegateToCalls("calledWithMatch"true);
delegateToCalls("alwaysCalledWith"false"calledWith");
delegateToCalls("alwaysCalledWithMatch"false"calledWithMatch");
delegateToCalls("calledWithExactly"true);
delegateToCalls("calledOnceWithExactly"true"calledWithExactly"false, undefined1);
delegateToCalls("alwaysCalledWithExactly"false"calledWithExactly");
delegateToCalls("neverCalledWith"false"notCalledWith"false, function() {
    return true;
});
delegateToCalls("neverCalledWithMatch"false"notCalledWithMatch"false, function() {
    return true;
});
delegateToCalls("threw"true);
delegateToCalls("alwaysThrew"false"threw");
delegateToCalls("returned"true);
delegateToCalls("alwaysReturned"false"returned");
delegateToCalls("calledWithNew"true);
delegateToCalls("alwaysCalledWithNew"false"calledWithNew");
/* eslint-disable local-rules/no-prototype-methods */
delegateToCalls("callArg"false"callArgWith"true, function() {
    throw new Error(this.toString() + " cannot call arg since it was not yet invoked.");
});
spyApi.callArgWith = spyApi.callArg;
delegateToCalls("callArgOn"false"callArgOnWith"true, function() {
    throw new Error(this.toString() + " cannot call arg since it was not yet invoked.");
});
spyApi.callArgOnWith = spyApi.callArgOn;
delegateToCalls("throwArg"false"throwArg"false, function() {
    throw new Error(this.toString() + " cannot throw arg since it was not yet invoked.");
});
delegateToCalls("yield"false"yield"true, function() {
    throw new Error(this.toString() + " cannot yield since it was not yet invoked.");
});
// "invokeCallback" is an alias for "yield" since "yield" is invalid in strict mode.
spyApi.invokeCallback = spyApi.yield;
delegateToCalls("yieldOn"false"yieldOn"true, function() {
    throw new Error(this.toString() + " cannot yield since it was not yet invoked.");
});
delegateToCalls("yieldTo"false"yieldTo"true, function(property) {
    throw new Error(
        this.toString() + " cannot yield to '" + valueToString(property) + "' since it was not yet invoked."
    );
});
delegateToCalls("yieldToOn"false"yieldToOn"true, function(property) {
    throw new Error(
        this.toString() + " cannot yield to '" + valueToString(property) + "' since it was not yet invoked."
    );
});
/* eslint-enable local-rules/no-prototype-methods */

extend(spy, spyApi);
spy.spyCall = spyCall;
module.exports = spy;

},{"./behavior":3,"./call":4,"./spy-formatters":13,"./util/core/extend":21,"./util/core/format":22,"./util/core/function-to-string":23,"./util/core/get-property-descriptor":25,"./util/core/is-es-module":26,"./util/core/wrap-method":33,"@sinonjs/commons":39,"@sinonjs/samsam":65}],15:[function(require,module,exports){
"use strict";

var getPropertyDescriptor = require("./util/core/get-property-descriptor");
var walk = require("./util/core/walk");

function stubEntireObject(stub, object) {
    walk(object || {}, function(prop, propOwner) {
        // we don't want to stub things like toString(), valueOf(), etc. so we only stub if the object
        // is not Object.prototype
        if (
            propOwner !== Object.prototype &&
            prop !== "constructor" &&
            typeof getPropertyDescriptor(propOwner, prop).value === "function"
        ) {
            stub(object, prop);
        }
    });

    return object;
}

module.exports = stubEntireObject;

},{"./util/core/get-property-descriptor":25,"./util/core/walk":32}],16:[function(require,module,exports){
"use strict";

var arrayProto = require("@sinonjs/commons").prototypes.array;
var behavior = require("./behavior");
var behaviors = require("./default-behaviors");
var hasOwnProperty = require("@sinonjs/commons").prototypes.object.hasOwnProperty;
var isNonExistentOwnProperty = require("./util/core/is-non-existent-own-property");
var spy = require("./spy");
var extend = require("./util/core/extend");
var functionToString = require("./util/core/function-to-string");
var getPropertyDescriptor = require("./util/core/get-property-descriptor");
var isEsModule = require("./util/core/is-es-module");
var wrapMethod = require("./util/core/wrap-method");
var stubEntireObject = require("./stub-entire-object");
var throwOnFalsyObject = require("./throw-on-falsy-object");
var valueToString = require("@sinonjs/commons").valueToString;

var forEach = arrayProto.forEach;
var pop = arrayProto.pop;
var slice = arrayProto.slice;
var sort = arrayProto.sort;

function stub(object, property) {
    if (arguments.length > 2) {
        throw new TypeError("stub(obj, 'meth', fn) has been removed, see documentation");
    }

    if (isEsModule(object)) {
        throw new TypeError("ES Modules cannot be stubbed");
    }

    throwOnFalsyObject.apply(null, arguments);

    if (isNonExistentOwnProperty(object, property)) {
        throw new TypeError("Cannot stub non-existent own property " + valueToString(property));
    }

    var actualDescriptor = getPropertyDescriptor(object, property);
    var isObject = typeof object === "object" || typeof object === "function";
    var isStubbingEntireObject = typeof property === "undefined" && isObject;
    var isCreatingNewStub = !object && typeof property === "undefined";
    var isStubbingNonFuncProperty =
        isObject &&
        typeof property !== "undefined" &&
        (typeof actualDescriptor === "undefined" || typeof actualDescriptor.value !== "function") &&
        typeof descriptor === "undefined";
    var isStubbingExistingMethod =
        typeof object === "object" &&
        typeof actualDescriptor !== "undefined" &&
        typeof actualDescriptor.value === "function";
    var arity = isStubbingExistingMethod ? object[property].length : 0;

    if (isStubbingEntireObject) {
        return stubEntireObject(stub, object);
    }

    if (isCreatingNewStub) {
        return stub.create();
    }

    var s = stub.create(arity);

    extend.nonEnum(s, {
        rootObj: object,
        propName: property,
        restore: function restore() {
            if (actualDescriptor !== undefined) {
                Object.defineProperty(object, property, actualDescriptor);
                return;
            }

            delete object[property];
        }
    });

    return isStubbingNonFuncProperty ? s : wrapMethod(object, property, s);
}

stub.createStubInstance = function(constructor, overrides) {
    if (typeof constructor !== "function") {
        throw new TypeError("The constructor should be a function.");
    }

    var stubbedObject = stub(Object.create(constructor.prototype));

    forEach(Object.keys(overrides || {}), function(propertyName) {
        if (propertyName in stubbedObject) {
            var value = overrides[propertyName];
            if (value && value.createStubInstance) {
                stubbedObject[propertyName] = value;
            } else {
                stubbedObject[propertyName].returns(value);
            }
        } else {
            throw new Error("Cannot stub " + propertyName + ". Property does not exist!");
        }
    });
    return stubbedObject;
};

/*eslint-disable no-use-before-define*/
function getParentBehaviour(stubInstance) {
    return stubInstance.parent && getCurrentBehavior(stubInstance.parent);
}

function getDefaultBehavior(stubInstance) {
    return stubInstance.defaultBehavior || getParentBehaviour(stubInstance) || behavior.create(stubInstance);
}

function getCurrentBehavior(stubInstance) {
    var currentBehavior = stubInstance.behaviors[stubInstance.callCount - 1];
    return currentBehavior && currentBehavior.isPresent() ? currentBehavior : getDefaultBehavior(stubInstance);
}
/*eslint-enable no-use-before-define*/

var uuid = 0;

var proto = {
    create: function create(stubLength) {
        var functionStub = function() {
            var args = slice(arguments);
            var matchings = functionStub.matchingFakes(args);

            var fnStub =
                pop(
                    sort(matchings, function(a, b) {
                        return a.matchingArguments.length - b.matchingArguments.length;
                    })
                ) || functionStub;
            return getCurrentBehavior(fnStub).invoke(this, arguments);
        };

        var orig = functionStub;
        functionStub = spy.create(functionStub, stubLength);

        extend.nonEnum(functionStub, {
            id: "stub#" + uuid++,
            func: orig
        });

        extend(functionStub, stub);

        extend.nonEnum(functionStub, {
            instantiateFake: stub.create,
            displayName: "stub",
            toString: functionToString,

            defaultBehavior: null,
            behaviors: []
        });

        return functionStub;
    },

    resetBehavior: function() {
        var fakes = this.fakes || [];

        this.defaultBehavior = null;
        this.behaviors = [];

        delete this.returnValue;
        delete this.returnArgAt;
        delete this.throwArgAt;
        delete this.resolveArgAt;
        delete this.fakeFn;
        this.returnThis = false;
        this.resolveThis = false;

        forEach(fakes, function(fake) {
            fake.resetBehavior();
        });
    },

    resetHistory: spy.resetHistory,

    reset: function() {
        this.resetHistory();
        this.resetBehavior();
    },

    onCall: function onCall(index) {
        if (!this.behaviors[index]) {
            this.behaviors[index] = behavior.create(this);
        }

        return this.behaviors[index];
    },

    onFirstCall: function onFirstCall() {
        return this.onCall(0);
    },

    onSecondCall: function onSecondCall() {
        return this.onCall(1);
    },

    onThirdCall: function onThirdCall() {
        return this.onCall(2);
    }
};

forEach(Object.keys(behavior), function(method) {
    if (
        hasOwnProperty(behavior, method) &&
        !hasOwnProperty(proto, method) &&
        method !== "create" &&
        method !== "withArgs" &&
        method !== "invoke"
    ) {
        proto[method] = behavior.createBehavior(method);
    }
});

forEach(Object.keys(behaviors), function(method) {
    if (hasOwnProperty(behaviors, method) && !hasOwnProperty(proto, method)) {
        behavior.addBehavior(stub, method, behaviors[method]);
    }
});

extend(stub, proto);
module.exports = stub;

},{"./behavior":3,"./default-behaviors":8,"./spy":14,"./stub-entire-object":15,"./throw-on-falsy-object":17,"./util/core/extend":21,"./util/core/function-to-string":23,"./util/core/get-property-descriptor":25,"./util/core/is-es-module":26,"./util/core/is-non-existent-own-property":27,"./util/core/wrap-method":33,"@sinonjs/commons":39}],17:[function(require,module,exports){
"use strict";
var valueToString = require("@sinonjs/commons").valueToString;

function throwOnFalsyObject(object, property) {
    if (property && !object) {
        var type = object === null ? "null" : "undefined";
        throw new Error("Trying to stub property '" + valueToString(property) + "' of " + type);
    }
}

module.exports = throwOnFalsyObject;

},{"@sinonjs/commons":39}],18:[function(require,module,exports){
"use strict";

module.exports = {
    injectIntoThis: true,
    injectInto: null,
    properties: ["spy""stub""mock""clock""server""requests"],
    useFakeTimers: true,
    useFakeServer: true
};

},{}],19:[function(require,module,exports){
/* eslint-disable no-console */
"use strict";

// wrap returns a function that will invoke the supplied function and print a deprecation warning to the console each
// time it is called.
exports.wrap = function(func, msg) {
    var wrapped = function() {
        exports.printWarning(msg);
        return func.apply(this, arguments);
    };
    if (func.prototype) {
        wrapped.prototype = func.prototype;
    }
    return wrapped;
};

// defaultMsg returns a string which can be supplied to `wrap()` to notify the user that a particular part of the
// sinon API has been deprecated.
/* istanbul ignore next */
exports.defaultMsg = function(funcName) {
    return "sinon." + funcName + " is deprecated and will be removed from the public API in a future version of sinon.";
};

exports.printWarning = function(msg) {
    // Watch out for IE7 and below! :(
    if (typeof console !== "undefined") {
        /* istanbul ignore else */
        if (console.info) {
            console.info(msg);
        } else {
            console.log(msg);
        }
    }
};

},{}],20:[function(require,module,exports){
"use strict";

var arrayProto = require("@sinonjs/commons").prototypes.array;
var reduce = arrayProto.reduce;

module.exports = function exportAsyncBehaviors(behaviorMethods) {
    return reduce(
        Object.keys(behaviorMethods),
        function(acc, method) {
            // need to avoid creating another async versions of the newly added async methods
            if (method.match(/^(callsArg|yields)/) && !method.match(/Async/)) {
                acc[method + "Async"] = function() {
                    var result = behaviorMethods[method].apply(this, arguments);
                    this.callbackAsync = true;
                    return result;
                };
            }
            return acc;
        },
        {}
    );
};

},{"@sinonjs/commons":39}],21:[function(require,module,exports){
"use strict";

var arrayProto = require("@sinonjs/commons").prototypes.array;
var hasOwnProperty = require("@sinonjs/commons").prototypes.object.hasOwnProperty;

var join = arrayProto.join;
var push = arrayProto.push;
var slice = arrayProto.slice;

// Adapted from https://developer.mozilla.org/en/docs/ECMAScript_DontEnum_attribute#JScript_DontEnum_Bug
var hasDontEnumBug = (function() {
    var obj = {
        constructor: function() {
            return "0";
        },
        toString: function() {
            return "1";
        },
        valueOf: function() {
            return "2";
        },
        toLocaleString: function() {
            return "3";
        },
        prototype: function() {
            return "4";
        },
        isPrototypeOf: function() {
            return "5";
        },
        propertyIsEnumerable: function() {
            return "6";
        },
        hasOwnProperty: function() {
            return "7";
        },
        length: function() {
            return "8";
        },
        unique: function() {
            return "9";
        }
    };

    var result = [];
    for (var prop in obj) {
        if (hasOwnProperty(obj, prop)) {
            push(result, obj[prop]());
        }
    }
    return join(result, "") !== "0123456789";
})();

function extendCommon(target, sources, doCopy) {
    var source, i, prop;

    for (i = 0; i < sources.length; i++) {
        source = sources[i];

        for (prop in source) {
            if (hasOwnProperty(source, prop)) {
                doCopy(target, source, prop);
            }
        }

        // Make sure we copy (own) toString method even when in JScript with DontEnum bug
        // See https://developer.mozilla.org/en/docs/ECMAScript_DontEnum_attribute#JScript_DontEnum_Bug
        if (hasDontEnumBug && hasOwnProperty(source, "toString") && source.toString !== target.toString) {
            target.toString = source.toString;
        }
    }

    return target;
}

/** Public: Extend target in place with all (own) properties from sources in-order. Thus, last source will
 *         override properties in previous sources.
 *
 * @arg {Object} target - The Object to extend
 * @arg {Object[]} sources - Objects to copy properties from.
 *
 * @returns {Object} the extended target
 */
module.exports = function extend(target /*, sources */) {
    var sources = slice(arguments, 1);

    return extendCommon(target, sources, function copyValue(dest, source, prop) {
        dest[prop] = source[prop];
    });
};

/** Public: Extend target in place with all (own) properties from sources in-order. Thus, last source will
 *         override properties in previous sources. Define the properties as non enumerable.
 *
 * @arg {Object} target - The Object to extend
 * @arg {Object[]} sources - Objects to copy properties from.
 *
 * @returns {Object} the extended target
 */
module.exports.nonEnum = function extendNonEnum(target /*, sources */) {
    var sources = slice(arguments, 1);

    return extendCommon(target, sources, function copyProperty(dest, source, prop) {
        Object.defineProperty(dest, prop, {
            value: source[prop],
            enumerable: false,
            configurable: true,
            writable: true
        });
    });
};

},{"@sinonjs/commons":39}],22:[function(require,module,exports){
"use strict";

var formatio = require("@sinonjs/formatio");

var formatter = formatio.configure({
    quoteStrings: false,
    limitChildrenCount: 250
});

var customFormatter;

function format() {
    if (customFormatter) {
        return customFormatter.apply(null, arguments);
    }

    return formatter.ascii.apply(formatter, arguments);
}

format.setFormatter = function(aCustomFormatter) {
    if (typeof aCustomFormatter !== "function") {
        throw new Error("format.setFormatter must be called with a function");
    }

    customFormatter = aCustomFormatter;
};

module.exports = format;

},{"@sinonjs/formatio":49}],23:[function(require,module,exports){
"use strict";

module.exports = function toString() {
    var i, prop, thisValue;
    if (this.getCall && this.callCount) {
        i = this.callCount;

        while (i--) {
            thisValue = this.getCall(i).thisValue;

            for (prop in thisValue) {
                if (thisValue[prop] === this) {
                    return prop;
                }
            }
        }
    }

    return this.displayName || "sinon fake";
};

},{}],24:[function(require,module,exports){
"use strict";

/* istanbul ignore next : not testing that setTimeout works */
function nextTick(callback) {
    setTimeout(callback, 0);
}

module.exports = function getNextTick(process, setImmediate) {
    if (typeof process === "object" && typeof process.nextTick === "function") {
        return process.nextTick;
    }

    if (typeof setImmediate === "function") {
        return setImmediate;
    }

    return nextTick;
};

},{}],25:[function(require,module,exports){
"use strict";

module.exports = function getPropertyDescriptor(object, property) {
    var proto = object;
    var descriptor;

    while (proto && !(descriptor = Object.getOwnPropertyDescriptor(proto, property))) {
        proto = Object.getPrototypeOf(proto);
    }
    return descriptor;
};

},{}],26:[function(require,module,exports){
"use strict";

/**
 * Verify if an object is a ECMAScript Module
 *
 * As the exports from a module is immutable we cannot alter the exports
 * using spies or stubs. Let the consumer know this to avoid bug reports
 * on weird error messages.
 *
 * @param {Object} object The object to examine
 *
 * @returns {Boolean} true when the object is a module
 */
module.exports = function(object) {
    return (
        object && typeof Symbol !== "undefined" && object[Symbol.toStringTag] === "Module" && Object.isSealed(object)
    );
};

},{}],27:[function(require,module,exports){
"use strict";

function isNonExistentOwnProperty(object, property) {
    return object && typeof property !== "undefined" && !(property in object);
}

module.exports = isNonExistentOwnProperty;

},{}],28:[function(require,module,exports){
"use strict";

var getPropertyDescriptor = require("./get-property-descriptor");

function isPropertyConfigurable(obj, propName) {
    var propertyDescriptor = getPropertyDescriptor(obj, propName);

    return propertyDescriptor ? propertyDescriptor.configurable : true;
}

module.exports = isPropertyConfigurable;

},{"./get-property-descriptor":25}],29:[function(require,module,exports){
(function (global){
"use strict";

var getNextTick = require("./get-next-tick");

/* istanbul ignore next */
var root = typeof window !== "undefined" ? window : global;

module.exports = getNextTick(root.process, root.setImmediate);

}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})

},{"./get-next-tick":24}],30:[function(require,module,exports){
"use strict";

var array = [null, "once""twice""thrice"];

module.exports = function timesInWords(count) {
    return array[count] || (count || 0) + " times";
};

},{}],31:[function(require,module,exports){
"use strict";

var forEach = Array.prototype.forEach;

function usePromiseLibrary(library, fakes) {
    if (typeof library === "undefined") {
        return;
    }

    if (Array.isArray(fakes)) {
        forEach.call(fakes, usePromiseLibrary.bind(null, library));

        return;
    }

    if (typeof fakes.usingPromise === "function") {
        fakes.usingPromise(library);
    }
}

module.exports = usePromiseLibrary;

},{}],32:[function(require,module,exports){
"use strict";

var forEach = require("@sinonjs/commons").prototypes.array.forEach;

function walkInternal(obj, iterator, context, originalObj, seen) {
    var proto, prop;

    if (typeof Object.getOwnPropertyNames !== "function") {
        // We explicitly want to enumerate through all of the prototype's properties
        // in this case, therefore we deliberately leave out an own property check.
        /* eslint-disable-next-line guard-for-in */
        for (prop in obj) {
            iterator.call(context, obj[prop], prop, obj);
        }

        return;
    }

    forEach(Object.getOwnPropertyNames(obj), function(k) {
        if (seen[k] !== true) {
            seen[k] = true;
            var target = typeof Object.getOwnPropertyDescriptor(obj, k).get === "function" ? originalObj : obj;
            iterator.call(context, k, target);
        }
    });

    proto = Object.getPrototypeOf(obj);
    if (proto) {
        walkInternal(proto, iterator, context, originalObj, seen);
    }
}

/* Walks the prototype chain of an object and iterates over every own property
 * name encountered. The iterator is called in the same fashion that Array.prototype.forEach
 * works, where it is passed the value, key, and own object as the 1st, 2nd, and 3rd positional
 * argument, respectively. In cases where Object.getOwnPropertyNames is not available, walk will
 * default to using a simple for..in loop.
 *
 * obj - The object to walk the prototype chain for.
 * iterator - The function to be called on each pass of the walk.
 * context - (Optional) When given, the iterator will be called with this object as the receiver.
 */
module.exports = function walk(obj, iterator, context) {
    return walkInternal(obj, iterator, context, obj, {});
};

},{"@sinonjs/commons":39}],33:[function(require,module,exports){
"use strict";

var getPropertyDescriptor = require("./get-property-descriptor");
var extend = require("./extend");
var hasOwnProperty = require("@sinonjs/commons").prototypes.object.hasOwnProperty;
var valueToString = require("@sinonjs/commons").valueToString;

function isFunction(obj) {
    return typeof obj === "function" || Boolean(obj && obj.constructor && obj.call && obj.apply);
}

function mirrorProperties(target, source) {
    for (var prop in source) {
        if (!hasOwnProperty(target, prop)) {
            target[prop] = source[prop];
        }
    }
}

// Cheap way to detect if we have ES5 support.
var hasES5Support = "keys" in Object;

module.exports = function wrapMethod(object, property, method) {
    if (!object) {
        throw new TypeError("Should wrap property of object");
    }

    if (typeof method !== "function" && typeof method !== "object") {
        throw new TypeError("Method wrapper should be a function or a property descriptor");
    }

    function checkWrappedMethod(wrappedMethod) {
        var error;

        if (!isFunction(wrappedMethod)) {
            error = new TypeError(
                "Attempted to wrap " + typeof wrappedMethod + " property " + valueToString(property) + " as function"
            );
        } else if (wrappedMethod.restore && wrappedMethod.restore.sinon) {
            error = new TypeError("Attempted to wrap " + valueToString(property) + " which is already wrapped");
        } else if (wrappedMethod.calledBefore) {
            var verb = wrappedMethod.returns ? "stubbed" : "spied on";
            error = new TypeError("Attempted to wrap " + valueToString(property) + " which is already " + verb);
        }

        if (error) {
            if (wrappedMethod && wrappedMethod.stackTraceError) {
                error.stack += "\n--------------\n" + wrappedMethod.stackTraceError.stack;
            }
            throw error;
        }
    }

    var error, wrappedMethod, i, wrappedMethodDesc;

    function simplePropertyAssignment() {
        wrappedMethod = object[property];
        checkWrappedMethod(wrappedMethod);
        object[property] = method;
        method.displayName = property;
    }

    // Firefox has a problem when using hasOwn.call on objects from other frames.
    /* eslint-disable-next-line local-rules/no-prototype-methods */
    var owned = object.hasOwnProperty ? object.hasOwnProperty(property) : hasOwnProperty(object, property);

    if (hasES5Support) {
        var methodDesc = typeof method === "function" ? { value: method } : method;
        wrappedMethodDesc = getPropertyDescriptor(object, property);

        if (!wrappedMethodDesc) {
            error = new TypeError(
                "Attempted to wrap " + typeof wrappedMethod + " property " + property + " as function"
            );
        } else if (wrappedMethodDesc.restore && wrappedMethodDesc.restore.sinon) {
            error = new TypeError("Attempted to wrap " + property + " which is already wrapped");
        }
        if (error) {
            if (wrappedMethodDesc && wrappedMethodDesc.stackTraceError) {
                error.stack += "\n--------------\n" + wrappedMethodDesc.stackTraceError.stack;
            }
            throw error;
        }

        var types = Object.keys(methodDesc);
        for (i = 0; i < types.length; i++) {
            wrappedMethod = wrappedMethodDesc[types[i]];
            checkWrappedMethod(wrappedMethod);
        }

        mirrorProperties(methodDesc, wrappedMethodDesc);
        for (i = 0; i < types.length; i++) {
            mirrorProperties(methodDesc[types[i]], wrappedMethodDesc[types[i]]);
        }
        Object.defineProperty(object, property, methodDesc);

        // catch failing assignment
        // this is the converse of the check in `.restore` below
        if (typeof method === "function" && object[property] !== method) {
            // correct any wrongdoings caused by the defineProperty call above,
            // such as adding new items (if object was a Storage object)
            delete object[property];
            simplePropertyAssignment();
        }
    } else {
        simplePropertyAssignment();
    }

    extend.nonEnum(method, {
        displayName: property,

        // Set up an Error object for a stack trace which can be used later to find what line of
        // code the original method was created on.
        stackTraceError: new Error("Stack Trace for original"),

        restore: function() {
            // For prototype properties try to reset by delete first.
            // If this fails (ex: localStorage on mobile safari) then force a reset
            // via direct assignment.
            if (!owned) {
                // In some cases `delete` may throw an error
                try {
                    delete object[property];
                } catch (e) {} // eslint-disable-line no-empty
                // For native code functions `delete` fails without throwing an error
                // on Chrome < 43, PhantomJS, etc.
            } else if (hasES5Support) {
                Object.defineProperty(object, property, wrappedMethodDesc);
            }

            if (hasES5Support) {
                var descriptor = getPropertyDescriptor(object, property);
                if (descriptor && descriptor.value === method) {
                    object[property] = wrappedMethod;
                }
            } else {
                // Use strict equality comparison to check failures then force a reset
                // via direct assignment.
                if (object[property] === method) {
                    object[property] = wrappedMethod;
                }
            }
        }
    });

    method.wrappedMethod = wrappedMethod;

    method.restore.sinon = true;

    if (!hasES5Support) {
        mirrorProperties(method, wrappedMethod);
    }

    return method;
};

},{"./extend":21,"./get-property-descriptor":25,"@sinonjs/commons":39}],34:[function(require,module,exports){
"use strict";

var extend = require("./core/extend");
var llx = require("lolex");

function createClock(config, globalCtx) {
    var llxCtx = llx;
    if (globalCtx !== null && typeof globalCtx === "object") {
        llxCtx = llx.withGlobal(globalCtx);
    }
    var clock = llxCtx.install(config);
    clock.restore = clock.uninstall;
    return clock;
}

/**
 * @param {number|Date|Object} dateOrConfig The unix epoch value to install with (default 0)
 * @returns {Object} Returns a lolex clock instance
 */
exports.useFakeTimers = function(dateOrConfig) {
    var hasArguments = typeof dateOrConfig !== "undefined";
    var argumentIsDateLike =
        (typeof dateOrConfig === "number" || dateOrConfig instanceof Date) && arguments.length === 1;
    var argumentIsObject = dateOrConfig !== null && typeof dateOrConfig === "object" && arguments.length === 1;

    if (!hasArguments) {
        return createClock({
            now: 0
        });
    }

    if (argumentIsDateLike) {
        return createClock({
            now: dateOrConfig
        });
    }

    if (argumentIsObject) {
        var config = extend.nonEnum({}, dateOrConfig);
        var globalCtx = config.global;
        delete config.global;
        return createClock(config, globalCtx);
    }

    throw new TypeError("useFakeTimers expected epoch or config object. See https://github.com/sinonjs/sinon");
};

exports.clock = {
    create: function(now) {
        return llx.createClock(now);
    }
};

exports.timers = {
    setTimeout: setTimeout,
    clearTimeout: clearTimeout,
    setImmediate: typeof setImmediate !== "undefined" ? setImmediate : undefined,
    clearImmediate: typeof clearImmediate !== "undefined" ? clearImmediate : undefined,
    setInterval: setInterval,
    clearInterval: clearInterval,
    Date: Date
};

},{"./core/extend":21,"lolex":73}],35:[function(require,module,exports){
"use strict";

var every = require("./prototypes/array").every;

function hasCallsLeft(callMap, spy) {
    if (callMap[spy.id] === undefined) {
        callMap[spy.id] = 0;
    }

    return callMap[spy.id] < spy.callCount;
}

function checkAdjacentCalls(callMap, spy, index, spies) {
    var calledBeforeNext = true;

    if (index !== spies.length - 1) {
        calledBeforeNext = spy.calledBefore(spies[index + 1]);
    }

    if (hasCallsLeft(callMap, spy) && calledBeforeNext) {
        callMap[spy.id] += 1;
        return true;
    }

    return false;
}

module.exports = function calledInOrder(spies) {
    var callMap = {};
    // eslint-disable-next-line no-underscore-dangle
    var _spies = arguments.length > 1 ? arguments : spies;

    return every(_spies, checkAdjacentCalls.bind(null, callMap));
};

},{"./prototypes/array":41}],36:[function(require,module,exports){
"use strict";

var functionName = require("./function-name");

module.exports = function className(value) {
    return (
        (value.constructor && value.constructor.name) ||
        // The next branch is for IE11 support only:
        // Because the name property is not set on the prototype
        // of the Function object, we finally try to grab the
        // name from its definition. This will never be reached
        // in node, so we are not able to test this properly.
        // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name
        (typeof value.constructor === "function" &&
            /* istanbul ignore next */
            functionName(value.constructor)) ||
        null
    );
};

},{"./function-name":38}],37:[function(require,module,exports){
"use strict";

// This is an `every` implementation that works for all iterables
module.exports = function every(obj, fn) {
    var pass = true;

    try {
        /* eslint-disable-next-line local-rules/no-prototype-methods */
        obj.forEach(function() {
            if (!fn.apply(this, arguments)) {
                // Throwing an error is the only way to break `forEach`
                throw new Error();
            }
        });
    } catch (e) {
        pass = false;
    }

    return pass;
};

},{}],38:[function(require,module,exports){
"use strict";

module.exports = function functionName(func) {
    if (!func) {
        return "";
    }

    return (
        func.displayName ||
        func.name ||
        // Use function decomposition as a last resort to get function
        // name. Does not rely on function decomposition to work - if it
        // doesn't debugging will be slightly less informative
        // (i.e. toString will say 'spy' rather than 'myFunc').
        (String(func).match(/function ([^\s(]+)/) || [])[1]
    );
};

},{}],39:[function(require,module,exports){
"use strict";

module.exports = {
    calledInOrder: require("./called-in-order"),
    className: require("./class-name"),
    every: require("./every"),
    functionName: require("./function-name"),
    orderByFirstCall: require("./order-by-first-call"),
    prototypes: require("./prototypes"),
    typeOf: require("./type-of"),
    valueToString: require("./value-to-string")
};

},{"./called-in-order":35,"./class-name":36,"./every":37,"./function-name":38,"./order-by-first-call":40,"./prototypes":44,"./type-of":47,"./value-to-string":48}],40:[function(require,module,exports){
"use strict";

var sort = require("./prototypes/array").sort;
var slice = require("./prototypes/array").slice;

function comparator(a, b) {
    // uuid, won't ever be equal
    var aCall = a.getCall(0);
    var bCall = b.getCall(0);
    var aId = (aCall && aCall.callId) || -1;
    var bId = (bCall && bCall.callId) || -1;

    return aId < bId ? -1 : 1;
}

module.exports = function orderByFirstCall(spies) {
    return sort(slice(spies), comparator);
};

},{"./prototypes/array":41}],41:[function(require,module,exports){
"use strict";

var copyPrototype = require("./copy-prototype");

module.exports = copyPrototype(Array.prototype);

},{"./copy-prototype":42}],42:[function(require,module,exports){
"use strict";

var call = Function.call;

module.exports = function copyPrototypeMethods(prototype) {
    /* eslint-disable local-rules/no-prototype-methods */
    return Object.getOwnPropertyNames(prototype).reduce(function(result, name) {
        // ignore size because it throws from Map
        if (
            name !== "size" &&
            name !== "caller" &&
            name !== "callee" &&
            name !== "arguments" &&
            typeof prototype[name] === "function"
        ) {
            result[name] = call.bind(prototype[name]);
        }

        return result;
    }, Object.create(null));
};

},{}],43:[function(require,module,exports){
"use strict";

var copyPrototype = require("./copy-prototype");

module.exports = copyPrototype(Function.prototype);

},{"./copy-prototype":42}],44:[function(require,module,exports){
"use strict";

module.exports = {
    array: require("./array"),
    function: require("./function"),
    object: require("./object"),
    string: require("./string")
};

},{"./array":41,"./function":43,"./object":45,"./string":46}],45:[function(require,module,exports){
"use strict";

var copyPrototype = require("./copy-prototype");

module.exports = copyPrototype(Object.prototype);

},{"./copy-prototype":42}],46:[function(require,module,exports){
"use strict";

var copyPrototype = require("./copy-prototype");

module.exports = copyPrototype(String.prototype);

},{"./copy-prototype":42}],47:[function(require,module,exports){
"use strict";

var type = require("type-detect");

module.exports = function typeOf(value) {
    return type(value).toLowerCase();
};

},{"type-detect":89}],48:[function(require,module,exports){
"use strict";

function valueToString(value) {
    if (value && value.toString) {
        /* eslint-disable-next-line local-rules/no-prototype-methods */
        return value.toString();
    }
    return String(value);
}

module.exports = valueToString;

},{}],49:[function(require,module,exports){
(function (global){
"use strict";

var samsam = require("@sinonjs/samsam");
var functionName = require("@sinonjs/commons").functionName;
var typeOf = require("@sinonjs/commons").typeOf;

var formatio = {
    excludeConstructors: ["Object", /^.$/],
    quoteStrings: true,
    limitChildrenCount: 0
};

var specialObjects = [];
if (typeof global !== "undefined") {
    specialObjects.push({ object: global, value: "[object global]" });
}
if (typeof document !== "undefined") {
    specialObjects.push({
        object: document,
        value: "[object HTMLDocument]"
    });
}
if (typeof window !== "undefined") {
    specialObjects.push({ object: window, value: "[object Window]" });
}

function constructorName(f, object) {
    var name = functionName(object && object.constructor);
    var excludes = f.excludeConstructors ||
            formatio.excludeConstructors || [];

    var i, l;
    for (i = 0, l = excludes.length; i < l; ++i) {
        if (typeof excludes[i] === "string" && excludes[i] === name) {
            return "";
        } else if (excludes[i].test && excludes[i].test(name)) {
            return "";
        }
    }

    return name;
}

function isCircular(object, objects) {
    if (typeof object !== "object") { return false; }
    var i, l;
    for (i = 0, l = objects.length; i < l; ++i) {
        if (objects[i] === object) { return true; }
    }
    return false;
}

function ascii(f, object, processed, indent) {
    if (typeof object === "string") {
        if (object.length === 0) { return "(empty string)"; }
        var qs = f.quoteStrings;
        var quote = typeof qs !== "boolean" || qs;
        return processed || quote ? "\"" + object + "\"" : object;
    }

    if (typeof object === "symbol") {
        return object.toString();
    }

    if (typeof object === "function" && !(object instanceof RegExp)) {
        return ascii.func(object);
    }

    processed = processed || [];

    if (isCircular(object, processed)) { return "[Circular]"; }

    if (typeOf(object) === "array") {
        return ascii.array.call(f, object, processed);
    }

    if (!object) { return String((1 / object) === -Infinity ? "-0" : object); }
    if (samsam.isElement(object)) { return ascii.element(object); }

    if (typeof object.toString === "function" &&
            object.toString !== Object.prototype.toString) {
        return object.toString();
    }

    var i, l;
    for (i = 0, l = specialObjects.length; i < l; i++) {
        if (object === specialObjects[i].object) {
            return specialObjects[i].value;
        }
    }

    if (samsam.isSet(object)) {
        return ascii.set.call(f, object, processed);
    }

    return ascii.object.call(f, object, processed, indent);
}

ascii.func = function (func) {
    var funcName = functionName(func) || "";
    return "function " + funcName + "() {}";
};

function delimit(str, delimiters) {
    delimiters = delimiters || ["[""]"];
    return delimiters[0] + str + delimiters[1];
}

ascii.array = function (array, processed, delimiters) {
    processed = processed || [];
    processed.push(array);
    var pieces = [];
    var i, l;
    l = (this.limitChildrenCount > 0) ?
        Math.min(this.limitChildrenCount, array.length) : array.length;

    for (i = 0; i < l; ++i) {
        pieces.push(ascii(this, array[i], processed));
    }

    if (l < array.length) {
        pieces.push("[... " + (array.length - l) + " more elements]");
    }

    return delimit(pieces.join(", "), delimiters);
};

ascii.set = function (set, processed) {
    return ascii.array.call(this, Array.from(set), processed, ["Set {""}"]);
};

ascii.object = function (object, processed, indent) {
    processed = processed || [];
    processed.push(object);
    indent = indent || 0;
    var pieces = [];
    var symbols = typeof Object.getOwnPropertySymbols === "function"
        ? Object.getOwnPropertySymbols(object)
        : [];
    var properties = Object.keys(object).sort().concat(symbols);
    var length = 3;
    var prop, str, obj, i, k, l;
    l = (this.limitChildrenCount > 0) ?
        Math.min(this.limitChildrenCount, properties.length) : properties.length;

    for (i = 0; i < l; ++i) {
        prop = properties[i];
        obj = object[prop];

        if (isCircular(obj, processed)) {
            str = "[Circular]";
        } else {
            str = ascii(this, obj, processed, indent + 2);
        }

        str = (
            typeof prop === "string" && /\s/.test(prop) ?
                "\"" + prop + "\"" : prop.toString()
        ) + ": " + str;
        length += str.length;
        pieces.push(str);
    }

    var cons = constructorName(this, object);
    var prefix = cons ? "[" + cons + "] " : "";
    var is = "";
    for (i = 0, k = indent; i < k; ++i) { is += " "; }

    if (l < properties.length)
    {pieces.push("[... " + (properties.length - l) + " more elements]");}

    if (length + indent > 80) {
        return prefix + "{\n  " + is + pieces.join(",\n  " + is) + "\n" +
            is + "}";
    }
    return prefix + "{ " + pieces.join(", ") + " }";
};

ascii.element = function (element) {
    var tagName = element.tagName.toLowerCase();
    var attrs = element.attributes;
    var pairs = [];
    var attr, attrName, i, l, val;

    for (i = 0, l = attrs.length; i < l; ++i) {
        attr = attrs.item(i);
        attrName = attr.nodeName.toLowerCase().replace("html:""");
        val = attr.nodeValue;
        if (attrName !== "contenteditable" || val !== "inherit") {
            if (val) { pairs.push(attrName + "=\"" + val + "\""); }
        }
    }

    var formatted = "<" + tagName + (pairs.length > 0 ? " " : "");
    // SVG elements have undefined innerHTML
    var content = element.innerHTML || "";

    if (content.length > 20) {
        content = content.substr(020) + "[...]";
    }

    var res = formatted + pairs.join(" ") + ">" + content +
            "</" + tagName + ">";

    return res.replace(/ contentEditable="inherit"/, "");
};

function Formatio(options) {
    // eslint-disable-next-line guard-for-in
    for (var opt in options) {
        this[opt] = options[opt];
    }
}

Formatio.prototype = {
    functionName: functionName,

    configure: function (options) {
        return new Formatio(options);
    },

    constructorName: function (object) {
        return constructorName(this, object);
    },

    ascii: function (object, processed, indent) {
        return ascii(this, object, processed, indent);
    }
};

module.exports = Formatio.prototype;

}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})

},{"@sinonjs/commons":39,"@sinonjs/samsam":65}],50:[function(require,module,exports){
"use strict";

var valueToString = require("@sinonjs/commons").valueToString;

var getClass = require("./get-class");
var identical = require("./identical");
var isArguments = require("./is-arguments");
var isDate = require("./is-date");
var isElement = require("./is-element");
var isNaN = require("./is-nan");
var isObject = require("./is-object");
var isSet = require("./is-set");
var isSubset = require("./is-subset");
var getClassName = require("./get-class-name");

var every = Array.prototype.every;
var getTime = Date.prototype.getTime;
var hasOwnProperty = Object.prototype.hasOwnProperty;
var indexOf = Array.prototype.indexOf;
var keys = Object.keys;

/**
 * @name samsam.deepEqual
 * @param Object first
 * @param Object second
 *
 * Deep equal comparison. Two values are "deep equal" if:
 *
 *   - They are equal, according to samsam.identical
 *   - They are both date objects representing the same time
 *   - They are both arrays containing elements that are all deepEqual
 *   - They are objects with the same set of properties, and each property
 *     in ``first`` is deepEqual to the corresponding property in ``second``
 *
 * Supports cyclic objects.
 */
function deepEqualCyclic(first, second, match) {
    // used for cyclic comparison
    // contain already visited objects
    var objects1 = [];
    var objects2 = [];
    // contain pathes (position in the object structure)
    // of the already visited objects
    // indexes same as in objects arrays
    var paths1 = [];
    var paths2 = [];
    // contains combinations of already compared objects
    // in the manner: { "$1['ref']$2['ref']"true }
    var compared = {};

    // does the recursion for the deep equal check
    return (function deepEqual(obj1, obj2, path1, path2) {
        // If both are matchers they must be the same instance in order to be
        // considered equal If we didn't do that we would end up running one
        // matcher against the other
        if (match && match.isMatcher(obj2)) {
            if (match.isMatcher(obj1)) {
                return obj1 === obj2;
            }
            return obj2.test(obj1);
        }

        var type1 = typeof obj1;
        var type2 = typeof obj2;

        // == null also matches undefined
        if (
            obj1 === obj2 ||
            isNaN(obj1) ||
            isNaN(obj2) ||
            obj1 == null ||
            obj2 == null ||
            type1 !== "object" ||
            type2 !== "object"
        ) {
            return identical(obj1, obj2);
        }

        // Elements are only equal if identical(expected, actual)
        if (isElement(obj1) || isElement(obj2)) {
            return false;
        }

        var isDate1 = isDate(obj1);
        var isDate2 = isDate(obj2);
        if (isDate1 || isDate2) {
            if (
                !isDate1 ||
                !isDate2 ||
                getTime.call(obj1) !== getTime.call(obj2)
            ) {
                return false;
            }
        }

        if (obj1 instanceof RegExp && obj2 instanceof RegExp) {
            if (valueToString(obj1) !== valueToString(obj2)) {
                return false;
            }
        }

        if (obj1 instanceof Error && obj2 instanceof Error) {
            return obj1 === obj2;
        }

        var class1 = getClass(obj1);
        var class2 = getClass(obj2);
        var keys1 = keys(obj1);
        var keys2 = keys(obj2);
        var name1 = getClassName(obj1);
        var name2 = getClassName(obj2);

        if (isArguments(obj1) || isArguments(obj2)) {
            if (obj1.length !== obj2.length) {
                return false;
            }
        } else {
            if (
                type1 !== type2 ||
                class1 !== class2 ||
                keys1.length !== keys2.length ||
                (name1 && name2 && name1 !== name2)
            ) {
                return false;
            }
        }

        if (isSet(obj1) || isSet(obj2)) {
            if (!isSet(obj1) || !isSet(obj2) || obj1.size !== obj2.size) {
                return false;
            }

            return isSubset(obj1, obj2, deepEqual);
        }

        return every.call(keys1, function(key) {
            if (!hasOwnProperty.call(obj2, key)) {
                return false;
            }

            var value1 = obj1[key];
            var value2 = obj2[key];
            var isObject1 = isObject(value1);
            var isObject2 = isObject(value2);
            // determines, if the objects were already visited
            // (it's faster to check for isObject first, than to
            // get -1 from getIndex for non objects)
            var index1 = isObject1 ? indexOf.call(objects1, value1) : -1;
            var index2 = isObject2 ? indexOf.call(objects2, value2) : -1;
            // determines the new paths of the objects
            // - for non cyclic objects the current path will be extended
            //   by current property name
            // - for cyclic objects the stored path is taken
            var newPath1 =
                index1 !== -1
                    ? paths1[index1]
                    : path1 + "[" + JSON.stringify(key) + "]";
            var newPath2 =
                index2 !== -1
                    ? paths2[index2]
                    : path2 + "[" + JSON.stringify(key) + "]";
            var combinedPath = newPath1 + newPath2;

            // stop recursion if current objects are already compared
            if (compared[combinedPath]) {
                return true;
            }

            // remember the current objects and their paths
            if (index1 === -1 && isObject1) {
                objects1.push(value1);
                paths1.push(newPath1);
            }
            if (index2 === -1 && isObject2) {
                objects2.push(value2);
                paths2.push(newPath2);
            }

            // remember that the current objects are already compared
            if (isObject1 && isObject2) {
                compared[combinedPath] = true;
            }

            // End of cyclic logic

            // neither value1 nor value2 is a cycle
            // continue with next level
            return deepEqual(value1, value2, newPath1, newPath2);
        });
    })(first, second, "$1""$2");
}

deepEqualCyclic.use = function(match) {
    return function(a, b) {
        return deepEqualCyclic(a, b, match);
    };
};

module.exports = deepEqualCyclic;

},{"./get-class":52,"./get-class-name":51,"./identical":53,"./is-arguments":54,"./is-date":55,"./is-element":56,"./is-nan":57,"./is-object":59,"./is-set":60,"./is-subset":61,"@sinonjs/commons":39}],51:[function(require,module,exports){
"use strict";

var valueToString = require("@sinonjs/commons").valueToString;

var re = /function (\w+)\s*\(/;

function getClassName(value) {
    if (value.constructor && "name" in value.constructor) {
        return value.constructor.name;
    }

    if (typeof value.constructor === "function") {
        var match = valueToString(value.constructor).match(re);
        if (match.length > 1) {
            return match[1];
        }
    }

    return null;
}

module.exports = getClassName;

},{"@sinonjs/commons":39}],52:[function(require,module,exports){
"use strict";

var o = Object.prototype;

function getClass(value) {
    // Returns the internal [[Class]] by calling Object.prototype.toString
    // with the provided value as this. Return value is a string, naming the
    // internal class, e.g. "Array"
    return o.toString.call(value).split(/[ \]]/)[1];
}

module.exports = getClass;

},{}],53:[function(require,module,exports){
"use strict";

var isNaN = require("./is-nan");
var isNegZero = require("./is-neg-zero");

/**
 * @name samsam.equal
 * @param Object obj1
 * @param Object obj2
 *
 * Returns ``true`` if two objects are strictly equal. Compared to
 * ``===`` there are two exceptions:
 *
 *   - NaN is considered equal to NaN
 *   - -0 and +0 are not considered equal
 */
function identical(obj1, obj2) {
    if (obj1 === obj2 || (isNaN(obj1) && isNaN(obj2))) {
        return obj1 !== 0 || isNegZero(obj1) === isNegZero(obj2);
    }

    return false;
}

module.exports = identical;

},{"./is-nan":57,"./is-neg-zero":58}],54:[function(require,module,exports){
"use strict";

var getClass = require("./get-class");

/**
 * @name samsam.isArguments
 * @param Object object
 *
 * Returns ``true`` if ``object`` is an ``arguments`` object,
 * ``false`` otherwise.
 */
function isArguments(object) {
    if (getClass(object) === "Arguments") {
        return true;
    }
    if (
        typeof object !== "object" ||
        typeof object.length !== "number" ||
        getClass(object) === "Array"
    ) {
        return false;
    }
    if (typeof object.callee === "function") {
        return true;
    }
    try {
        object[object.length] = 6;
        delete object[object.length];
    } catch (e) {
        return true;
    }
    return false;
}

module.exports = isArguments;

},{"./get-class":52}],55:[function(require,module,exports){
"use strict";

function isDate(value) {
    return value instanceof Date;
}

module.exports = isDate;

},{}],56:[function(require,module,exports){
"use strict";

var div = typeof document !== "undefined" && document.createElement("div");

/**
 * @name samsam.isElement
 * @param Object object
 *
 * Returns ``true`` if ``object`` is a DOM element node. Unlike
 * Underscore.js/lodash, this function will return ``false`` if ``object``
 * is an *element-like* object, i.e. a regular object with a ``nodeType``
 * property that holds the value ``1``.
 */
function isElement(object) {
    if (!object || object.nodeType !== 1 || !div) {
        return false;
    }
    try {
        object.appendChild(div);
        object.removeChild(div);
    } catch (e) {
        return false;
    }
    return true;
}

module.exports = isElement;

},{}],57:[function(require,module,exports){
"use strict";

function isNaN(value) {
    // Unlike global isNaN, this avoids type coercion
    // typeof check avoids IE host object issues, hat tip to
    // lodash
    var val = value; // JsLint thinks value !== value is "weird"
    return typeof value === "number" && value !== val;
}

module.exports = isNaN;

},{}],58:[function(require,module,exports){
"use strict";

/**
 * @name samsam.isNegZero
 * @param Object value
 *
 * Returns ``true`` if ``value`` is ``-0``.
 */
function isNegZero(value) {
    return value === 0 && 1 / value === -Infinity;
}

module.exports = isNegZero;

},{}],59:[function(require,module,exports){
"use strict";

// Returns true when the value is a regular Object and not a specialized Object
//
// This helps speeding up deepEqual cyclic checks
// The premise is that only Objects are stored in the visited array.
// So if this function returns false, we don't have to do the
// expensive operation of searching for the value in the the array of already
// visited objects
function isObject(value) {
    return (
        typeof value === "object" &&
        value !== null &&
        // none of these are collection objects, so we can return false
        !(value instanceof Boolean) &&
        !(value instanceof Date) &&
        !(value instanceof Error) &&
        !(value instanceof Number) &&
        !(value instanceof RegExp) &&
        !(value instanceof String)
    );
}

module.exports = isObject;

},{}],60:[function(require,module,exports){
"use strict";

function isSet(val) {
    return (typeof Set !== "undefined" && val instanceof Set) || false;
}

module.exports = isSet;

},{}],61:[function(require,module,exports){
"use strict";

function isSubset(s1, s2, compare) {
    var allContained = true;
    s1.forEach(function(v1) {
        var includes = false;
        s2.forEach(function(v2) {
            if (compare(v2, v1)) {
                includes = true;
            }
        });
        allContained = allContained && includes;
    });

    return allContained;
}

module.exports = isSubset;

},{}],62:[function(require,module,exports){
"use strict";

var slice = require("@sinonjs/commons").prototypes.string.slice;
var typeOf = require("@sinonjs/commons").typeOf;
var valueToString = require("@sinonjs/commons").valueToString;

module.exports = function iterableToString(obj) {
    var representation = "";

    function stringify(item) {
        return typeof item === "string"
            ? "'" + item + "'"
            : valueToString(item);
    }

    function mapToString(map) {
        /* eslint-disable-next-line local-rules/no-prototype-methods */
        map.forEach(function(value, key) {
            representation +=
                "[" + stringify(key) + "," + stringify(value) + "],";
        });

        representation = slice(representation, 0, -1);
        return representation;
    }

    function genericIterableToString(iterable) {
        /* eslint-disable-next-line local-rules/no-prototype-methods */
        iterable.forEach(function(value) {
            representation += stringify(value) + ",";
        });

        representation = slice(representation, 0, -1);
        return representation;
    }

    if (typeOf(obj) === "map") {
        return mapToString(obj);
    }

    return genericIterableToString(obj);
};

},{"@sinonjs/commons":39}],63:[function(require,module,exports){
"use strict";

var valueToString = require("@sinonjs/commons").valueToString;

var deepEqual = require("./deep-equal").use(match); // eslint-disable-line no-use-before-define
var getClass = require("./get-class");
var isDate = require("./is-date");
var isSet = require("./is-set");
var isSubset = require("./is-subset");
var createMatcher = require("./matcher");

function arrayContains(array, subset, compare) {
    if (subset.length === 0) {
        return true;
    }
    var i, l, j, k;
    for (i = 0, l = array.length; i < l; ++i) {
        if (compare(array[i], subset[0])) {
            for (j = 0, k = subset.length; j < k; ++j) {
                if (i + j >= l) {
                    return false;
                }
                if (!compare(array[i + j], subset[j])) {
                    return false;
                }
            }
            return true;
        }
    }
    return false;
}

/**
 * @name samsam.match
 * @param Object object
 * @param Object matcher
 *
 * Compare arbitrary value ``object`` with matcher.
 */
function match(object, matcher) {
    if (matcher && typeof matcher.test === "function") {
        return matcher.test(object);
    }

    if (typeof matcher === "function") {
        return matcher(object) === true;
    }

    if (typeof matcher === "string") {
        matcher = matcher.toLowerCase();
        var notNull = typeof object === "string" || !!object;
        return (
            notNull &&
            valueToString(object)
                .toLowerCase()
                .indexOf(matcher) >= 0
        );
    }

    if (typeof matcher === "number") {
        return matcher === object;
    }

    if (typeof matcher === "boolean") {
        return matcher === object;
    }

    if (typeof matcher === "undefined") {
        return typeof object === "undefined";
    }

    if (matcher === null) {
        return object === null;
    }

    if (object === null) {
        return false;
    }

    if (isSet(object)) {
        return isSubset(matcher, object, match);
    }

    if (getClass(object) === "Array" && getClass(matcher) === "Array") {
        return arrayContains(object, matcher, match);
    }

    if (isDate(matcher)) {
        return isDate(object) && object.getTime() === matcher.getTime();
    }

    if (matcher && typeof matcher === "object") {
        if (matcher === object) {
            return true;
        }
        if (typeof object !== "object") {
            return false;
        }
        var prop;
        // eslint-disable-next-line guard-for-in
        for (prop in matcher) {
            var value = object[prop];
            if (
                typeof value === "undefined" &&
                typeof object.getAttribute === "function"
            ) {
                value = object.getAttribute(prop);
            }
            if (
                matcher[prop] === null ||
                typeof matcher[prop] === "undefined"
            ) {
                if (value !== matcher[prop]) {
                    return false;
                }
            } else if (
                typeof value === "undefined" ||
                !deepEqual(value, matcher[prop])
            ) {
                return false;
            }
        }
        return true;
    }

    throw new Error(
        "Matcher was not a string, a number, a " +
            "function, a boolean or an object"
    );
}

Object.keys(createMatcher).forEach(function(key) {
    match[key] = createMatcher[key];
});

module.exports = match;

},{"./deep-equal":50,"./get-class":52,"./is-date":55,"./is-set":60,"./is-subset":61,"./matcher":64,"@sinonjs/commons":39}],64:[function(require,module,exports){
"use strict";

var arrayProto = require("@sinonjs/commons").prototypes.array;
var deepEqual = require("./deep-equal").use(match); // eslint-disable-line no-use-before-define
var every = require("@sinonjs/commons").every;
var functionName = require("@sinonjs/commons").functionName;
var get = require("lodash").get;
var iterableToString = require("./iterable-to-string");
var objectProto = require("@sinonjs/commons").prototypes.object;
var stringProto = require("@sinonjs/commons").prototypes.string;
var typeOf = require("@sinonjs/commons").typeOf;
var valueToString = require("@sinonjs/commons").valueToString;

var arrayIndexOf = arrayProto.indexOf;
var arrayEvery = arrayProto.every;
var join = arrayProto.join;
var map = arrayProto.map;
var some = arrayProto.some;

var hasOwnProperty = objectProto.hasOwnProperty;
var isPrototypeOf = objectProto.isPrototypeOf;

var stringIndexOf = stringProto.indexOf;

function assertType(value, type, name) {
    var actual = typeOf(value);
    if (actual !== type) {
        throw new TypeError(
            "Expected type of " +
                name +
                " to be " +
                type +
                ", but was " +
                actual
        );
    }
}

function assertMethodExists(value, method, name, methodPath) {
    if (value[method] == null) {
        throw new TypeError(
            "Expected " + name + " to have method " + methodPath
        );
    }
}

var matcher = {
    toString: function() {
        return this.message;
    }
};

function isMatcher(object) {
    return isPrototypeOf(matcher, object);
}

function matchObject(actual, expectation) {
    if (actual === null || actual === undefined) {
        return false;
    }

    return arrayEvery(Object.keys(expectation), function(key) {
        var exp = expectation[key];
        var act = actual[key];

        if (isMatcher(exp)) {
            if (!exp.test(act)) {
                return false;
            }
        } else if (typeOf(exp) === "object") {
            if (!matchObject(act, exp)) {
                return false;
            }
        } else if (!deepEqual(act, exp)) {
            return false;
        }

        return true;
    });
}

var TYPE_MAP = {
    function: function(m, expectation, message) {
        m.test = expectation;
        m.message = message || "match(" + functionName(expectation) + ")";
    },
    number: function(m, expectation) {
        m.test = function(actual) {
            // we need type coercion here
            return expectation == actual; // eslint-disable-line eqeqeq
        };
    },
    object: function(m, expectation) {
        var array = [];

        if (typeof expectation.test === "function") {
            m.test = function(actual) {
                return expectation.test(actual) === true;
            };
            m.message = "match(" + functionName(expectation.test) + ")";
            return m;
        }

        array = map(Object.keys(expectation), function(key) {
            return key + ": " + valueToString(expectation[key]);
        });

        m.test = function(actual) {
            return matchObject(actual, expectation);
        };
        m.message = "match(" + join(array, ", ") + ")";

        return m;
    },
    regexp: function(m, expectation) {
        m.test = function(actual) {
            return typeof actual === "string" && expectation.test(actual);
        };
    },
    string: function(m, expectation) {
        m.test = function(actual) {
            return (
                typeof actual === "string" &&
                stringIndexOf(actual, expectation) !== -1
            );
        };
        m.message = 'match("' + expectation + '")';
    }
};

function match(expectation, message) {
    var m = Object.create(matcher);
    var type = typeOf(expectation);

    if (message !== undefined && typeof message !== "string") {
        throw new TypeError("Message should be a string");
    }

    if (arguments.length > 2) {
        throw new TypeError(
            "Expected 1 or 2 arguments, received " + arguments.length
        );
    }

    if (type in TYPE_MAP) {
        TYPE_MAP[type](m, expectation, message);
    } else {
        m.test = function(actual) {
            return deepEqual(actual, expectation);
        };
    }

    if (!m.message) {
        m.message = "match(" + valueToString(expectation) + ")";
    }

    return m;
}

matcher.or = function(m2) {
    if (!arguments.length) {
        throw new TypeError("Matcher expected");
    } else if (!isMatcher(m2)) {
        m2 = match(m2);
    }
    var m1 = this;
    var or = Object.create(matcher);
    or.test = function(actual) {
        return m1.test(actual) || m2.test(actual);
    };
    or.message = m1.message + ".or(" + m2.message + ")";
    return or;
};

matcher.and = function(m2) {
    if (!arguments.length) {
        throw new TypeError("Matcher expected");
    } else if (!isMatcher(m2)) {
        m2 = match(m2);
    }
    var m1 = this;
    var and = Object.create(matcher);
    and.test = function(actual) {
        return m1.test(actual) && m2.test(actual);
    };
    and.message = m1.message + ".and(" + m2.message + ")";
    return and;
};

match.isMatcher = isMatcher;

match.any = match(function() {
    return true;
}, "any");

match.defined = match(function(actual) {
    return actual !== null && actual !== undefined;
}, "defined");

match.truthy = match(function(actual) {
    return !!actual;
}, "truthy");

match.falsy = match(function(actual) {
    return !actual;
}, "falsy");

match.same = function(expectation) {
    return match(function(actual) {
        return expectation === actual;
    }, "same(" + valueToString(expectation) + ")");
};

match.in = function(arrayOfExpectations) {
    if (typeOf(arrayOfExpectations) !== "array") {
        throw new TypeError("array expected");
    }

    return match(function(actual) {
        return some(arrayOfExpectations, function(expectation) {
            return expectation === actual;
        });
    }, "in(" + valueToString(arrayOfExpectations) + ")");
};

match.typeOf = function(type) {
    assertType(type, "string", "type");
    return match(function(actual) {
        return typeOf(actual) === type;
    }, 'typeOf("' + type + '")');
};

match.instanceOf = function(type) {
    if (
        typeof Symbol === "undefined" ||
        typeof Symbol.hasInstance === "undefined"
    ) {
        assertType(type, "function", "type");
    } else {
        assertMethodExists(
            type,
            Symbol.hasInstance,
            "type",
            "[Symbol.hasInstance]"
        );
    }
    return match(function(actual) {
        return actual instanceof type;
    }, "instanceOf(" +
        (functionName(type) || Object.prototype.toString.call(type)) +
        ")");
};

function createPropertyMatcher(propertyTest, messagePrefix) {
    return function(property, value) {
        assertType(property, "string", "property");
        var onlyProperty = arguments.length === 1;
        var message = messagePrefix + '("' + property + '"';
        if (!onlyProperty) {
            message += ", " + valueToString(value);
        }
        message += ")";
        return match(function(actual) {
            if (
                actual === undefined ||
                actual === null ||
                !propertyTest(actual, property)
            ) {
                return false;
            }
            return onlyProperty || deepEqual(actual[property], value);
        }, message);
    };
}

match.has = createPropertyMatcher(function(actual, property) {
    if (typeof actual === "object") {
        return property in actual;
    }
    return actual[property] !== undefined;
}, "has");

match.hasOwn = createPropertyMatcher(function(actual, property) {
    return hasOwnProperty(actual, property);
}, "hasOwn");

match.hasNested = function(property, value) {
    assertType(property, "string", "property");
    var onlyProperty = arguments.length === 1;
    var message = 'hasNested("' + property + '"';
    if (!onlyProperty) {
        message += ", " + valueToString(value);
    }
    message += ")";
    return match(function(actual) {
        if (
            actual === undefined ||
            actual === null ||
            get(actual, property) === undefined
        ) {
            return false;
        }
        return onlyProperty || deepEqual(get(actual, property), value);
    }, message);
};

match.every = function(predicate) {
    if (!isMatcher(predicate)) {
        throw new TypeError("Matcher expected");
    }

    return match(function(actual) {
        if (typeOf(actual) === "object") {
            return every(Object.keys(actual), function(key) {
                return predicate.test(actual[key]);
            });
        }

        return (
            !!actual &&
            typeOf(actual.forEach) === "function" &&
            every(actual, function(element) {
                return predicate.test(element);
            })
        );
    }, "every(" + predicate.message + ")");
};

match.some = function(predicate) {
    if (!isMatcher(predicate)) {
        throw new TypeError("Matcher expected");
    }

    return match(function(actual) {
        if (typeOf(actual) === "object") {
            return !every(Object.keys(actual), function(key) {
                return !predicate.test(actual[key]);
            });
        }

        return (
            !!actual &&
            typeOf(actual.forEach) === "function" &&
            !every(actual, function(element) {
                return !predicate.test(element);
            })
        );
    }, "some(" + predicate.message + ")");
};

match.array = match.typeOf("array");

match.array.deepEquals = function(expectation) {
    return match(function(actual) {
        // Comparing lengths is the fastest way to spot a difference before iterating through every item
        var sameLength = actual.length === expectation.length;
        return (
            typeOf(actual) === "array" &&
            sameLength &&
            every(actual, function(element, index) {
                var expected = expectation[index];
                return typeOf(expected) === "array" &&
                    typeOf(element) === "array"
                    ? match.array.deepEquals(expected).test(element)
                    : deepEqual(expected, element);
            })
        );
    }, "deepEquals([" + iterableToString(expectation) + "])");
};

match.array.startsWith = function(expectation) {
    return match(function(actual) {
        return (
            typeOf(actual) === "array" &&
            every(expectation, function(expectedElement, index) {
                return actual[index] === expectedElement;
            })
        );
    }, "startsWith([" + iterableToString(expectation) + "])");
};

match.array.endsWith = function(expectation) {
    return match(function(actual) {
        // This indicates the index in which we should start matching
        var offset = actual.length - expectation.length;

        return (
            typeOf(actual) === "array" &&
            every(expectation, function(expectedElement, index) {
                return actual[offset + index] === expectedElement;
            })
        );
    }, "endsWith([" + iterableToString(expectation) + "])");
};

match.array.contains = function(expectation) {
    return match(function(actual) {
        return (
            typeOf(actual) === "array" &&
            every(expectation, function(expectedElement) {
                return arrayIndexOf(actual, expectedElement) !== -1;
            })
        );
    }, "contains([" + iterableToString(expectation) + "])");
};

match.map = match.typeOf("map");

match.map.deepEquals = function mapDeepEquals(expectation) {
    return match(function(actual) {
        // Comparing lengths is the fastest way to spot a difference before iterating through every item
        var sameLength = actual.size === expectation.size;
        return (
            typeOf(actual) === "map" &&
            sameLength &&
            every(actual, function(element, key) {
                return expectation.has(key) && expectation.get(key) === element;
            })
        );
    }, "deepEquals(Map[" + iterableToString(expectation) + "])");
};

match.map.contains = function mapContains(expectation) {
    return match(function(actual) {
        return (
            typeOf(actual) === "map" &&
            every(expectation, function(element, key) {
                return actual.has(key) && actual.get(key) === element;
            })
        );
    }, "contains(Map[" + iterableToString(expectation) + "])");
};

match.set = match.typeOf("set");

match.set.deepEquals = function setDeepEquals(expectation) {
    return match(function(actual) {
        // Comparing lengths is the fastest way to spot a difference before iterating through every item
        var sameLength = actual.size === expectation.size;
        return (
            typeOf(actual) === "set" &&
            sameLength &&
            every(actual, function(element) {
                return expectation.has(element);
            })
        );
    }, "deepEquals(Set[" + iterableToString(expectation) + "])");
};

match.set.contains = function setContains(expectation) {
    return match(function(actual) {
        return (
            typeOf(actual) === "set" &&
            every(expectation, function(element) {
                return actual.has(element);
            })
        );
    }, "contains(Set[" + iterableToString(expectation) + "])");
};

match.bool = match.typeOf("boolean");
match.number = match.typeOf("number");
match.string = match.typeOf("string");
match.object = match.typeOf("object");
match.func = match.typeOf("function");
match.regexp = match.typeOf("regexp");
match.date = match.typeOf("date");
match.symbol = match.typeOf("symbol");

module.exports = match;

},{"./deep-equal":50,"./iterable-to-string":62,"@sinonjs/commons":39,"lodash":72}],65:[function(require,module,exports){
"use strict";

var identical = require("./identical");
var isArguments = require("./is-arguments");
var isElement = require("./is-element");
var isNegZero = require("./is-neg-zero");
var isSet = require("./is-set");
var match = require("./match");
var deepEqualCyclic = require("./deep-equal").use(match);
var createMatcher = require("./matcher");

module.exports = {
    createMatcher: createMatcher,
    deepEqual: deepEqualCyclic,
    identical: identical,
    isArguments: isArguments,
    isElement: isElement,
    isNegZero: isNegZero,
    isSet: isSet,
    match: match
};

},{"./deep-equal":50,"./identical":53,"./is-arguments":54,"./is-element":56,"./is-neg-zero":58,"./is-set":60,"./match":63,"./matcher":64}],66:[function(require,module,exports){
// This is free and unencumbered software released into the public domain.
// See LICENSE.md for more information.

var encoding = require("./lib/encoding.js");

module.exports = {
  TextEncoder: encoding.TextEncoder,
  TextDecoder: encoding.TextDecoder,
};

},{"./lib/encoding.js":68}],67:[function(require,module,exports){
(function(global) {
  'use strict';

  if (typeof module !== "undefined" && module.exports) {
    module.exports = global;
  }

  global["encoding-indexes"] =
{
  "big5":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,17392,19506,17923,17830,17784,160359,19831,17843,162993,19682,163013,15253,18230,18244,19527,19520,148159,144919,160594,159371,159954,19543,172881,18255,17882,19589,162924,19719,19108,18081,158499,29221,154196,137827,146950,147297,26189,22267,null,32149,22813,166841,15860,38708,162799,23515,138590,23204,13861,171696,23249,23479,23804,26478,34195,170309,29793,29853,14453,138579,145054,155681,16108,153822,15093,31484,40855,147809,166157,143850,133770,143966,17162,33924,40854,37935,18736,34323,22678,38730,37400,31184,31282,26208,27177,34973,29772,31685,26498,31276,21071,36934,13542,29636,155065,29894,40903,22451,18735,21580,16689,145038,22552,31346,162661,35727,18094,159368,16769,155033,31662,140476,40904,140481,140489,140492,40905,34052,144827,16564,40906,17633,175615,25281,28782,40907,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,12736,12737,12738,12739,12740,131340,12741,131281,131277,12742,12743,131275,139240,12744,131274,12745,12746,12747,12748,131342,12749,12750,256,193,461,192,274,201,282,200,332,211,465,210,null,7870,null,7872,202,257,225,462,224,593,275,233,283,232,299,237,464,236,333,243,466,242,363,250,468,249,470,472,474,476,252,null,7871,null,7873,234,609,9178,9179,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,172969,135493,null,25866,null,null,20029,28381,40270,37343,null,null,161589,25745,20250,20264,20392,20822,20852,20892,20964,21153,21160,21307,21326,21457,21464,22242,22768,22788,22791,22834,22836,23398,23454,23455,23706,24198,24635,25993,26622,26628,26725,27982,28860,30005,32420,32428,32442,32455,32463,32479,32518,32567,33402,33487,33647,35270,35774,35810,36710,36711,36718,29713,31996,32205,26950,31433,21031,null,null,null,null,37260,30904,37214,32956,null,36107,33014,133607,null,null,32927,40647,19661,40393,40460,19518,171510,159758,40458,172339,13761,null,28314,33342,29977,null,18705,39532,39567,40857,31111,164972,138698,132560,142054,20004,20097,20096,20103,20159,20203,20279,13388,20413,15944,20483,20616,13437,13459,13477,20870,22789,20955,20988,20997,20105,21113,21136,21287,13767,21417,13649,21424,13651,21442,21539,13677,13682,13953,21651,21667,21684,21689,21712,21743,21784,21795,21800,13720,21823,13733,13759,21975,13765,163204,21797,null,134210,134421,151851,21904,142534,14828,131905,36422,150968,169189,16467,164030,30586,142392,14900,18389,164189,158194,151018,25821,134524,135092,134357,135412,25741,36478,134806,134155,135012,142505,164438,148691,null,134470,170573,164073,18420,151207,142530,39602,14951,169460,16365,13574,152263,169940,161992,142660,40302,38933,null,17369,155813,25780,21731,142668,142282,135287,14843,135279,157402,157462,162208,25834,151634,134211,36456,139681,166732,132913,null,18443,131497,16378,22643,142733,null,148936,132348,155799,134988,134550,21881,16571,17338,null,19124,141926,135325,33194,39157,134556,25465,14846,141173,36288,22177,25724,15939,null,173569,134665,142031,142537,null,135368,145858,14738,14854,164507,13688,155209,139463,22098,134961,142514,169760,13500,27709,151099,null,null,161140,142987,139784,173659,167117,134778,134196,157724,32659,135375,141315,141625,13819,152035,134796,135053,134826,16275,134960,134471,135503,134732,null,134827,134057,134472,135360,135485,16377,140950,25650,135085,144372,161337,142286,134526,134527,142417,142421,14872,134808,135367,134958,173618,158544,167122,167321,167114,38314,21708,33476,21945,null,171715,39974,39606,161630,142830,28992,33133,33004,23580,157042,33076,14231,21343,164029,37302,134906,134671,134775,134907,13789,151019,13833,134358,22191,141237,135369,134672,134776,135288,135496,164359,136277,134777,151120,142756,23124,135197,135198,135413,135414,22428,134673,161428,164557,135093,134779,151934,14083,135094,135552,152280,172733,149978,137274,147831,164476,22681,21096,13850,153405,31666,23400,18432,19244,40743,18919,39967,39821,154484,143677,22011,13810,22153,20008,22786,138177,194680,38737,131206,20059,20155,13630,23587,24401,24516,14586,25164,25909,27514,27701,27706,28780,29227,20012,29357,149737,32594,31035,31993,32595,156266,13505,null,156491,32770,32896,157202,158033,21341,34916,35265,161970,35744,36125,38021,38264,38271,38376,167439,38886,39029,39118,39134,39267,170000,40060,40479,40644,27503,63751,20023,131207,38429,25143,38050,null,20539,28158,171123,40870,15817,34959,147790,28791,23797,19232,152013,13657,154928,24866,166450,36775,37366,29073,26393,29626,144001,172295,15499,137600,19216,30948,29698,20910,165647,16393,27235,172730,16931,34319,133743,31274,170311,166634,38741,28749,21284,139390,37876,30425,166371,40871,30685,20131,20464,20668,20015,20247,40872,21556,32139,22674,22736,138678,24210,24217,24514,141074,25995,144377,26905,27203,146531,27903,null,29184,148741,29580,16091,150035,23317,29881,35715,154788,153237,31379,31724,31939,32364,33528,34199,40873,34960,40874,36537,40875,36815,34143,39392,37409,40876,167353,136255,16497,17058,23066,null,null,null,39016,26475,17014,22333,null,34262,149883,33471,160013,19585,159092,23931,158485,159678,40877,40878,23446,40879,26343,32347,28247,31178,15752,17603,143958,141206,17306,17718,null,23765,146202,35577,23672,15634,144721,23928,40882,29015,17752,147692,138787,19575,14712,13386,131492,158785,35532,20404,131641,22975,33132,38998,170234,24379,134047,null,139713,166253,16642,18107,168057,16135,40883,172469,16632,14294,18167,158790,16764,165554,160767,17773,14548,152730,17761,17691,19849,19579,19830,17898,16328,150287,13921,17630,17597,16877,23870,23880,23894,15868,14351,23972,23993,14368,14392,24130,24253,24357,24451,14600,14612,14655,14669,24791,24893,23781,14729,25015,25017,25039,14776,25132,25232,25317,25368,14840,22193,14851,25570,25595,25607,25690,14923,25792,23829,22049,40863,14999,25990,15037,26111,26195,15090,26258,15138,26390,15170,26532,26624,15192,26698,26756,15218,15217,15227,26889,26947,29276,26980,27039,27013,15292,27094,15325,27237,27252,27249,27266,15340,27289,15346,27307,27317,27348,27382,27521,27585,27626,27765,27818,15563,27906,27910,27942,28033,15599,28068,28081,28181,28184,28201,28294,166336,28347,28386,28378,40831,28392,28393,28452,28468,15686,147265,28545,28606,15722,15733,29111,23705,15754,28716,15761,28752,28756,28783,28799,28809,131877,17345,13809,134872,147159,22462,159443,28990,153568,13902,27042,166889,23412,31305,153825,169177,31333,31357,154028,31419,31408,31426,31427,29137,156813,16842,31450,31453,31466,16879,21682,154625,31499,31573,31529,152334,154878,31650,31599,33692,154548,158847,31696,33825,31634,31672,154912,15789,154725,33938,31738,31750,31797,154817,31812,31875,149634,31910,26237,148856,31945,31943,31974,31860,31987,31989,31950,32359,17693,159300,32093,159446,29837,32137,32171,28981,32179,32210,147543,155689,32228,15635,32245,137209,32229,164717,32285,155937,155994,32366,32402,17195,37996,32295,32576,32577,32583,31030,156368,39393,32663,156497,32675,136801,131176,17756,145254,17667,164666,32762,156809,32773,32776,32797,32808,32815,172167,158915,32827,32828,32865,141076,18825,157222,146915,157416,26405,32935,166472,33031,33050,22704,141046,27775,156824,151480,25831,136330,33304,137310,27219,150117,150165,17530,33321,133901,158290,146814,20473,136445,34018,33634,158474,149927,144688,137075,146936,33450,26907,194964,16859,34123,33488,33562,134678,137140,14017,143741,144730,33403,33506,33560,147083,159139,158469,158615,144846,15807,33565,21996,33669,17675,159141,33708,33729,33747,13438,159444,27223,34138,13462,159298,143087,33880,154596,33905,15827,17636,27303,33866,146613,31064,33960,158614,159351,159299,34014,33807,33681,17568,33939,34020,154769,16960,154816,17731,34100,23282,159385,17703,34163,17686,26559,34326,165413,165435,34241,159880,34306,136578,159949,194994,17770,34344,13896,137378,21495,160666,34430,34673,172280,34798,142375,34737,34778,34831,22113,34412,26710,17935,34885,34886,161248,146873,161252,34910,34972,18011,34996,34997,25537,35013,30583,161551,35207,35210,35238,35241,35239,35260,166437,35303,162084,162493,35484,30611,37374,35472,162393,31465,162618,147343,18195,162616,29052,35596,35615,152624,152933,35647,35660,35661,35497,150138,35728,35739,35503,136927,17941,34895,35995,163156,163215,195028,14117,163155,36054,163224,163261,36114,36099,137488,36059,28764,36113,150729,16080,36215,36265,163842,135188,149898,15228,164284,160012,31463,36525,36534,36547,37588,36633,36653,164709,164882,36773,37635,172703,133712,36787,18730,166366,165181,146875,24312,143970,36857,172052,165564,165121,140069,14720,159447,36919,165180,162494,36961,165228,165387,37032,165651,37060,165606,37038,37117,37223,15088,37289,37316,31916,166195,138889,37390,27807,37441,37474,153017,37561,166598,146587,166668,153051,134449,37676,37739,166625,166891,28815,23235,166626,166629,18789,37444,166892,166969,166911,37747,37979,36540,38277,38310,37926,38304,28662,17081,140922,165592,135804,146990,18911,27676,38523,38550,16748,38563,159445,25050,38582,30965,166624,38589,21452,18849,158904,131700,156688,168111,168165,150225,137493,144138,38705,34370,38710,18959,17725,17797,150249,28789,23361,38683,38748,168405,38743,23370,168427,38751,37925,20688,143543,143548,38793,38815,38833,38846,38848,38866,38880,152684,38894,29724,169011,38911,38901,168989,162170,19153,38964,38963,38987,39014,15118,160117,15697,132656,147804,153350,39114,39095,39112,39111,19199,159015,136915,21936,39137,39142,39148,37752,39225,150057,19314,170071,170245,39413,39436,39483,39440,39512,153381,14020,168113,170965,39648,39650,170757,39668,19470,39700,39725,165376,20532,39732,158120,14531,143485,39760,39744,171326,23109,137315,39822,148043,39938,39935,39948,171624,40404,171959,172434,172459,172257,172323,172511,40318,40323,172340,40462,26760,40388,139611,172435,172576,137531,172595,40249,172217,172724,40592,40597,40606,40610,19764,40618,40623,148324,40641,15200,14821,15645,20274,14270,166955,40706,40712,19350,37924,159138,40727,40726,40761,22175,22154,40773,39352,168075,38898,33919,40802,40809,31452,40846,29206,19390,149877,149947,29047,150008,148296,150097,29598,166874,137466,31135,166270,167478,37737,37875,166468,37612,37761,37835,166252,148665,29207,16107,30578,31299,28880,148595,148472,29054,137199,28835,137406,144793,16071,137349,152623,137208,14114,136955,137273,14049,137076,137425,155467,14115,136896,22363,150053,136190,135848,136134,136374,34051,145062,34051,33877,149908,160101,146993,152924,147195,159826,17652,145134,170397,159526,26617,14131,15381,15847,22636,137506,26640,16471,145215,147681,147595,147727,158753,21707,22174,157361,22162,135135,134056,134669,37830,166675,37788,20216,20779,14361,148534,20156,132197,131967,20299,20362,153169,23144,131499,132043,14745,131850,132116,13365,20265,131776,167603,131701,35546,131596,20120,20685,20749,20386,20227,150030,147082,20290,20526,20588,20609,20428,20453,20568,20732,20825,20827,20829,20830,28278,144789,147001,147135,28018,137348,147081,20904,20931,132576,17629,132259,132242,132241,36218,166556,132878,21081,21156,133235,21217,37742,18042,29068,148364,134176,149932,135396,27089,134685,29817,16094,29849,29716,29782,29592,19342,150204,147597,21456,13700,29199,147657,21940,131909,21709,134086,22301,37469,38644,37734,22493,22413,22399,13886,22731,23193,166470,136954,137071,136976,23084,22968,37519,23166,23247,23058,153926,137715,137313,148117,14069,27909,29763,23073,155267,23169,166871,132115,37856,29836,135939,28933,18802,37896,166395,37821,14240,23582,23710,24158,24136,137622,137596,146158,24269,23375,137475,137476,14081,137376,14045,136958,14035,33066,166471,138682,144498,166312,24332,24334,137511,137131,23147,137019,23364,34324,161277,34912,24702,141408,140843,24539,16056,140719,140734,168072,159603,25024,131134,131142,140827,24985,24984,24693,142491,142599,149204,168269,25713,149093,142186,14889,142114,144464,170218,142968,25399,173147,25782,25393,25553,149987,142695,25252,142497,25659,25963,26994,15348,143502,144045,149897,144043,21773,144096,137433,169023,26318,144009,143795,15072,16784,152964,166690,152975,136956,152923,152613,30958,143619,137258,143924,13412,143887,143746,148169,26254,159012,26219,19347,26160,161904,138731,26211,144082,144097,26142,153714,14545,145466,145340,15257,145314,144382,29904,15254,26511,149034,26806,26654,15300,27326,14435,145365,148615,27187,27218,27337,27397,137490,25873,26776,27212,15319,27258,27479,147392,146586,37792,37618,166890,166603,37513,163870,166364,37991,28069,28427,149996,28007,147327,15759,28164,147516,23101,28170,22599,27940,30786,28987,148250,148086,28913,29264,29319,29332,149391,149285,20857,150180,132587,29818,147192,144991,150090,149783,155617,16134,16049,150239,166947,147253,24743,16115,29900,29756,37767,29751,17567,159210,17745,30083,16227,150745,150790,16216,30037,30323,173510,15129,29800,166604,149931,149902,15099,15821,150094,16127,149957,149747,37370,22322,37698,166627,137316,20703,152097,152039,30584,143922,30478,30479,30587,149143,145281,14942,149744,29752,29851,16063,150202,150215,16584,150166,156078,37639,152961,30750,30861,30856,30930,29648,31065,161601,153315,16654,31131,33942,31141,27181,147194,31290,31220,16750,136934,16690,37429,31217,134476,149900,131737,146874,137070,13719,21867,13680,13994,131540,134157,31458,23129,141045,154287,154268,23053,131675,30960,23082,154566,31486,16889,31837,31853,16913,154547,155324,155302,31949,150009,137136,31886,31868,31918,27314,32220,32263,32211,32590,156257,155996,162632,32151,155266,17002,158581,133398,26582,131150,144847,22468,156690,156664,149858,32733,31527,133164,154345,154947,31500,155150,39398,34373,39523,27164,144447,14818,150007,157101,39455,157088,33920,160039,158929,17642,33079,17410,32966,33033,33090,157620,39107,158274,33378,33381,158289,33875,159143,34320,160283,23174,16767,137280,23339,137377,23268,137432,34464,195004,146831,34861,160802,23042,34926,20293,34951,35007,35046,35173,35149,153219,35156,161669,161668,166901,166873,166812,166393,16045,33955,18165,18127,14322,35389,35356,169032,24397,37419,148100,26068,28969,28868,137285,40301,35999,36073,163292,22938,30659,23024,17262,14036,36394,36519,150537,36656,36682,17140,27736,28603,140065,18587,28537,28299,137178,39913,14005,149807,37051,37015,21873,18694,37307,37892,166475,16482,166652,37927,166941,166971,34021,35371,38297,38311,38295,38294,167220,29765,16066,149759,150082,148458,16103,143909,38543,167655,167526,167525,16076,149997,150136,147438,29714,29803,16124,38721,168112,26695,18973,168083,153567,38749,37736,166281,166950,166703,156606,37562,23313,35689,18748,29689,147995,38811,38769,39224,134950,24001,166853,150194,38943,169178,37622,169431,37349,17600,166736,150119,166756,39132,166469,16128,37418,18725,33812,39227,39245,162566,15869,39323,19311,39338,39516,166757,153800,27279,39457,23294,39471,170225,19344,170312,39356,19389,19351,37757,22642,135938,22562,149944,136424,30788,141087,146872,26821,15741,37976,14631,24912,141185,141675,24839,40015,40019,40059,39989,39952,39807,39887,171565,39839,172533,172286,40225,19630,147716,40472,19632,40204,172468,172269,172275,170287,40357,33981,159250,159711,158594,34300,17715,159140,159364,159216,33824,34286,159232,145367,155748,31202,144796,144960,18733,149982,15714,37851,37566,37704,131775,30905,37495,37965,20452,13376,36964,152925,30781,30804,30902,30795,137047,143817,149825,13978,20338,28634,28633,28702,28702,21524,147893,22459,22771,22410,40214,22487,28980,13487,147884,29163,158784,151447,23336,137141,166473,24844,23246,23051,17084,148616,14124,19323,166396,37819,37816,137430,134941,33906,158912,136211,148218,142374,148417,22932,146871,157505,32168,155995,155812,149945,149899,166394,37605,29666,16105,29876,166755,137375,16097,150195,27352,29683,29691,16086,150078,150164,137177,150118,132007,136228,149989,29768,149782,28837,149878,37508,29670,37727,132350,37681,166606,166422,37766,166887,153045,18741,166530,29035,149827,134399,22180,132634,134123,134328,21762,31172,137210,32254,136898,150096,137298,17710,37889,14090,166592,149933,22960,137407,137347,160900,23201,14050,146779,14000,37471,23161,166529,137314,37748,15565,133812,19094,14730,20724,15721,15692,136092,29045,17147,164376,28175,168164,17643,27991,163407,28775,27823,15574,147437,146989,28162,28428,15727,132085,30033,14012,13512,18048,16090,18545,22980,37486,18750,36673,166940,158656,22546,22472,14038,136274,28926,148322,150129,143331,135856,140221,26809,26983,136088,144613,162804,145119,166531,145366,144378,150687,27162,145069,158903,33854,17631,17614,159014,159057,158850,159710,28439,160009,33597,137018,33773,158848,159827,137179,22921,23170,137139,23137,23153,137477,147964,14125,23023,137020,14023,29070,37776,26266,148133,23150,23083,148115,27179,147193,161590,148571,148170,28957,148057,166369,20400,159016,23746,148686,163405,148413,27148,148054,135940,28838,28979,148457,15781,27871,194597,150095,32357,23019,23855,15859,24412,150109,137183,32164,33830,21637,146170,144128,131604,22398,133333,132633,16357,139166,172726,28675,168283,23920,29583,31955,166489,168992,20424,32743,29389,29456,162548,29496,29497,153334,29505,29512,16041,162584,36972,29173,149746,29665,33270,16074,30476,16081,27810,22269,29721,29726,29727,16098,16112,16116,16122,29907,16142,16211,30018,30061,30066,30093,16252,30152,30172,16320,30285,16343,30324,16348,30330,151388,29064,22051,35200,22633,16413,30531,16441,26465,16453,13787,30616,16490,16495,23646,30654,30667,22770,30744,28857,30748,16552,30777,30791,30801,30822,33864,152885,31027,26627,31026,16643,16649,31121,31129,36795,31238,36796,16743,31377,16818,31420,33401,16836,31439,31451,16847,20001,31586,31596,31611,31762,31771,16992,17018,31867,31900,17036,31928,17044,31981,36755,28864,134351,32207,32212,32208,32253,32686,32692,29343,17303,32800,32805,31545,32814,32817,32852,15820,22452,28832,32951,33001,17389,33036,29482,33038,33042,30048,33044,17409,15161,33110,33113,33114,17427,22586,33148,33156,17445,33171,17453,33189,22511,33217,33252,33364,17551,33446,33398,33482,33496,33535,17584,33623,38505,27018,33797,28917,33892,24803,33928,17668,33982,34017,34040,34064,34104,34130,17723,34159,34160,34272,17783,34418,34450,34482,34543,38469,34699,17926,17943,34990,35071,35108,35143,35217,162151,35369,35384,35476,35508,35921,36052,36082,36124,18328,22623,36291,18413,20206,36410,21976,22356,36465,22005,36528,18487,36558,36578,36580,36589,36594,36791,36801,36810,36812,36915,39364,18605,39136,37395,18718,37416,37464,37483,37553,37550,37567,37603,37611,37619,37620,37629,37699,37764,37805,18757,18769,40639,37911,21249,37917,37933,37950,18794,37972,38009,38189,38306,18855,38388,38451,18917,26528,18980,38720,18997,38834,38850,22100,19172,24808,39097,19225,39153,22596,39182,39193,20916,39196,39223,39234,39261,39266,19312,39365,19357,39484,39695,31363,39785,39809,39901,39921,39924,19565,39968,14191,138178,40265,39994,40702,22096,40339,40381,40384,40444,38134,36790,40571,40620,40625,40637,40646,38108,40674,40689,40696,31432,40772,131220,131767,132000,26906,38083,22956,132311,22592,38081,14265,132565,132629,132726,136890,22359,29043,133826,133837,134079,21610,194619,134091,21662,134139,134203,134227,134245,134268,24807,134285,22138,134325,134365,134381,134511,134578,134600,26965,39983,34725,134660,134670,134871,135056,134957,134771,23584,135100,24075,135260,135247,135286,26398,135291,135304,135318,13895,135359,135379,135471,135483,21348,33965,135907,136053,135990,35713,136567,136729,137155,137159,20088,28859,137261,137578,137773,137797,138282,138352,138412,138952,25283,138965,139029,29080,26709,139333,27113,14024,139900,140247,140282,141098,141425,141647,33533,141671,141715,142037,35237,142056,36768,142094,38840,142143,38983,39613,142412,null,142472,142519,154600,142600,142610,142775,142741,142914,143220,143308,143411,143462,144159,144350,24497,26184,26303,162425,144743,144883,29185,149946,30679,144922,145174,32391,131910,22709,26382,26904,146087,161367,155618,146961,147129,161278,139418,18640,19128,147737,166554,148206,148237,147515,148276,148374,150085,132554,20946,132625,22943,138920,15294,146687,148484,148694,22408,149108,14747,149295,165352,170441,14178,139715,35678,166734,39382,149522,149755,150037,29193,150208,134264,22885,151205,151430,132985,36570,151596,21135,22335,29041,152217,152601,147274,150183,21948,152646,152686,158546,37332,13427,152895,161330,152926,18200,152930,152934,153543,149823,153693,20582,13563,144332,24798,153859,18300,166216,154286,154505,154630,138640,22433,29009,28598,155906,162834,36950,156082,151450,35682,156674,156746,23899,158711,36662,156804,137500,35562,150006,156808,147439,156946,19392,157119,157365,141083,37989,153569,24981,23079,194765,20411,22201,148769,157436,20074,149812,38486,28047,158909,13848,35191,157593,157806,156689,157790,29151,157895,31554,168128,133649,157990,37124,158009,31301,40432,158202,39462,158253,13919,156777,131105,31107,158260,158555,23852,144665,33743,158621,18128,158884,30011,34917,159150,22710,14108,140685,159819,160205,15444,160384,160389,37505,139642,160395,37680,160486,149968,27705,38047,160848,134904,34855,35061,141606,164979,137137,28344,150058,137248,14756,14009,23568,31203,17727,26294,171181,170148,35139,161740,161880,22230,16607,136714,14753,145199,164072,136133,29101,33638,162269,168360,23143,19639,159919,166315,162301,162314,162571,163174,147834,31555,31102,163849,28597,172767,27139,164632,21410,159239,37823,26678,38749,164207,163875,158133,136173,143919,163912,23941,166960,163971,22293,38947,166217,23979,149896,26046,27093,21458,150181,147329,15377,26422,163984,164084,164142,139169,164175,164233,164271,164378,164614,164655,164746,13770,164968,165546,18682,25574,166230,30728,37461,166328,17394,166375,17375,166376,166726,166868,23032,166921,36619,167877,168172,31569,168208,168252,15863,168286,150218,36816,29327,22155,169191,169449,169392,169400,169778,170193,170313,170346,170435,170536,170766,171354,171419,32415,171768,171811,19620,38215,172691,29090,172799,19857,36882,173515,19868,134300,36798,21953,36794,140464,36793,150163,17673,32383,28502,27313,20202,13540,166700,161949,14138,36480,137205,163876,166764,166809,162366,157359,15851,161365,146615,153141,153942,20122,155265,156248,22207,134765,36366,23405,147080,150686,25566,25296,137206,137339,25904,22061,154698,21530,152337,15814,171416,19581,22050,22046,32585,155352,22901,146752,34672,19996,135146,134473,145082,33047,40286,36120,30267,40005,30286,30649,37701,21554,33096,33527,22053,33074,33816,32957,21994,31074,22083,21526,134813,13774,22021,22001,26353,164578,13869,30004,22000,21946,21655,21874,134209,134294,24272,151880,134774,142434,134818,40619,32090,21982,135285,25245,38765,21652,36045,29174,37238,25596,25529,25598,21865,142147,40050,143027,20890,13535,134567,20903,21581,21790,21779,30310,36397,157834,30129,32950,34820,34694,35015,33206,33820,135361,17644,29444,149254,23440,33547,157843,22139,141044,163119,147875,163187,159440,160438,37232,135641,37384,146684,173737,134828,134905,29286,138402,18254,151490,163833,135147,16634,40029,25887,142752,18675,149472,171388,135148,134666,24674,161187,135149,null,155720,135559,29091,32398,40272,19994,19972,13687,23309,27826,21351,13996,14812,21373,13989,149016,22682,150382,33325,21579,22442,154261,133497,null,14930,140389,29556,171692,19721,39917,146686,171824,19547,151465,169374,171998,33884,146870,160434,157619,145184,25390,32037,147191,146988,14890,36872,21196,15988,13946,17897,132238,30272,23280,134838,30842,163630,22695,16575,22140,39819,23924,30292,173108,40581,19681,30201,14331,24857,143578,148466,null,22109,135849,22439,149859,171526,21044,159918,13741,27722,40316,31830,39737,22494,137068,23635,25811,169168,156469,160100,34477,134440,159010,150242,134513,null,20990,139023,23950,38659,138705,40577,36940,31519,39682,23761,31651,25192,25397,39679,31695,39722,31870,39726,31810,31878,39957,31740,39689,40727,39963,149822,40794,21875,23491,20477,40600,20466,21088,15878,21201,22375,20566,22967,24082,38856,40363,36700,21609,38836,39232,38842,21292,24880,26924,21466,39946,40194,19515,38465,27008,20646,30022,137069,39386,21107,null,37209,38529,37212,null,37201,167575,25471,159011,27338,22033,37262,30074,25221,132092,29519,31856,154657,146685,null,149785,30422,39837,20010,134356,33726,34882,null,23626,27072,20717,22394,21023,24053,20174,27697,131570,20281,21660,21722,21146,36226,13822,24332,13811,null,27474,37244,40869,39831,38958,39092,39610,40616,40580,29050,31508,null,27642,34840,32632,null,22048,173642,36471,40787,null,36308,36431,40476,36353,25218,164733,36392,36469,31443,150135,31294,30936,27882,35431,30215,166490,40742,27854,34774,30147,172722,30803,194624,36108,29410,29553,35629,29442,29937,36075,150203,34351,24506,34976,17591,null,137275,159237,null,35454,140571,null,24829,30311,39639,40260,37742,39823,34805,null,34831,36087,29484,38689,39856,13782,29362,19463,31825,39242,155993,24921,19460,40598,24957,null,22367,24943,25254,25145,25294,14940,25058,21418,144373,25444,26626,13778,23895,166850,36826,167481,null,20697,138566,30982,21298,38456,134971,16485,null,30718,null,31938,155418,31962,31277,32870,32867,32077,29957,29938,35220,33306,26380,32866,160902,32859,29936,33027,30500,35209,157644,30035,159441,34729,34766,33224,34700,35401,36013,35651,30507,29944,34010,13877,27058,36262,null,35241,29800,28089,34753,147473,29927,15835,29046,24740,24988,15569,29026,24695,null,32625,166701,29264,24809,19326,21024,15384,146631,155351,161366,152881,137540,135934,170243,159196,159917,23745,156077,166415,145015,131310,157766,151310,17762,23327,156492,40784,40614,156267,12288,65292,12289,12290,65294,8231,65307,65306,65311,65281,65072,8230,8229,65104,65105,65106,183,65108,65109,65110,65111,65372,8211,65073,8212,65075,9588,65076,65103,65288,65289,65077,65078,65371,65373,65079,65080,12308,12309,65081,65082,12304,12305,65083,65084,12298,12299,65085,65086,12296,12297,65087,65088,12300,12301,65089,65090,12302,12303,65091,65092,65113,65114,65115,65116,65117,65118,8216,8217,8220,8221,12317,12318,8245,8242,65283,65286,65290,8251,167,12291,9675,9679,9651,9650,9678,9734,9733,9671,9670,9633,9632,9661,9660,12963,8453,175,65507,65343,717,65097,65098,65101,65102,65099,65100,65119,65120,65121,65291,65293,215,247,177,8730,65308,65310,65309,8806,8807,8800,8734,8786,8801,65122,65123,65124,65125,65126,65374,8745,8746,8869,8736,8735,8895,13266,13265,8747,8750,8757,8756,9792,9794,8853,8857,8593,8595,8592,8594,8598,8599,8601,8600,8741,8739,65295,65340,8725,65128,65284,65509,12306,65504,65505,65285,65312,8451,8457,65129,65130,65131,13269,13212,13213,13214,13262,13217,13198,13199,13252,176,20825,20827,20830,20829,20833,20835,21991,29929,31950,9601,9602,9603,9604,9605,9606,9607,9608,9615,9614,9613,9612,9611,9610,9609,9532,9524,9516,9508,9500,9620,9472,9474,9621,9484,9488,9492,9496,9581,9582,9584,9583,9552,9566,9578,9569,9698,9699,9701,9700,9585,9586,9587,65296,65297,65298,65299,65300,65301,65302,65303,65304,65305,8544,8545,8546,8547,8548,8549,8550,8551,8552,8553,12321,12322,12323,12324,12325,12326,12327,12328,12329,21313,21316,21317,65313,65314,65315,65316,65317,65318,65319,65320,65321,65322,65323,65324,65325,65326,65327,65328,65329,65330,65331,65332,65333,65334,65335,65336,65337,65338,65345,65346,65347,65348,65349,65350,65351,65352,65353,65354,65355,65356,65357,65358,65359,65360,65361,65362,65363,65364,65365,65366,65367,65368,65369,65370,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,963,964,965,966,967,968,969,12549,12550,12551,12552,12553,12554,12555,12556,12557,12558,12559,12560,12561,12562,12563,12564,12565,12566,12567,12568,12569,12570,12571,12572,12573,12574,12575,12576,12577,12578,12579,12580,12581,12582,12583,12584,12585,729,713,714,711,715,9216,9217,9218,9219,9220,9221,9222,9223,9224,9225,9226,9227,9228,9229,9230,9231,9232,9233,9234,9235,9236,9237,9238,9239,9240,9241,9242,9243,9244,9245,9246,9247,9249,8364,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,19968,20057,19969,19971,20035,20061,20102,20108,20154,20799,20837,20843,20960,20992,20993,21147,21269,21313,21340,21448,19977,19979,19976,19978,20011,20024,20961,20037,20040,20063,20062,20110,20129,20800,20995,21242,21315,21449,21475,22303,22763,22805,22823,22899,23376,23377,23379,23544,23567,23586,23608,23665,24029,24037,24049,24050,24051,24062,24178,24318,24331,24339,25165,19985,19984,19981,20013,20016,20025,20043,23609,20104,20113,20117,20114,20116,20130,20161,20160,20163,20166,20167,20173,20170,20171,20164,20803,20801,20839,20845,20846,20844,20887,20982,20998,20999,21000,21243,21246,21247,21270,21305,21320,21319,21317,21342,21380,21451,21450,21453,22764,22825,22827,22826,22829,23380,23569,23588,23610,23663,24052,24187,24319,24340,24341,24515,25096,25142,25163,25166,25903,25991,26007,26020,26041,26085,26352,26376,26408,27424,27490,27513,27595,27604,27611,27663,27700,28779,29226,29238,29243,29255,29273,29275,29356,29579,19993,19990,19989,19988,19992,20027,20045,20047,20046,20197,20184,20180,20181,20182,20183,20195,20196,20185,20190,20805,20804,20873,20874,20908,20985,20986,20984,21002,21152,21151,21253,21254,21271,21277,20191,21322,21321,21345,21344,21359,21358,21435,21487,21476,21491,21484,21486,21481,21480,21500,21496,21493,21483,21478,21482,21490,21489,21488,21477,21485,21499,22235,22234,22806,22830,22833,22900,22902,23381,23427,23612,24040,24039,24038,24066,24067,24179,24188,24321,24344,24343,24517,25098,25171,25172,25170,25169,26021,26086,26414,26412,26410,26411,26413,27491,27597,27665,27664,27704,27713,27712,27710,29359,29572,29577,29916,29926,29976,29983,29992,29993,30000,30001,30002,30003,30091,30333,30382,30399,30446,30683,30690,30707,31034,31166,31348,31435,19998,19999,20050,20051,20073,20121,20132,20134,20133,20223,20233,20249,20234,20245,20237,20240,20241,20239,20210,20214,20219,20208,20211,20221,20225,20235,20809,20807,20806,20808,20840,20849,20877,20912,21015,21009,21010,21006,21014,21155,21256,21281,21280,21360,21361,21513,21519,21516,21514,21520,21505,21515,21508,21521,21517,21512,21507,21518,21510,21522,22240,22238,22237,22323,22320,22312,22317,22316,22319,22313,22809,22810,22839,22840,22916,22904,22915,22909,22905,22914,22913,23383,23384,23431,23432,23429,23433,23546,23574,23673,24030,24070,24182,24180,24335,24347,24537,24534,25102,25100,25101,25104,25187,25179,25176,25910,26089,26088,26092,26093,26354,26355,26377,26429,26420,26417,26421,27425,27492,27515,27670,27741,27735,27737,27743,27744,27728,27733,27745,27739,27725,27726,28784,29279,29277,30334,31481,31859,31992,32566,32650,32701,32769,32771,32780,32786,32819,32895,32905,32907,32908,33251,33258,33267,33276,33292,33307,33311,33390,33394,33406,34411,34880,34892,34915,35199,38433,20018,20136,20301,20303,20295,20311,20318,20276,20315,20309,20272,20304,20305,20285,20282,20280,20291,20308,20284,20294,20323,20316,20320,20271,20302,20278,20313,20317,20296,20314,20812,20811,20813,20853,20918,20919,21029,21028,21033,21034,21032,21163,21161,21162,21164,21283,21363,21365,21533,21549,21534,21566,21542,21582,21543,21574,21571,21555,21576,21570,21531,21545,21578,21561,21563,21560,21550,21557,21558,21536,21564,21568,21553,21547,21535,21548,22250,22256,22244,22251,22346,22353,22336,22349,22343,22350,22334,22352,22351,22331,22767,22846,22941,22930,22952,22942,22947,22937,22934,22925,22948,22931,22922,22949,23389,23388,23386,23387,23436,23435,23439,23596,23616,23617,23615,23614,23696,23697,23700,23692,24043,24076,24207,24199,24202,24311,24324,24351,24420,24418,24439,24441,24536,24524,24535,24525,24561,24555,24568,24554,25106,25105,25220,25239,25238,25216,25206,25225,25197,25226,25212,25214,25209,25203,25234,25199,25240,25198,25237,25235,25233,25222,25913,25915,25912,26097,26356,26463,26446,26447,26448,26449,26460,26454,26462,26441,26438,26464,26451,26455,27493,27599,27714,27742,27801,27777,27784,27785,27781,27803,27754,27770,27792,27760,27788,27752,27798,27794,27773,27779,27762,27774,27764,27782,27766,27789,27796,27800,27778,28790,28796,28797,28792,29282,29281,29280,29380,29378,29590,29996,29995,30007,30008,30338,30447,30691,31169,31168,31167,31350,31995,32597,32918,32915,32925,32920,32923,32922,32946,33391,33426,33419,33421,35211,35282,35328,35895,35910,35925,35997,36196,36208,36275,36523,36554,36763,36784,36802,36806,36805,36804,24033,37009,37026,37034,37030,37027,37193,37318,37324,38450,38446,38449,38442,38444,20006,20054,20083,20107,20123,20126,20139,20140,20335,20381,20365,20339,20351,20332,20379,20363,20358,20355,20336,20341,20360,20329,20347,20374,20350,20367,20369,20346,20820,20818,20821,20841,20855,20854,20856,20925,20989,21051,21048,21047,21050,21040,21038,21046,21057,21182,21179,21330,21332,21331,21329,21350,21367,21368,21369,21462,21460,21463,21619,21621,21654,21624,21653,21632,21627,21623,21636,21650,21638,21628,21648,21617,21622,21644,21658,21602,21608,21643,21629,21646,22266,22403,22391,22378,22377,22369,22374,22372,22396,22812,22857,22855,22856,22852,22868,22974,22971,22996,22969,22958,22993,22982,22992,22989,22987,22995,22986,22959,22963,22994,22981,23391,23396,23395,23447,23450,23448,23452,23449,23451,23578,23624,23621,23622,23735,23713,23736,23721,23723,23729,23731,24088,24090,24086,24085,24091,24081,24184,24218,24215,24220,24213,24214,24310,24358,24359,24361,24448,24449,24447,24444,24541,24544,24573,24565,24575,24591,24596,24623,24629,24598,24618,24597,24609,24615,24617,24619,24603,25110,25109,25151,25150,25152,25215,25289,25292,25284,25279,25282,25273,25298,25307,25259,25299,25300,25291,25288,25256,25277,25276,25296,25305,25287,25293,25269,25306,25265,25304,25302,25303,25286,25260,25294,25918,26023,26044,26106,26132,26131,26124,26118,26114,26126,26112,26127,26133,26122,26119,26381,26379,26477,26507,26517,26481,26524,26483,26487,26503,26525,26519,26479,26480,26495,26505,26494,26512,26485,26522,26515,26492,26474,26482,27427,27494,27495,27519,27667,27675,27875,27880,27891,27825,27852,27877,27827,27837,27838,27836,27874,27819,27861,27859,27832,27844,27833,27841,27822,27863,27845,27889,27839,27835,27873,27867,27850,27820,27887,27868,27862,27872,28821,28814,28818,28810,28825,29228,29229,29240,29256,29287,29289,29376,29390,29401,29399,29392,29609,29608,29599,29611,29605,30013,30109,30105,30106,30340,30402,30450,30452,30693,30717,31038,31040,31041,31177,31176,31354,31353,31482,31998,32596,32652,32651,32773,32954,32933,32930,32945,32929,32939,32937,32948,32938,32943,33253,33278,33293,33459,33437,33433,33453,33469,33439,33465,33457,33452,33445,33455,33464,33443,33456,33470,33463,34382,34417,21021,34920,36555,36814,36820,36817,37045,37048,37041,37046,37319,37329,38263,38272,38428,38464,38463,38459,38468,38466,38585,38632,38738,38750,20127,20141,20142,20449,20405,20399,20415,20448,20433,20431,20445,20419,20406,20440,20447,20426,20439,20398,20432,20420,20418,20442,20430,20446,20407,20823,20882,20881,20896,21070,21059,21066,21069,21068,21067,21063,21191,21193,21187,21185,21261,21335,21371,21402,21467,21676,21696,21672,21710,21705,21688,21670,21683,21703,21698,21693,21674,21697,21700,21704,21679,21675,21681,21691,21673,21671,21695,22271,22402,22411,22432,22435,22434,22478,22446,22419,22869,22865,22863,22862,22864,23004,23000,23039,23011,23016,23043,23013,23018,23002,23014,23041,23035,23401,23459,23462,23460,23458,23461,23553,23630,23631,23629,23627,23769,23762,24055,24093,24101,24095,24189,24224,24230,24314,24328,24365,24421,24456,24453,24458,24459,24455,24460,24457,24594,24605,24608,24613,24590,24616,24653,24688,24680,24674,24646,24643,24684,24683,24682,24676,25153,25308,25366,25353,25340,25325,25345,25326,25341,25351,25329,25335,25327,25324,25342,25332,25361,25346,25919,25925,26027,26045,26082,26149,26157,26144,26151,26159,26143,26152,26161,26148,26359,26623,26579,26609,26580,26576,26604,26550,26543,26613,26601,26607,26564,26577,26548,26586,26597,26552,26575,26590,26611,26544,26585,26594,26589,26578,27498,27523,27526,27573,27602,27607,27679,27849,27915,27954,27946,27969,27941,27916,27953,27934,27927,27963,27965,27966,27958,27931,27893,27961,27943,27960,27945,27950,27957,27918,27947,28843,28858,28851,28844,28847,28845,28856,28846,28836,29232,29298,29295,29300,29417,29408,29409,29623,29642,29627,29618,29645,29632,29619,29978,29997,30031,30028,30030,30027,30123,30116,30117,30114,30115,30328,30342,30343,30344,30408,30406,30403,30405,30465,30457,30456,30473,30475,30462,30460,30471,30684,30722,30740,30732,30733,31046,31049,31048,31047,31161,31162,31185,31186,31179,31359,31361,31487,31485,31869,32002,32005,32000,32009,32007,32004,32006,32568,32654,32703,32772,32784,32781,32785,32822,32982,32997,32986,32963,32964,32972,32993,32987,32974,32990,32996,32989,33268,33314,33511,33539,33541,33507,33499,33510,33540,33509,33538,33545,33490,33495,33521,33537,33500,33492,33489,33502,33491,33503,33519,33542,34384,34425,34427,34426,34893,34923,35201,35284,35336,35330,35331,35998,36000,36212,36211,36276,36557,36556,36848,36838,36834,36842,36837,36845,36843,36836,36840,37066,37070,37057,37059,37195,37194,37325,38274,38480,38475,38476,38477,38754,38761,38859,38893,38899,38913,39080,39131,39135,39318,39321,20056,20147,20492,20493,20515,20463,20518,20517,20472,20521,20502,20486,20540,20511,20506,20498,20497,20474,20480,20500,20520,20465,20513,20491,20505,20504,20467,20462,20525,20522,20478,20523,20489,20860,20900,20901,20898,20941,20940,20934,20939,21078,21084,21076,21083,21085,21290,21375,21407,21405,21471,21736,21776,21761,21815,21756,21733,21746,21766,21754,21780,21737,21741,21729,21769,21742,21738,21734,21799,21767,21757,21775,22275,22276,22466,22484,22475,22467,22537,22799,22871,22872,22874,23057,23064,23068,23071,23067,23059,23020,23072,23075,23081,23077,23052,23049,23403,23640,23472,23475,23478,23476,23470,23477,23481,23480,23556,23633,23637,23632,23789,23805,23803,23786,23784,23792,23798,23809,23796,24046,24109,24107,24235,24237,24231,24369,24466,24465,24464,24665,24675,24677,24656,24661,24685,24681,24687,24708,24735,24730,24717,24724,24716,24709,24726,25159,25331,25352,25343,25422,25406,25391,25429,25410,25414,25423,25417,25402,25424,25405,25386,25387,25384,25421,25420,25928,25929,26009,26049,26053,26178,26185,26191,26179,26194,26188,26181,26177,26360,26388,26389,26391,26657,26680,26696,26694,26707,26681,26690,26708,26665,26803,26647,26700,26705,26685,26612,26704,26688,26684,26691,26666,26693,26643,26648,26689,27530,27529,27575,27683,27687,27688,27686,27684,27888,28010,28053,28040,28039,28006,28024,28023,27993,28051,28012,28041,28014,27994,28020,28009,28044,28042,28025,28037,28005,28052,28874,28888,28900,28889,28872,28879,29241,29305,29436,29433,29437,29432,29431,29574,29677,29705,29678,29664,29674,29662,30036,30045,30044,30042,30041,30142,30149,30151,30130,30131,30141,30140,30137,30146,30136,30347,30384,30410,30413,30414,30505,30495,30496,30504,30697,30768,30759,30776,30749,30772,30775,30757,30765,30752,30751,30770,31061,31056,31072,31071,31062,31070,31069,31063,31066,31204,31203,31207,31199,31206,31209,31192,31364,31368,31449,31494,31505,31881,32033,32023,32011,32010,32032,32034,32020,32016,32021,32026,32028,32013,32025,32027,32570,32607,32660,32709,32705,32774,32792,32789,32793,32791,32829,32831,33009,33026,33008,33029,33005,33012,33030,33016,33011,33032,33021,33034,33020,33007,33261,33260,33280,33296,33322,33323,33320,33324,33467,33579,33618,33620,33610,33592,33616,33609,33589,33588,33615,33586,33593,33590,33559,33600,33585,33576,33603,34388,34442,34474,34451,34468,34473,34444,34467,34460,34928,34935,34945,34946,34941,34937,35352,35344,35342,35340,35349,35338,35351,35347,35350,35343,35345,35912,35962,35961,36001,36002,36215,36524,36562,36564,36559,36785,36865,36870,36855,36864,36858,36852,36867,36861,36869,36856,37013,37089,37085,37090,37202,37197,37196,37336,37341,37335,37340,37337,38275,38498,38499,38497,38491,38493,38500,38488,38494,38587,39138,39340,39592,39640,39717,39730,39740,20094,20602,20605,20572,20551,20547,20556,20570,20553,20581,20598,20558,20565,20597,20596,20599,20559,20495,20591,20589,20828,20885,20976,21098,21103,21202,21209,21208,21205,21264,21263,21273,21311,21312,21310,21443,26364,21830,21866,21862,21828,21854,21857,21827,21834,21809,21846,21839,21845,21807,21860,21816,21806,21852,21804,21859,21811,21825,21847,22280,22283,22281,22495,22533,22538,22534,22496,22500,22522,22530,22581,22519,22521,22816,22882,23094,23105,23113,23142,23146,23104,23100,23138,23130,23110,23114,23408,23495,23493,23492,23490,23487,23494,23561,23560,23559,23648,23644,23645,23815,23814,23822,23835,23830,23842,23825,23849,23828,23833,23844,23847,23831,24034,24120,24118,24115,24119,24247,24248,24246,24245,24254,24373,24375,24407,24428,24425,24427,24471,24473,24478,24472,24481,24480,24476,24703,24739,24713,24736,24744,24779,24756,24806,24765,24773,24763,24757,24796,24764,24792,24789,24774,24799,24760,24794,24775,25114,25115,25160,25504,25511,25458,25494,25506,25509,25463,25447,25496,25514,25457,25513,25481,25475,25499,25451,25512,25476,25480,25497,25505,25516,25490,25487,25472,25467,25449,25448,25466,25949,25942,25937,25945,25943,21855,25935,25944,25941,25940,26012,26011,26028,26063,26059,26060,26062,26205,26202,26212,26216,26214,26206,26361,21207,26395,26753,26799,26786,26771,26805,26751,26742,26801,26791,26775,26800,26755,26820,26797,26758,26757,26772,26781,26792,26783,26785,26754,27442,27578,27627,27628,27691,28046,28092,28147,28121,28082,28129,28108,28132,28155,28154,28165,28103,28107,28079,28113,28078,28126,28153,28088,28151,28149,28101,28114,28186,28085,28122,28139,28120,28138,28145,28142,28136,28102,28100,28074,28140,28095,28134,28921,28937,28938,28925,28911,29245,29309,29313,29468,29467,29462,29459,29465,29575,29701,29706,29699,29702,29694,29709,29920,29942,29943,29980,29986,30053,30054,30050,30064,30095,30164,30165,30133,30154,30157,30350,30420,30418,30427,30519,30526,30524,30518,30520,30522,30827,30787,30798,31077,31080,31085,31227,31378,31381,31520,31528,31515,31532,31526,31513,31518,31534,31890,31895,31893,32070,32067,32113,32046,32057,32060,32064,32048,32051,32068,32047,32066,32050,32049,32573,32670,32666,32716,32718,32722,32796,32842,32838,33071,33046,33059,33067,33065,33072,33060,33282,33333,33335,33334,33337,33678,33694,33688,33656,33698,33686,33725,33707,33682,33674,33683,33673,33696,33655,33659,33660,33670,33703,34389,24426,34503,34496,34486,34500,34485,34502,34507,34481,34479,34505,34899,34974,34952,34987,34962,34966,34957,34955,35219,35215,35370,35357,35363,35365,35377,35373,35359,35355,35362,35913,35930,36009,36012,36011,36008,36010,36007,36199,36198,36286,36282,36571,36575,36889,36877,36890,36887,36899,36895,36893,36880,36885,36894,36896,36879,36898,36886,36891,36884,37096,37101,37117,37207,37326,37365,37350,37347,37351,37357,37353,38281,38506,38517,38515,38520,38512,38516,38518,38519,38508,38592,38634,38633,31456,31455,38914,38915,39770,40165,40565,40575,40613,40635,20642,20621,20613,20633,20625,20608,20630,20632,20634,26368,20977,21106,21108,21109,21097,21214,21213,21211,21338,21413,21883,21888,21927,21884,21898,21917,21912,21890,21916,21930,21908,21895,21899,21891,21939,21934,21919,21822,21938,21914,21947,21932,21937,21886,21897,21931,21913,22285,22575,22570,22580,22564,22576,22577,22561,22557,22560,22777,22778,22880,23159,23194,23167,23186,23195,23207,23411,23409,23506,23500,23507,23504,23562,23563,23601,23884,23888,23860,23879,24061,24133,24125,24128,24131,24190,24266,24257,24258,24260,24380,24429,24489,24490,24488,24785,24801,24754,24758,24800,24860,24867,24826,24853,24816,24827,24820,24936,24817,24846,24822,24841,24832,24850,25119,25161,25507,25484,25551,25536,25577,25545,25542,25549,25554,25571,25552,25569,25558,25581,25582,25462,25588,25578,25563,25682,25562,25593,25950,25958,25954,25955,26001,26000,26031,26222,26224,26228,26230,26223,26257,26234,26238,26231,26366,26367,26399,26397,26874,26837,26848,26840,26839,26885,26847,26869,26862,26855,26873,26834,26866,26851,26827,26829,26893,26898,26894,26825,26842,26990,26875,27454,27450,27453,27544,27542,27580,27631,27694,27695,27692,28207,28216,28244,28193,28210,28263,28234,28192,28197,28195,28187,28251,28248,28196,28246,28270,28205,28198,28271,28212,28237,28218,28204,28227,28189,28222,28363,28297,28185,28238,28259,28228,28274,28265,28255,28953,28954,28966,28976,28961,28982,29038,28956,29260,29316,29312,29494,29477,29492,29481,29754,29738,29747,29730,29733,29749,29750,29748,29743,29723,29734,29736,29989,29990,30059,30058,30178,30171,30179,30169,30168,30174,30176,30331,30332,30358,30355,30388,30428,30543,30701,30813,30828,30831,31245,31240,31243,31237,31232,31384,31383,31382,31461,31459,31561,31574,31558,31568,31570,31572,31565,31563,31567,31569,31903,31909,32094,32080,32104,32085,32043,32110,32114,32097,32102,32098,32112,32115,21892,32724,32725,32779,32850,32901,33109,33108,33099,33105,33102,33081,33094,33086,33100,33107,33140,33298,33308,33769,33795,33784,33805,33760,33733,33803,33729,33775,33777,33780,33879,33802,33776,33804,33740,33789,33778,33738,33848,33806,33796,33756,33799,33748,33759,34395,34527,34521,34541,34516,34523,34532,34512,34526,34903,35009,35010,34993,35203,35222,35387,35424,35413,35422,35388,35393,35412,35419,35408,35398,35380,35386,35382,35414,35937,35970,36015,36028,36019,36029,36033,36027,36032,36020,36023,36022,36031,36024,36234,36229,36225,36302,36317,36299,36314,36305,36300,36315,36294,36603,36600,36604,36764,36910,36917,36913,36920,36914,36918,37122,37109,37129,37118,37219,37221,37327,37396,37397,37411,37385,37406,37389,37392,37383,37393,38292,38287,38283,38289,38291,38290,38286,38538,38542,38539,38525,38533,38534,38541,38514,38532,38593,38597,38596,38598,38599,38639,38642,38860,38917,38918,38920,39143,39146,39151,39145,39154,39149,39342,39341,40643,40653,40657,20098,20653,20661,20658,20659,20677,20670,20652,20663,20667,20655,20679,21119,21111,21117,21215,21222,21220,21218,21219,21295,21983,21992,21971,21990,21966,21980,21959,21969,21987,21988,21999,21978,21985,21957,21958,21989,21961,22290,22291,22622,22609,22616,22615,22618,22612,22635,22604,22637,22602,22626,22610,22603,22887,23233,23241,23244,23230,23229,23228,23219,23234,23218,23913,23919,24140,24185,24265,24264,24338,24409,24492,24494,24858,24847,24904,24863,24819,24859,24825,24833,24840,24910,24908,24900,24909,24894,24884,24871,24845,24838,24887,25121,25122,25619,25662,25630,25642,25645,25661,25644,25615,25628,25620,25613,25654,25622,25623,25606,25964,26015,26032,26263,26249,26247,26248,26262,26244,26264,26253,26371,27028,26989,26970,26999,26976,26964,26997,26928,27010,26954,26984,26987,26974,26963,27001,27014,26973,26979,26971,27463,27506,27584,27583,27603,27645,28322,28335,28371,28342,28354,28304,28317,28359,28357,28325,28312,28348,28346,28331,28369,28310,28316,28356,28372,28330,28327,28340,29006,29017,29033,29028,29001,29031,29020,29036,29030,29004,29029,29022,28998,29032,29014,29242,29266,29495,29509,29503,29502,29807,29786,29781,29791,29790,29761,29759,29785,29787,29788,30070,30072,30208,30192,30209,30194,30193,30202,30207,30196,30195,30430,30431,30555,30571,30566,30558,30563,30585,30570,30572,30556,30565,30568,30562,30702,30862,30896,30871,30872,30860,30857,30844,30865,30867,30847,31098,31103,31105,33836,31165,31260,31258,31264,31252,31263,31262,31391,31392,31607,31680,31584,31598,31591,31921,31923,31925,32147,32121,32145,32129,32143,32091,32622,32617,32618,32626,32681,32680,32676,32854,32856,32902,32900,33137,33136,33144,33125,33134,33139,33131,33145,33146,33126,33285,33351,33922,33911,33853,33841,33909,33894,33899,33865,33900,33883,33852,33845,33889,33891,33897,33901,33862,34398,34396,34399,34553,34579,34568,34567,34560,34558,34555,34562,34563,34566,34570,34905,35039,35028,35033,35036,35032,35037,35041,35018,35029,35026,35228,35299,35435,35442,35443,35430,35433,35440,35463,35452,35427,35488,35441,35461,35437,35426,35438,35436,35449,35451,35390,35432,35938,35978,35977,36042,36039,36040,36036,36018,36035,36034,36037,36321,36319,36328,36335,36339,36346,36330,36324,36326,36530,36611,36617,36606,36618,36767,36786,36939,36938,36947,36930,36948,36924,36949,36944,36935,36943,36942,36941,36945,36926,36929,37138,37143,37228,37226,37225,37321,37431,37463,37432,37437,37440,37438,37467,37451,37476,37457,37428,37449,37453,37445,37433,37439,37466,38296,38552,38548,38549,38605,38603,38601,38602,38647,38651,38649,38646,38742,38772,38774,38928,38929,38931,38922,38930,38924,39164,39156,39165,39166,39347,39345,39348,39649,40169,40578,40718,40723,40736,20711,20718,20709,20694,20717,20698,20693,20687,20689,20721,20686,20713,20834,20979,21123,21122,21297,21421,22014,22016,22043,22039,22013,22036,22022,22025,22029,22030,22007,22038,22047,22024,22032,22006,22296,22294,22645,22654,22659,22675,22666,22649,22661,22653,22781,22821,22818,22820,22890,22889,23265,23270,23273,23255,23254,23256,23267,23413,23518,23527,23521,23525,23526,23528,23522,23524,23519,23565,23650,23940,23943,24155,24163,24149,24151,24148,24275,24278,24330,24390,24432,24505,24903,24895,24907,24951,24930,24931,24927,24922,24920,24949,25130,25735,25688,25684,25764,25720,25695,25722,25681,25703,25652,25709,25723,25970,26017,26071,26070,26274,26280,26269,27036,27048,27029,27073,27054,27091,27083,27035,27063,27067,27051,27060,27088,27085,27053,27084,27046,27075,27043,27465,27468,27699,28467,28436,28414,28435,28404,28457,28478,28448,28460,28431,28418,28450,28415,28399,28422,28465,28472,28466,28451,28437,28459,28463,28552,28458,28396,28417,28402,28364,28407,29076,29081,29053,29066,29060,29074,29246,29330,29334,29508,29520,29796,29795,29802,29808,29805,29956,30097,30247,30221,30219,30217,30227,30433,30435,30596,30589,30591,30561,30913,30879,30887,30899,30889,30883,31118,31119,31117,31278,31281,31402,31401,31469,31471,31649,31637,31627,31605,31639,31645,31636,31631,31672,31623,31620,31929,31933,31934,32187,32176,32156,32189,32190,32160,32202,32180,32178,32177,32186,32162,32191,32181,32184,32173,32210,32199,32172,32624,32736,32737,32735,32862,32858,32903,33104,33152,33167,33160,33162,33151,33154,33255,33274,33287,33300,33310,33355,33993,33983,33990,33988,33945,33950,33970,33948,33995,33976,33984,34003,33936,33980,34001,33994,34623,34588,34619,34594,34597,34612,34584,34645,34615,34601,35059,35074,35060,35065,35064,35069,35048,35098,35055,35494,35468,35486,35491,35469,35489,35475,35492,35498,35493,35496,35480,35473,35482,35495,35946,35981,35980,36051,36049,36050,36203,36249,36245,36348,36628,36626,36629,36627,36771,36960,36952,36956,36963,36953,36958,36962,36957,36955,37145,37144,37150,37237,37240,37239,37236,37496,37504,37509,37528,37526,37499,37523,37532,37544,37500,37521,38305,38312,38313,38307,38309,38308,38553,38556,38555,38604,38610,38656,38780,38789,38902,38935,38936,39087,39089,39171,39173,39180,39177,39361,39599,39600,39654,39745,39746,40180,40182,40179,40636,40763,40778,20740,20736,20731,20725,20729,20738,20744,20745,20741,20956,21127,21128,21129,21133,21130,21232,21426,22062,22075,22073,22066,22079,22068,22057,22099,22094,22103,22132,22070,22063,22064,22656,22687,22686,22707,22684,22702,22697,22694,22893,23305,23291,23307,23285,23308,23304,23534,23532,23529,23531,23652,23653,23965,23956,24162,24159,24161,24290,24282,24287,24285,24291,24288,24392,24433,24503,24501,24950,24935,24942,24925,24917,24962,24956,24944,24939,24958,24999,24976,25003,24974,25004,24986,24996,24980,25006,25134,25705,25711,25721,25758,25778,25736,25744,25776,25765,25747,25749,25769,25746,25774,25773,25771,25754,25772,25753,25762,25779,25973,25975,25976,26286,26283,26292,26289,27171,27167,27112,27137,27166,27161,27133,27169,27155,27146,27123,27138,27141,27117,27153,27472,27470,27556,27589,27590,28479,28540,28548,28497,28518,28500,28550,28525,28507,28536,28526,28558,28538,28528,28516,28567,28504,28373,28527,28512,28511,29087,29100,29105,29096,29270,29339,29518,29527,29801,29835,29827,29822,29824,30079,30240,30249,30239,30244,30246,30241,30242,30362,30394,30436,30606,30599,30604,30609,30603,30923,30917,30906,30922,30910,30933,30908,30928,31295,31292,31296,31293,31287,31291,31407,31406,31661,31665,31684,31668,31686,31687,31681,31648,31692,31946,32224,32244,32239,32251,32216,32236,32221,32232,32227,32218,32222,32233,32158,32217,32242,32249,32629,32631,32687,32745,32806,33179,33180,33181,33184,33178,33176,34071,34109,34074,34030,34092,34093,34067,34065,34083,34081,34068,34028,34085,34047,34054,34690,34676,34678,34656,34662,34680,34664,34649,34647,34636,34643,34907,34909,35088,35079,35090,35091,35093,35082,35516,35538,35527,35524,35477,35531,35576,35506,35529,35522,35519,35504,35542,35533,35510,35513,35547,35916,35918,35948,36064,36062,36070,36068,36076,36077,36066,36067,36060,36074,36065,36205,36255,36259,36395,36368,36381,36386,36367,36393,36383,36385,36382,36538,36637,36635,36639,36649,36646,36650,36636,36638,36645,36969,36974,36968,36973,36983,37168,37165,37159,37169,37255,37257,37259,37251,37573,37563,37559,37610,37548,37604,37569,37555,37564,37586,37575,37616,37554,38317,38321,38660,38662,38663,38665,38752,38797,38795,38799,38945,38955,38940,39091,39178,39187,39186,39192,39389,39376,39391,39387,39377,39381,39378,39385,39607,39662,39663,39719,39749,39748,39799,39791,40198,40201,40195,40617,40638,40654,22696,40786,20754,20760,20756,20752,20757,20864,20906,20957,21137,21139,21235,22105,22123,22137,22121,22116,22136,22122,22120,22117,22129,22127,22124,22114,22134,22721,22718,22727,22725,22894,23325,23348,23416,23536,23566,24394,25010,24977,25001,24970,25037,25014,25022,25034,25032,25136,25797,25793,25803,25787,25788,25818,25796,25799,25794,25805,25791,25810,25812,25790,25972,26310,26313,26297,26308,26311,26296,27197,27192,27194,27225,27243,27224,27193,27204,27234,27233,27211,27207,27189,27231,27208,27481,27511,27653,28610,28593,28577,28611,28580,28609,28583,28595,28608,28601,28598,28582,28576,28596,29118,29129,29136,29138,29128,29141,29113,29134,29145,29148,29123,29124,29544,29852,29859,29848,29855,29854,29922,29964,29965,30260,30264,30266,30439,30437,30624,30622,30623,30629,30952,30938,30956,30951,31142,31309,31310,31302,31308,31307,31418,31705,31761,31689,31716,31707,31713,31721,31718,31957,31958,32266,32273,32264,32283,32291,32286,32285,32265,32272,32633,32690,32752,32753,32750,32808,33203,33193,33192,33275,33288,33368,33369,34122,34137,34120,34152,34153,34115,34121,34157,34154,34142,34691,34719,34718,34722,34701,34913,35114,35122,35109,35115,35105,35242,35238,35558,35578,35563,35569,35584,35548,35559,35566,35582,35585,35586,35575,35565,35571,35574,35580,35947,35949,35987,36084,36420,36401,36404,36418,36409,36405,36667,36655,36664,36659,36776,36774,36981,36980,36984,36978,36988,36986,37172,37266,37664,37686,37624,37683,37679,37666,37628,37675,37636,37658,37648,37670,37665,37653,37678,37657,38331,38567,38568,38570,38613,38670,38673,38678,38669,38675,38671,38747,38748,38758,38808,38960,38968,38971,38967,38957,38969,38948,39184,39208,39198,39195,39201,39194,39405,39394,39409,39608,39612,39675,39661,39720,39825,40213,40227,40230,40232,40210,40219,40664,40660,40845,40860,20778,20767,20769,20786,21237,22158,22144,22160,22149,22151,22159,22741,22739,22737,22734,23344,23338,23332,23418,23607,23656,23996,23994,23997,23992,24171,24396,24509,25033,25026,25031,25062,25035,25138,25140,25806,25802,25816,25824,25840,25830,25836,25841,25826,25837,25986,25987,26329,26326,27264,27284,27268,27298,27292,27355,27299,27262,27287,27280,27296,27484,27566,27610,27656,28632,28657,28639,28640,28635,28644,28651,28655,28544,28652,28641,28649,28629,28654,28656,29159,29151,29166,29158,29157,29165,29164,29172,29152,29237,29254,29552,29554,29865,29872,29862,29864,30278,30274,30284,30442,30643,30634,30640,30636,30631,30637,30703,30967,30970,30964,30959,30977,31143,31146,31319,31423,31751,31757,31742,31735,31756,31712,31968,31964,31966,31970,31967,31961,31965,32302,32318,32326,32311,32306,32323,32299,32317,32305,32325,32321,32308,32313,32328,32309,32319,32303,32580,32755,32764,32881,32882,32880,32879,32883,33222,33219,33210,33218,33216,33215,33213,33225,33214,33256,33289,33393,34218,34180,34174,34204,34193,34196,34223,34203,34183,34216,34186,34407,34752,34769,34739,34770,34758,34731,34747,34746,34760,34763,35131,35126,35140,35128,35133,35244,35598,35607,35609,35611,35594,35616,35613,35588,35600,35905,35903,35955,36090,36093,36092,36088,36091,36264,36425,36427,36424,36426,36676,36670,36674,36677,36671,36991,36989,36996,36993,36994,36992,37177,37283,37278,37276,37709,37762,37672,37749,37706,37733,37707,37656,37758,37740,37723,37744,37722,37716,38346,38347,38348,38344,38342,38577,38584,38614,38684,38686,38816,38867,38982,39094,39221,39425,39423,39854,39851,39850,39853,40251,40255,40587,40655,40670,40668,40669,40667,40766,40779,21474,22165,22190,22745,22744,23352,24413,25059,25139,25844,25842,25854,25862,25850,25851,25847,26039,26332,26406,27315,27308,27331,27323,27320,27330,27310,27311,27487,27512,27567,28681,28683,28670,28678,28666,28689,28687,29179,29180,29182,29176,29559,29557,29863,29887,29973,30294,30296,30290,30653,30655,30651,30652,30990,31150,31329,31330,31328,31428,31429,31787,31783,31786,31774,31779,31777,31975,32340,32341,32350,32346,32353,32338,32345,32584,32761,32763,32887,32886,33229,33231,33290,34255,34217,34253,34256,34249,34224,34234,34233,34214,34799,34796,34802,34784,35206,35250,35316,35624,35641,35628,35627,35920,36101,36441,36451,36454,36452,36447,36437,36544,36681,36685,36999,36995,37000,37291,37292,37328,37780,37770,37782,37794,37811,37806,37804,37808,37784,37786,37783,38356,38358,38352,38357,38626,38620,38617,38619,38622,38692,38819,38822,38829,38905,38989,38991,38988,38990,38995,39098,39230,39231,39229,39214,39333,39438,39617,39683,39686,39759,39758,39757,39882,39881,39933,39880,39872,40273,40285,40288,40672,40725,40748,20787,22181,22750,22751,22754,23541,40848,24300,25074,25079,25078,25077,25856,25871,26336,26333,27365,27357,27354,27347,28699,28703,28712,28698,28701,28693,28696,29190,29197,29272,29346,29560,29562,29885,29898,29923,30087,30086,30303,30305,30663,31001,31153,31339,31337,31806,31807,31800,31805,31799,31808,32363,32365,32377,32361,32362,32645,32371,32694,32697,32696,33240,34281,34269,34282,34261,34276,34277,34295,34811,34821,34829,34809,34814,35168,35167,35158,35166,35649,35676,35672,35657,35674,35662,35663,35654,35673,36104,36106,36476,36466,36487,36470,36460,36474,36468,36692,36686,36781,37002,37003,37297,37294,37857,37841,37855,37827,37832,37852,37853,37846,37858,37837,37848,37860,37847,37864,38364,38580,38627,38698,38695,38753,38876,38907,39006,39000,39003,39100,39237,39241,39446,39449,39693,39912,39911,39894,39899,40329,40289,40306,40298,40300,40594,40599,40595,40628,21240,22184,22199,22198,22196,22204,22756,23360,23363,23421,23542,24009,25080,25082,25880,25876,25881,26342,26407,27372,28734,28720,28722,29200,29563,29903,30306,30309,31014,31018,31020,31019,31431,31478,31820,31811,31821,31983,31984,36782,32381,32380,32386,32588,32768,33242,33382,34299,34297,34321,34298,34310,34315,34311,34314,34836,34837,35172,35258,35320,35696,35692,35686,35695,35679,35691,36111,36109,36489,36481,36485,36482,37300,37323,37912,37891,37885,38369,38704,39108,39250,39249,39336,39467,39472,39479,39477,39955,39949,40569,40629,40680,40751,40799,40803,40801,20791,20792,22209,22208,22210,22804,23660,24013,25084,25086,25885,25884,26005,26345,27387,27396,27386,27570,28748,29211,29351,29910,29908,30313,30675,31824,32399,32396,32700,34327,34349,34330,34851,34850,34849,34847,35178,35180,35261,35700,35703,35709,36115,36490,36493,36491,36703,36783,37306,37934,37939,37941,37946,37944,37938,37931,38370,38712,38713,38706,38911,39015,39013,39255,39493,39491,39488,39486,39631,39764,39761,39981,39973,40367,40372,40386,40376,40605,40687,40729,40796,40806,40807,20796,20795,22216,22218,22217,23423,24020,24018,24398,25087,25892,27402,27489,28753,28760,29568,29924,30090,30318,30316,31155,31840,31839,32894,32893,33247,35186,35183,35324,35712,36118,36119,36497,36499,36705,37192,37956,37969,37970,38717,38718,38851,38849,39019,39253,39509,39501,39634,39706,40009,39985,39998,39995,40403,40407,40756,40812,40810,40852,22220,24022,25088,25891,25899,25898,26348,27408,29914,31434,31844,31843,31845,32403,32406,32404,33250,34360,34367,34865,35722,37008,37007,37987,37984,37988,38760,39023,39260,39514,39515,39511,39635,39636,39633,40020,40023,40022,40421,40607,40692,22225,22761,25900,28766,30321,30322,30679,32592,32648,34870,34873,34914,35731,35730,35734,33399,36123,37312,37994,38722,38728,38724,38854,39024,39519,39714,39768,40031,40441,40442,40572,40573,40711,40823,40818,24307,27414,28771,31852,31854,34875,35264,36513,37313,38002,38000,39025,39262,39638,39715,40652,28772,30682,35738,38007,38857,39522,39525,32412,35740,36522,37317,38013,38014,38012,40055,40056,40695,35924,38015,40474,29224,39530,39729,40475,40478,31858,9312,9313,9314,9315,9316,9317,9318,9319,9320,9321,9332,9333,9334,9335,9336,9337,9338,9339,9340,9341,8560,8561,8562,8563,8564,8565,8566,8567,8568,8569,20022,20031,20101,20128,20866,20886,20907,21241,21304,21353,21430,22794,23424,24027,12083,24191,24308,24400,24417,25908,26080,30098,30326,36789,38582,168,710,12541,12542,12445,12446,12291,20189,12293,12294,12295,12540,65339,65341,10045,12353,12354,12355,12356,12357,12358,12359,12360,12361,12362,12363,12364,12365,12366,12367,12368,12369,12370,12371,12372,12373,12374,12375,12376,12377,12378,12379,12380,12381,12382,12383,12384,12385,12386,12387,12388,12389,12390,12391,12392,12393,12394,12395,12396,12397,12398,12399,12400,12401,12402,12403,12404,12405,12406,12407,12408,12409,12410,12411,12412,12413,12414,12415,12416,12417,12418,12419,12420,12421,12422,12423,12424,12425,12426,12427,12428,12429,12430,12431,12432,12433,12434,12435,12449,12450,12451,12452,12453,12454,12455,12456,12457,12458,12459,12460,12461,12462,12463,12464,12465,12466,12467,12468,12469,12470,12471,12472,12473,12474,12475,12476,12477,12478,12479,12480,12481,12482,12483,12484,12485,12486,12487,12488,12489,12490,12491,12492,12493,12494,12495,12496,12497,12498,12499,12500,12501,12502,12503,12504,12505,12506,12507,12508,12509,12510,12511,12512,12513,12514,12515,12516,12517,12518,12519,12520,12521,12522,12523,12524,12525,12526,12527,12528,12529,12530,12531,12532,12533,12534,1040,1041,1042,1043,1044,1045,1025,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1105,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,8679,8632,8633,12751,131276,20058,131210,20994,17553,40880,20872,40881,161287,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,65506,65508,65287,65282,12849,8470,8481,12443,12444,11904,11908,11910,11911,11912,11914,11916,11917,11925,11932,11933,11941,11943,11946,11948,11950,11958,11964,11966,11974,11978,11980,11981,11983,11990,11991,11998,12003,null,null,null,643,592,603,596,629,339,248,331,650,618,20034,20060,20981,21274,21378,19975,19980,20039,20109,22231,64012,23662,24435,19983,20871,19982,20014,20115,20162,20169,20168,20888,21244,21356,21433,22304,22787,22828,23568,24063,26081,27571,27596,27668,29247,20017,20028,20200,20188,20201,20193,20189,20186,21004,21276,21324,22306,22307,22807,22831,23425,23428,23570,23611,23668,23667,24068,24192,24194,24521,25097,25168,27669,27702,27715,27711,27707,29358,29360,29578,31160,32906,38430,20238,20248,20268,20213,20244,20209,20224,20215,20232,20253,20226,20229,20258,20243,20228,20212,20242,20913,21011,21001,21008,21158,21282,21279,21325,21386,21511,22241,22239,22318,22314,22324,22844,22912,22908,22917,22907,22910,22903,22911,23382,23573,23589,23676,23674,23675,23678,24031,24181,24196,24322,24346,24436,24533,24532,24527,25180,25182,25188,25185,25190,25186,25177,25184,25178,25189,26095,26094,26430,26425,26424,26427,26426,26431,26428,26419,27672,27718,27730,27740,27727,27722,27732,27723,27724,28785,29278,29364,29365,29582,29994,30335,31349,32593,33400,33404,33408,33405,33407,34381,35198,37017,37015,37016,37019,37012,38434,38436,38432,38435,20310,20283,20322,20297,20307,20324,20286,20327,20306,20319,20289,20312,20269,20275,20287,20321,20879,20921,21020,21022,21025,21165,21166,21257,21347,21362,21390,21391,21552,21559,21546,21588,21573,21529,21532,21541,21528,21565,21583,21569,21544,21540,21575,22254,22247,22245,22337,22341,22348,22345,22347,22354,22790,22848,22950,22936,22944,22935,22926,22946,22928,22927,22951,22945,23438,23442,23592,23594,23693,23695,23688,23691,23689,23698,23690,23686,23699,23701,24032,24074,24078,24203,24201,24204,24200,24205,24325,24349,24440,24438,24530,24529,24528,24557,24552,24558,24563,24545,24548,24547,24570,24559,24567,24571,24576,24564,25146,25219,25228,25230,25231,25236,25223,25201,25211,25210,25200,25217,25224,25207,25213,25202,25204,25911,26096,26100,26099,26098,26101,26437,26439,26457,26453,26444,26440,26461,26445,26458,26443,27600,27673,27674,27768,27751,27755,27780,27787,27791,27761,27759,27753,27802,27757,27783,27797,27804,27750,27763,27749,27771,27790,28788,28794,29283,29375,29373,29379,29382,29377,29370,29381,29589,29591,29587,29588,29586,30010,30009,30100,30101,30337,31037,32820,32917,32921,32912,32914,32924,33424,33423,33413,33422,33425,33427,33418,33411,33412,35960,36809,36799,37023,37025,37029,37022,37031,37024,38448,38440,38447,38445,20019,20376,20348,20357,20349,20352,20359,20342,20340,20361,20356,20343,20300,20375,20330,20378,20345,20353,20344,20368,20380,20372,20382,20370,20354,20373,20331,20334,20894,20924,20926,21045,21042,21043,21062,21041,21180,21258,21259,21308,21394,21396,21639,21631,21633,21649,21634,21640,21611,21626,21630,21605,21612,21620,21606,21645,21615,21601,21600,21656,21603,21607,21604,22263,22265,22383,22386,22381,22379,22385,22384,22390,22400,22389,22395,22387,22388,22370,22376,22397,22796,22853,22965,22970,22991,22990,22962,22988,22977,22966,22972,22979,22998,22961,22973,22976,22984,22964,22983,23394,23397,23443,23445,23620,23623,23726,23716,23712,23733,23727,23720,23724,23711,23715,23725,23714,23722,23719,23709,23717,23734,23728,23718,24087,24084,24089,24360,24354,24355,24356,24404,24450,24446,24445,24542,24549,24621,24614,24601,24626,24587,24628,24586,24599,24627,24602,24606,24620,24610,24589,24592,24622,24595,24593,24588,24585,24604,25108,25149,25261,25268,25297,25278,25258,25270,25290,25262,25267,25263,25275,25257,25264,25272,25917,26024,26043,26121,26108,26116,26130,26120,26107,26115,26123,26125,26117,26109,26129,26128,26358,26378,26501,26476,26510,26514,26486,26491,26520,26502,26500,26484,26509,26508,26490,26527,26513,26521,26499,26493,26497,26488,26489,26516,27429,27520,27518,27614,27677,27795,27884,27883,27886,27865,27830,27860,27821,27879,27831,27856,27842,27834,27843,27846,27885,27890,27858,27869,27828,27786,27805,27776,27870,27840,27952,27853,27847,27824,27897,27855,27881,27857,28820,28824,28805,28819,28806,28804,28817,28822,28802,28826,28803,29290,29398,29387,29400,29385,29404,29394,29396,29402,29388,29393,29604,29601,29613,29606,29602,29600,29612,29597,29917,29928,30015,30016,30014,30092,30104,30383,30451,30449,30448,30453,30712,30716,30713,30715,30714,30711,31042,31039,31173,31352,31355,31483,31861,31997,32821,32911,32942,32931,32952,32949,32941,33312,33440,33472,33451,33434,33432,33435,33461,33447,33454,33468,33438,33466,33460,33448,33441,33449,33474,33444,33475,33462,33442,34416,34415,34413,34414,35926,36818,36811,36819,36813,36822,36821,36823,37042,37044,37039,37043,37040,38457,38461,38460,38458,38467,20429,20421,20435,20402,20425,20427,20417,20436,20444,20441,20411,20403,20443,20423,20438,20410,20416,20409,20460,21060,21065,21184,21186,21309,21372,21399,21398,21401,21400,21690,21665,21677,21669,21711,21699,33549,21687,21678,21718,21686,21701,21702,21664,21616,21692,21666,21694,21618,21726,21680,22453,22430,22431,22436,22412,22423,22429,22427,22420,22424,22415,22425,22437,22426,22421,22772,22797,22867,23009,23006,23022,23040,23025,23005,23034,23037,23036,23030,23012,23026,23031,23003,23017,23027,23029,23008,23038,23028,23021,23464,23628,23760,23768,23756,23767,23755,23771,23774,23770,23753,23751,23754,23766,23763,23764,23759,23752,23750,23758,23775,23800,24057,24097,24098,24099,24096,24100,24240,24228,24226,24219,24227,24229,24327,24366,24406,24454,24631,24633,24660,24690,24670,24645,24659,24647,24649,24667,24652,24640,24642,24671,24612,24644,24664,24678,24686,25154,25155,25295,25357,25355,25333,25358,25347,25323,25337,25359,25356,25336,25334,25344,25363,25364,25338,25365,25339,25328,25921,25923,26026,26047,26166,26145,26162,26165,26140,26150,26146,26163,26155,26170,26141,26164,26169,26158,26383,26384,26561,26610,26568,26554,26588,26555,26616,26584,26560,26551,26565,26603,26596,26591,26549,26573,26547,26615,26614,26606,26595,26562,26553,26574,26599,26608,26546,26620,26566,26605,26572,26542,26598,26587,26618,26569,26570,26563,26602,26571,27432,27522,27524,27574,27606,27608,27616,27680,27681,27944,27956,27949,27935,27964,27967,27922,27914,27866,27955,27908,27929,27962,27930,27921,27904,27933,27970,27905,27928,27959,27907,27919,27968,27911,27936,27948,27912,27938,27913,27920,28855,28831,28862,28849,28848,28833,28852,28853,28841,29249,29257,29258,29292,29296,29299,29294,29386,29412,29416,29419,29407,29418,29414,29411,29573,29644,29634,29640,29637,29625,29622,29621,29620,29675,29631,29639,29630,29635,29638,29624,29643,29932,29934,29998,30023,30024,30119,30122,30329,30404,30472,30467,30468,30469,30474,30455,30459,30458,30695,30696,30726,30737,30738,30725,30736,30735,30734,30729,30723,30739,31050,31052,31051,31045,31044,31189,31181,31183,31190,31182,31360,31358,31441,31488,31489,31866,31864,31865,31871,31872,31873,32003,32008,32001,32600,32657,32653,32702,32775,32782,32783,32788,32823,32984,32967,32992,32977,32968,32962,32976,32965,32995,32985,32988,32970,32981,32969,32975,32983,32998,32973,33279,33313,33428,33497,33534,33529,33543,33512,33536,33493,33594,33515,33494,33524,33516,33505,33522,33525,33548,33531,33526,33520,33514,33508,33504,33530,33523,33517,34423,34420,34428,34419,34881,34894,34919,34922,34921,35283,35332,35335,36210,36835,36833,36846,36832,37105,37053,37055,37077,37061,37054,37063,37067,37064,37332,37331,38484,38479,38481,38483,38474,38478,20510,20485,20487,20499,20514,20528,20507,20469,20468,20531,20535,20524,20470,20471,20503,20508,20512,20519,20533,20527,20529,20494,20826,20884,20883,20938,20932,20933,20936,20942,21089,21082,21074,21086,21087,21077,21090,21197,21262,21406,21798,21730,21783,21778,21735,21747,21732,21786,21759,21764,21768,21739,21777,21765,21745,21770,21755,21751,21752,21728,21774,21763,21771,22273,22274,22476,22578,22485,22482,22458,22470,22461,22460,22456,22454,22463,22471,22480,22457,22465,22798,22858,23065,23062,23085,23086,23061,23055,23063,23050,23070,23091,23404,23463,23469,23468,23555,23638,23636,23788,23807,23790,23793,23799,23808,23801,24105,24104,24232,24238,24234,24236,24371,24368,24423,24669,24666,24679,24641,24738,24712,24704,24722,24705,24733,24707,24725,24731,24727,24711,24732,24718,25113,25158,25330,25360,25430,25388,25412,25413,25398,25411,25572,25401,25419,25418,25404,25385,25409,25396,25432,25428,25433,25389,25415,25395,25434,25425,25400,25431,25408,25416,25930,25926,26054,26051,26052,26050,26186,26207,26183,26193,26386,26387,26655,26650,26697,26674,26675,26683,26699,26703,26646,26673,26652,26677,26667,26669,26671,26702,26692,26676,26653,26642,26644,26662,26664,26670,26701,26682,26661,26656,27436,27439,27437,27441,27444,27501,32898,27528,27622,27620,27624,27619,27618,27623,27685,28026,28003,28004,28022,27917,28001,28050,27992,28002,28013,28015,28049,28045,28143,28031,28038,27998,28007,28000,28055,28016,28028,27999,28034,28056,27951,28008,28043,28030,28032,28036,27926,28035,28027,28029,28021,28048,28892,28883,28881,28893,28875,32569,28898,28887,28882,28894,28896,28884,28877,28869,28870,28871,28890,28878,28897,29250,29304,29303,29302,29440,29434,29428,29438,29430,29427,29435,29441,29651,29657,29669,29654,29628,29671,29667,29673,29660,29650,29659,29652,29661,29658,29655,29656,29672,29918,29919,29940,29941,29985,30043,30047,30128,30145,30139,30148,30144,30143,30134,30138,30346,30409,30493,30491,30480,30483,30482,30499,30481,30485,30489,30490,30498,30503,30755,30764,30754,30773,30767,30760,30766,30763,30753,30761,30771,30762,30769,31060,31067,31055,31068,31059,31058,31057,31211,31212,31200,31214,31213,31210,31196,31198,31197,31366,31369,31365,31371,31372,31370,31367,31448,31504,31492,31507,31493,31503,31496,31498,31502,31497,31506,31876,31889,31882,31884,31880,31885,31877,32030,32029,32017,32014,32024,32022,32019,32031,32018,32015,32012,32604,32609,32606,32608,32605,32603,32662,32658,32707,32706,32704,32790,32830,32825,33018,33010,33017,33013,33025,33019,33024,33281,33327,33317,33587,33581,33604,33561,33617,33573,33622,33599,33601,33574,33564,33570,33602,33614,33563,33578,33544,33596,33613,33558,33572,33568,33591,33583,33577,33607,33605,33612,33619,33566,33580,33611,33575,33608,34387,34386,34466,34472,34454,34445,34449,34462,34439,34455,34438,34443,34458,34437,34469,34457,34465,34471,34453,34456,34446,34461,34448,34452,34883,34884,34925,34933,34934,34930,34944,34929,34943,34927,34947,34942,34932,34940,35346,35911,35927,35963,36004,36003,36214,36216,36277,36279,36278,36561,36563,36862,36853,36866,36863,36859,36868,36860,36854,37078,37088,37081,37082,37091,37087,37093,37080,37083,37079,37084,37092,37200,37198,37199,37333,37346,37338,38492,38495,38588,39139,39647,39727,20095,20592,20586,20577,20574,20576,20563,20555,20573,20594,20552,20557,20545,20571,20554,20578,20501,20549,20575,20585,20587,20579,20580,20550,20544,20590,20595,20567,20561,20944,21099,21101,21100,21102,21206,21203,21293,21404,21877,21878,21820,21837,21840,21812,21802,21841,21858,21814,21813,21808,21842,21829,21772,21810,21861,21838,21817,21832,21805,21819,21824,21835,22282,22279,22523,22548,22498,22518,22492,22516,22528,22509,22525,22536,22520,22539,22515,22479,22535,22510,22499,22514,22501,22508,22497,22542,22524,22544,22503,22529,22540,22513,22505,22512,22541,22532,22876,23136,23128,23125,23143,23134,23096,23093,23149,23120,23135,23141,23148,23123,23140,23127,23107,23133,23122,23108,23131,23112,23182,23102,23117,23097,23116,23152,23145,23111,23121,23126,23106,23132,23410,23406,23489,23488,23641,23838,23819,23837,23834,23840,23820,23848,23821,23846,23845,23823,23856,23826,23843,23839,23854,24126,24116,24241,24244,24249,24242,24243,24374,24376,24475,24470,24479,24714,24720,24710,24766,24752,24762,24787,24788,24783,24804,24793,24797,24776,24753,24795,24759,24778,24767,24771,24781,24768,25394,25445,25482,25474,25469,25533,25502,25517,25501,25495,25515,25486,25455,25479,25488,25454,25519,25461,25500,25453,25518,25468,25508,25403,25503,25464,25477,25473,25489,25485,25456,25939,26061,26213,26209,26203,26201,26204,26210,26392,26745,26759,26768,26780,26733,26734,26798,26795,26966,26735,26787,26796,26793,26741,26740,26802,26767,26743,26770,26748,26731,26738,26794,26752,26737,26750,26779,26774,26763,26784,26761,26788,26744,26747,26769,26764,26762,26749,27446,27443,27447,27448,27537,27535,27533,27534,27532,27690,28096,28075,28084,28083,28276,28076,28137,28130,28087,28150,28116,28160,28104,28128,28127,28118,28094,28133,28124,28125,28123,28148,28106,28093,28141,28144,28090,28117,28098,28111,28105,28112,28146,28115,28157,28119,28109,28131,28091,28922,28941,28919,28951,28916,28940,28912,28932,28915,28944,28924,28927,28934,28947,28928,28920,28918,28939,28930,28942,29310,29307,29308,29311,29469,29463,29447,29457,29464,29450,29448,29439,29455,29470,29576,29686,29688,29685,29700,29697,29693,29703,29696,29690,29692,29695,29708,29707,29684,29704,30052,30051,30158,30162,30159,30155,30156,30161,30160,30351,30345,30419,30521,30511,30509,30513,30514,30516,30515,30525,30501,30523,30517,30792,30802,30793,30797,30794,30796,30758,30789,30800,31076,31079,31081,31082,31075,31083,31073,31163,31226,31224,31222,31223,31375,31380,31376,31541,31559,31540,31525,31536,31522,31524,31539,31512,31530,31517,31537,31531,31533,31535,31538,31544,31514,31523,31892,31896,31894,31907,32053,32061,32056,32054,32058,32069,32044,32041,32065,32071,32062,32063,32074,32059,32040,32611,32661,32668,32669,32667,32714,32715,32717,32720,32721,32711,32719,32713,32799,32798,32795,32839,32835,32840,33048,33061,33049,33051,33069,33055,33068,33054,33057,33045,33063,33053,33058,33297,33336,33331,33338,33332,33330,33396,33680,33699,33704,33677,33658,33651,33700,33652,33679,33665,33685,33689,33653,33684,33705,33661,33667,33676,33693,33691,33706,33675,33662,33701,33711,33672,33687,33712,33663,33702,33671,33710,33654,33690,34393,34390,34495,34487,34498,34497,34501,34490,34480,34504,34489,34483,34488,34508,34484,34491,34492,34499,34493,34494,34898,34953,34965,34984,34978,34986,34970,34961,34977,34975,34968,34983,34969,34971,34967,34980,34988,34956,34963,34958,35202,35286,35289,35285,35376,35367,35372,35358,35897,35899,35932,35933,35965,36005,36221,36219,36217,36284,36290,36281,36287,36289,36568,36574,36573,36572,36567,36576,36577,36900,36875,36881,36892,36876,36897,37103,37098,37104,37108,37106,37107,37076,37099,37100,37097,37206,37208,37210,37203,37205,37356,37364,37361,37363,37368,37348,37369,37354,37355,37367,37352,37358,38266,38278,38280,38524,38509,38507,38513,38511,38591,38762,38916,39141,39319,20635,20629,20628,20638,20619,20643,20611,20620,20622,20637,20584,20636,20626,20610,20615,20831,20948,21266,21265,21412,21415,21905,21928,21925,21933,21879,22085,21922,21907,21896,21903,21941,21889,21923,21906,21924,21885,21900,21926,21887,21909,21921,21902,22284,22569,22583,22553,22558,22567,22563,22568,22517,22600,22565,22556,22555,22579,22591,22582,22574,22585,22584,22573,22572,22587,22881,23215,23188,23199,23162,23202,23198,23160,23206,23164,23205,23212,23189,23214,23095,23172,23178,23191,23171,23179,23209,23163,23165,23180,23196,23183,23187,23197,23530,23501,23499,23508,23505,23498,23502,23564,23600,23863,23875,23915,23873,23883,23871,23861,23889,23886,23893,23859,23866,23890,23869,23857,23897,23874,23865,23881,23864,23868,23858,23862,23872,23877,24132,24129,24408,24486,24485,24491,24777,24761,24780,24802,24782,24772,24852,24818,24842,24854,24837,24821,24851,24824,24828,24830,24769,24835,24856,24861,24848,24831,24836,24843,25162,25492,25521,25520,25550,25573,25576,25583,25539,25757,25587,25546,25568,25590,25557,25586,25589,25697,25567,25534,25565,25564,25540,25560,25555,25538,25543,25548,25547,25544,25584,25559,25561,25906,25959,25962,25956,25948,25960,25957,25996,26013,26014,26030,26064,26066,26236,26220,26235,26240,26225,26233,26218,26226,26369,26892,26835,26884,26844,26922,26860,26858,26865,26895,26838,26871,26859,26852,26870,26899,26896,26867,26849,26887,26828,26888,26992,26804,26897,26863,26822,26900,26872,26832,26877,26876,26856,26891,26890,26903,26830,26824,26845,26846,26854,26868,26833,26886,26836,26857,26901,26917,26823,27449,27451,27455,27452,27540,27543,27545,27541,27581,27632,27634,27635,27696,28156,28230,28231,28191,28233,28296,28220,28221,28229,28258,28203,28223,28225,28253,28275,28188,28211,28235,28224,28241,28219,28163,28206,28254,28264,28252,28257,28209,28200,28256,28273,28267,28217,28194,28208,28243,28261,28199,28280,28260,28279,28245,28281,28242,28262,28213,28214,28250,28960,28958,28975,28923,28974,28977,28963,28965,28962,28978,28959,28968,28986,28955,29259,29274,29320,29321,29318,29317,29323,29458,29451,29488,29474,29489,29491,29479,29490,29485,29478,29475,29493,29452,29742,29740,29744,29739,29718,29722,29729,29741,29745,29732,29731,29725,29737,29728,29746,29947,29999,30063,30060,30183,30170,30177,30182,30173,30175,30180,30167,30357,30354,30426,30534,30535,30532,30541,30533,30538,30542,30539,30540,30686,30700,30816,30820,30821,30812,30829,30833,30826,30830,30832,30825,30824,30814,30818,31092,31091,31090,31088,31234,31242,31235,31244,31236,31385,31462,31460,31562,31547,31556,31560,31564,31566,31552,31576,31557,31906,31902,31912,31905,32088,32111,32099,32083,32086,32103,32106,32079,32109,32092,32107,32082,32084,32105,32081,32095,32078,32574,32575,32613,32614,32674,32672,32673,32727,32849,32847,32848,33022,32980,33091,33098,33106,33103,33095,33085,33101,33082,33254,33262,33271,33272,33273,33284,33340,33341,33343,33397,33595,33743,33785,33827,33728,33768,33810,33767,33764,33788,33782,33808,33734,33736,33771,33763,33727,33793,33757,33765,33752,33791,33761,33739,33742,33750,33781,33737,33801,33807,33758,33809,33798,33730,33779,33749,33786,33735,33745,33770,33811,33731,33772,33774,33732,33787,33751,33762,33819,33755,33790,34520,34530,34534,34515,34531,34522,34538,34525,34539,34524,34540,34537,34519,34536,34513,34888,34902,34901,35002,35031,35001,35000,35008,35006,34998,35004,34999,35005,34994,35073,35017,35221,35224,35223,35293,35290,35291,35406,35405,35385,35417,35392,35415,35416,35396,35397,35410,35400,35409,35402,35404,35407,35935,35969,35968,36026,36030,36016,36025,36021,36228,36224,36233,36312,36307,36301,36295,36310,36316,36303,36309,36313,36296,36311,36293,36591,36599,36602,36601,36582,36590,36581,36597,36583,36584,36598,36587,36593,36588,36596,36585,36909,36916,36911,37126,37164,37124,37119,37116,37128,37113,37115,37121,37120,37127,37125,37123,37217,37220,37215,37218,37216,37377,37386,37413,37379,37402,37414,37391,37388,37376,37394,37375,37373,37382,37380,37415,37378,37404,37412,37401,37399,37381,37398,38267,38285,38284,38288,38535,38526,38536,38537,38531,38528,38594,38600,38595,38641,38640,38764,38768,38766,38919,39081,39147,40166,40697,20099,20100,20150,20669,20671,20678,20654,20676,20682,20660,20680,20674,20656,20673,20666,20657,20683,20681,20662,20664,20951,21114,21112,21115,21116,21955,21979,21964,21968,21963,21962,21981,21952,21972,21956,21993,21951,21970,21901,21967,21973,21986,21974,21960,22002,21965,21977,21954,22292,22611,22632,22628,22607,22605,22601,22639,22613,22606,22621,22617,22629,22619,22589,22627,22641,22780,23239,23236,23243,23226,23224,23217,23221,23216,23231,23240,23227,23238,23223,23232,23242,23220,23222,23245,23225,23184,23510,23512,23513,23583,23603,23921,23907,23882,23909,23922,23916,23902,23912,23911,23906,24048,24143,24142,24138,24141,24139,24261,24268,24262,24267,24263,24384,24495,24493,24823,24905,24906,24875,24901,24886,24882,24878,24902,24879,24911,24873,24896,25120,37224,25123,25125,25124,25541,25585,25579,25616,25618,25609,25632,25636,25651,25667,25631,25621,25624,25657,25655,25634,25635,25612,25638,25648,25640,25665,25653,25647,25610,25626,25664,25637,25639,25611,25575,25627,25646,25633,25614,25967,26002,26067,26246,26252,26261,26256,26251,26250,26265,26260,26232,26400,26982,26975,26936,26958,26978,26993,26943,26949,26986,26937,26946,26967,26969,27002,26952,26953,26933,26988,26931,26941,26981,26864,27000,26932,26985,26944,26991,26948,26998,26968,26945,26996,26956,26939,26955,26935,26972,26959,26961,26930,26962,26927,27003,26940,27462,27461,27459,27458,27464,27457,27547,64013,27643,27644,27641,27639,27640,28315,28374,28360,28303,28352,28319,28307,28308,28320,28337,28345,28358,28370,28349,28353,28318,28361,28343,28336,28365,28326,28367,28338,28350,28355,28380,28376,28313,28306,28302,28301,28324,28321,28351,28339,28368,28362,28311,28334,28323,28999,29012,29010,29027,29024,28993,29021,29026,29042,29048,29034,29025,28994,29016,28995,29003,29040,29023,29008,29011,28996,29005,29018,29263,29325,29324,29329,29328,29326,29500,29506,29499,29498,29504,29514,29513,29764,29770,29771,29778,29777,29783,29760,29775,29776,29774,29762,29766,29773,29780,29921,29951,29950,29949,29981,30073,30071,27011,30191,30223,30211,30199,30206,30204,30201,30200,30224,30203,30198,30189,30197,30205,30361,30389,30429,30549,30559,30560,30546,30550,30554,30569,30567,30548,30553,30573,30688,30855,30874,30868,30863,30852,30869,30853,30854,30881,30851,30841,30873,30848,30870,30843,31100,31106,31101,31097,31249,31256,31257,31250,31255,31253,31266,31251,31259,31248,31395,31394,31390,31467,31590,31588,31597,31604,31593,31602,31589,31603,31601,31600,31585,31608,31606,31587,31922,31924,31919,32136,32134,32128,32141,32127,32133,32122,32142,32123,32131,32124,32140,32148,32132,32125,32146,32621,32619,32615,32616,32620,32678,32677,32679,32731,32732,32801,33124,33120,33143,33116,33129,33115,33122,33138,26401,33118,33142,33127,33135,33092,33121,33309,33353,33348,33344,33346,33349,34033,33855,33878,33910,33913,33935,33933,33893,33873,33856,33926,33895,33840,33869,33917,33882,33881,33908,33907,33885,34055,33886,33847,33850,33844,33914,33859,33912,33842,33861,33833,33753,33867,33839,33858,33837,33887,33904,33849,33870,33868,33874,33903,33989,33934,33851,33863,33846,33843,33896,33918,33860,33835,33888,33876,33902,33872,34571,34564,34551,34572,34554,34518,34549,34637,34552,34574,34569,34561,34550,34573,34565,35030,35019,35021,35022,35038,35035,35034,35020,35024,35205,35227,35295,35301,35300,35297,35296,35298,35292,35302,35446,35462,35455,35425,35391,35447,35458,35460,35445,35459,35457,35444,35450,35900,35915,35914,35941,35940,35942,35974,35972,35973,36044,36200,36201,36241,36236,36238,36239,36237,36243,36244,36240,36242,36336,36320,36332,36337,36334,36304,36329,36323,36322,36327,36338,36331,36340,36614,36607,36609,36608,36613,36615,36616,36610,36619,36946,36927,36932,36937,36925,37136,37133,37135,37137,37142,37140,37131,37134,37230,37231,37448,37458,37424,37434,37478,37427,37477,37470,37507,37422,37450,37446,37485,37484,37455,37472,37479,37487,37430,37473,37488,37425,37460,37475,37456,37490,37454,37459,37452,37462,37426,38303,38300,38302,38299,38546,38547,38545,38551,38606,38650,38653,38648,38645,38771,38775,38776,38770,38927,38925,38926,39084,39158,39161,39343,39346,39344,39349,39597,39595,39771,40170,40173,40167,40576,40701,20710,20692,20695,20712,20723,20699,20714,20701,20708,20691,20716,20720,20719,20707,20704,20952,21120,21121,21225,21227,21296,21420,22055,22037,22028,22034,22012,22031,22044,22017,22035,22018,22010,22045,22020,22015,22009,22665,22652,22672,22680,22662,22657,22655,22644,22667,22650,22663,22673,22670,22646,22658,22664,22651,22676,22671,22782,22891,23260,23278,23269,23253,23274,23258,23277,23275,23283,23266,23264,23259,23276,23262,23261,23257,23272,23263,23415,23520,23523,23651,23938,23936,23933,23942,23930,23937,23927,23946,23945,23944,23934,23932,23949,23929,23935,24152,24153,24147,24280,24273,24279,24270,24284,24277,24281,24274,24276,24388,24387,24431,24502,24876,24872,24897,24926,24945,24947,24914,24915,24946,24940,24960,24948,24916,24954,24923,24933,24891,24938,24929,24918,25129,25127,25131,25643,25677,25691,25693,25716,25718,25714,25715,25725,25717,25702,25766,25678,25730,25694,25692,25675,25683,25696,25680,25727,25663,25708,25707,25689,25701,25719,25971,26016,26273,26272,26271,26373,26372,26402,27057,27062,27081,27040,27086,27030,27056,27052,27068,27025,27033,27022,27047,27021,27049,27070,27055,27071,27076,27069,27044,27092,27065,27082,27034,27087,27059,27027,27050,27041,27038,27097,27031,27024,27074,27061,27045,27078,27466,27469,27467,27550,27551,27552,27587,27588,27646,28366,28405,28401,28419,28453,28408,28471,28411,28462,28425,28494,28441,28442,28455,28440,28475,28434,28397,28426,28470,28531,28409,28398,28461,28480,28464,28476,28469,28395,28423,28430,28483,28421,28413,28406,28473,28444,28412,28474,28447,28429,28446,28424,28449,29063,29072,29065,29056,29061,29058,29071,29051,29062,29057,29079,29252,29267,29335,29333,29331,29507,29517,29521,29516,29794,29811,29809,29813,29810,29799,29806,29952,29954,29955,30077,30096,30230,30216,30220,30229,30225,30218,30228,30392,30593,30588,30597,30594,30574,30592,30575,30590,30595,30898,30890,30900,30893,30888,30846,30891,30878,30885,30880,30892,30882,30884,31128,31114,31115,31126,31125,31124,31123,31127,31112,31122,31120,31275,31306,31280,31279,31272,31270,31400,31403,31404,31470,31624,31644,31626,31633,31632,31638,31629,31628,31643,31630,31621,31640,21124,31641,31652,31618,31931,31935,31932,31930,32167,32183,32194,32163,32170,32193,32192,32197,32157,32206,32196,32198,32203,32204,32175,32185,32150,32188,32159,32166,32174,32169,32161,32201,32627,32738,32739,32741,32734,32804,32861,32860,33161,33158,33155,33159,33165,33164,33163,33301,33943,33956,33953,33951,33978,33998,33986,33964,33966,33963,33977,33972,33985,33997,33962,33946,33969,34000,33949,33959,33979,33954,33940,33991,33996,33947,33961,33967,33960,34006,33944,33974,33999,33952,34007,34004,34002,34011,33968,33937,34401,34611,34595,34600,34667,34624,34606,34590,34593,34585,34587,34627,34604,34625,34622,34630,34592,34610,34602,34605,34620,34578,34618,34609,34613,34626,34598,34599,34616,34596,34586,34608,34577,35063,35047,35057,35058,35066,35070,35054,35068,35062,35067,35056,35052,35051,35229,35233,35231,35230,35305,35307,35304,35499,35481,35467,35474,35471,35478,35901,35944,35945,36053,36047,36055,36246,36361,36354,36351,36365,36349,36362,36355,36359,36358,36357,36350,36352,36356,36624,36625,36622,36621,37155,37148,37152,37154,37151,37149,37146,37156,37153,37147,37242,37234,37241,37235,37541,37540,37494,37531,37498,37536,37524,37546,37517,37542,37530,37547,37497,37527,37503,37539,37614,37518,37506,37525,37538,37501,37512,37537,37514,37510,37516,37529,37543,37502,37511,37545,37533,37515,37421,38558,38561,38655,38744,38781,38778,38782,38787,38784,38786,38779,38788,38785,38783,38862,38861,38934,39085,39086,39170,39168,39175,39325,39324,39363,39353,39355,39354,39362,39357,39367,39601,39651,39655,39742,39743,39776,39777,39775,40177,40178,40181,40615,20735,20739,20784,20728,20742,20743,20726,20734,20747,20748,20733,20746,21131,21132,21233,21231,22088,22082,22092,22069,22081,22090,22089,22086,22104,22106,22080,22067,22077,22060,22078,22072,22058,22074,22298,22699,22685,22705,22688,22691,22703,22700,22693,22689,22783,23295,23284,23293,23287,23286,23299,23288,23298,23289,23297,23303,23301,23311,23655,23961,23959,23967,23954,23970,23955,23957,23968,23964,23969,23962,23966,24169,24157,24160,24156,32243,24283,24286,24289,24393,24498,24971,24963,24953,25009,25008,24994,24969,24987,24979,25007,25005,24991,24978,25002,24993,24973,24934,25011,25133,25710,25712,25750,25760,25733,25751,25756,25743,25739,25738,25740,25763,25759,25704,25777,25752,25974,25978,25977,25979,26034,26035,26293,26288,26281,26290,26295,26282,26287,27136,27142,27159,27109,27128,27157,27121,27108,27168,27135,27116,27106,27163,27165,27134,27175,27122,27118,27156,27127,27111,27200,27144,27110,27131,27149,27132,27115,27145,27140,27160,27173,27151,27126,27174,27143,27124,27158,27473,27557,27555,27554,27558,27649,27648,27647,27650,28481,28454,28542,28551,28614,28562,28557,28553,28556,28514,28495,28549,28506,28566,28534,28524,28546,28501,28530,28498,28496,28503,28564,28563,28509,28416,28513,28523,28541,28519,28560,28499,28555,28521,28543,28565,28515,28535,28522,28539,29106,29103,29083,29104,29088,29082,29097,29109,29085,29093,29086,29092,29089,29098,29084,29095,29107,29336,29338,29528,29522,29534,29535,29536,29533,29531,29537,29530,29529,29538,29831,29833,29834,29830,29825,29821,29829,29832,29820,29817,29960,29959,30078,30245,30238,30233,30237,30236,30243,30234,30248,30235,30364,30365,30366,30363,30605,30607,30601,30600,30925,30907,30927,30924,30929,30926,30932,30920,30915,30916,30921,31130,31137,31136,31132,31138,31131,27510,31289,31410,31412,31411,31671,31691,31678,31660,31694,31663,31673,31690,31669,31941,31944,31948,31947,32247,32219,32234,32231,32215,32225,32259,32250,32230,32246,32241,32240,32238,32223,32630,32684,32688,32685,32749,32747,32746,32748,32742,32744,32868,32871,33187,33183,33182,33173,33186,33177,33175,33302,33359,33363,33362,33360,33358,33361,34084,34107,34063,34048,34089,34062,34057,34061,34079,34058,34087,34076,34043,34091,34042,34056,34060,34036,34090,34034,34069,34039,34027,34035,34044,34066,34026,34025,34070,34046,34088,34077,34094,34050,34045,34078,34038,34097,34086,34023,34024,34032,34031,34041,34072,34080,34096,34059,34073,34095,34402,34646,34659,34660,34679,34785,34675,34648,34644,34651,34642,34657,34650,34641,34654,34669,34666,34640,34638,34655,34653,34671,34668,34682,34670,34652,34661,34639,34683,34677,34658,34663,34665,34906,35077,35084,35092,35083,35095,35096,35097,35078,35094,35089,35086,35081,35234,35236,35235,35309,35312,35308,35535,35526,35512,35539,35537,35540,35541,35515,35543,35518,35520,35525,35544,35523,35514,35517,35545,35902,35917,35983,36069,36063,36057,36072,36058,36061,36071,36256,36252,36257,36251,36384,36387,36389,36388,36398,36373,36379,36374,36369,36377,36390,36391,36372,36370,36376,36371,36380,36375,36378,36652,36644,36632,36634,36640,36643,36630,36631,36979,36976,36975,36967,36971,37167,37163,37161,37162,37170,37158,37166,37253,37254,37258,37249,37250,37252,37248,37584,37571,37572,37568,37593,37558,37583,37617,37599,37592,37609,37591,37597,37580,37615,37570,37608,37578,37576,37582,37606,37581,37589,37577,37600,37598,37607,37585,37587,37557,37601,37574,37556,38268,38316,38315,38318,38320,38564,38562,38611,38661,38664,38658,38746,38794,38798,38792,38864,38863,38942,38941,38950,38953,38952,38944,38939,38951,39090,39176,39162,39185,39188,39190,39191,39189,39388,39373,39375,39379,39380,39374,39369,39382,39384,39371,39383,39372,39603,39660,39659,39667,39666,39665,39750,39747,39783,39796,39793,39782,39798,39797,39792,39784,39780,39788,40188,40186,40189,40191,40183,40199,40192,40185,40187,40200,40197,40196,40579,40659,40719,40720,20764,20755,20759,20762,20753,20958,21300,21473,22128,22112,22126,22131,22118,22115,22125,22130,22110,22135,22300,22299,22728,22717,22729,22719,22714,22722,22716,22726,23319,23321,23323,23329,23316,23315,23312,23318,23336,23322,23328,23326,23535,23980,23985,23977,23975,23989,23984,23982,23978,23976,23986,23981,23983,23988,24167,24168,24166,24175,24297,24295,24294,24296,24293,24395,24508,24989,25000,24982,25029,25012,25030,25025,25036,25018,25023,25016,24972,25815,25814,25808,25807,25801,25789,25737,25795,25819,25843,25817,25907,25983,25980,26018,26312,26302,26304,26314,26315,26319,26301,26299,26298,26316,26403,27188,27238,27209,27239,27186,27240,27198,27229,27245,27254,27227,27217,27176,27226,27195,27199,27201,27242,27236,27216,27215,27220,27247,27241,27232,27196,27230,27222,27221,27213,27214,27206,27477,27476,27478,27559,27562,27563,27592,27591,27652,27651,27654,28589,28619,28579,28615,28604,28622,28616,28510,28612,28605,28574,28618,28584,28676,28581,28590,28602,28588,28586,28623,28607,28600,28578,28617,28587,28621,28591,28594,28592,29125,29122,29119,29112,29142,29120,29121,29131,29140,29130,29127,29135,29117,29144,29116,29126,29146,29147,29341,29342,29545,29542,29543,29548,29541,29547,29546,29823,29850,29856,29844,29842,29845,29857,29963,30080,30255,30253,30257,30269,30259,30268,30261,30258,30256,30395,30438,30618,30621,30625,30620,30619,30626,30627,30613,30617,30615,30941,30953,30949,30954,30942,30947,30939,30945,30946,30957,30943,30944,31140,31300,31304,31303,31414,31416,31413,31409,31415,31710,31715,31719,31709,31701,31717,31706,31720,31737,31700,31722,31714,31708,31723,31704,31711,31954,31956,31959,31952,31953,32274,32289,32279,32268,32287,32288,32275,32270,32284,32277,32282,32290,32267,32271,32278,32269,32276,32293,32292,32579,32635,32636,32634,32689,32751,32810,32809,32876,33201,33190,33198,33209,33205,33195,33200,33196,33204,33202,33207,33191,33266,33365,33366,33367,34134,34117,34155,34125,34131,34145,34136,34112,34118,34148,34113,34146,34116,34129,34119,34147,34110,34139,34161,34126,34158,34165,34133,34151,34144,34188,34150,34141,34132,34149,34156,34403,34405,34404,34715,34703,34711,34707,34706,34696,34689,34710,34712,34681,34695,34723,34693,34704,34705,34717,34692,34708,34716,34714,34697,35102,35110,35120,35117,35118,35111,35121,35106,35113,35107,35119,35116,35103,35313,35552,35554,35570,35572,35573,35549,35604,35556,35551,35568,35528,35550,35553,35560,35583,35567,35579,35985,35986,35984,36085,36078,36081,36080,36083,36204,36206,36261,36263,36403,36414,36408,36416,36421,36406,36412,36413,36417,36400,36415,36541,36662,36654,36661,36658,36665,36663,36660,36982,36985,36987,36998,37114,37171,37173,37174,37267,37264,37265,37261,37263,37671,37662,37640,37663,37638,37647,37754,37688,37692,37659,37667,37650,37633,37702,37677,37646,37645,37579,37661,37626,37669,37651,37625,37623,37684,37634,37668,37631,37673,37689,37685,37674,37652,37644,37643,37630,37641,37632,37627,37654,38332,38349,38334,38329,38330,38326,38335,38325,38333,38569,38612,38667,38674,38672,38809,38807,38804,38896,38904,38965,38959,38962,39204,39199,39207,39209,39326,39406,39404,39397,39396,39408,39395,39402,39401,39399,39609,39615,39604,39611,39670,39674,39673,39671,39731,39808,39813,39815,39804,39806,39803,39810,39827,39826,39824,39802,39829,39805,39816,40229,40215,40224,40222,40212,40233,40221,40216,40226,40208,40217,40223,40584,40582,40583,40622,40621,40661,40662,40698,40722,40765,20774,20773,20770,20772,20768,20777,21236,22163,22156,22157,22150,22148,22147,22142,22146,22143,22145,22742,22740,22735,22738,23341,23333,23346,23331,23340,23335,23334,23343,23342,23419,23537,23538,23991,24172,24170,24510,24507,25027,25013,25020,25063,25056,25061,25060,25064,25054,25839,25833,25827,25835,25828,25832,25985,25984,26038,26074,26322,27277,27286,27265,27301,27273,27295,27291,27297,27294,27271,27283,27278,27285,27267,27304,27300,27281,27263,27302,27290,27269,27276,27282,27483,27565,27657,28620,28585,28660,28628,28643,28636,28653,28647,28646,28638,28658,28637,28642,28648,29153,29169,29160,29170,29156,29168,29154,29555,29550,29551,29847,29874,29867,29840,29866,29869,29873,29861,29871,29968,29969,29970,29967,30084,30275,30280,30281,30279,30372,30441,30645,30635,30642,30647,30646,30644,30641,30632,30704,30963,30973,30978,30971,30972,30962,30981,30969,30974,30980,31147,31144,31324,31323,31318,31320,31316,31322,31422,31424,31425,31749,31759,31730,31744,31743,31739,31758,31732,31755,31731,31746,31753,31747,31745,31736,31741,31750,31728,31729,31760,31754,31976,32301,32316,32322,32307,38984,32312,32298,32329,32320,32327,32297,32332,32304,32315,32310,32324,32314,32581,32639,32638,32637,32756,32754,32812,33211,33220,33228,33226,33221,33223,33212,33257,33371,33370,33372,34179,34176,34191,34215,34197,34208,34187,34211,34171,34212,34202,34206,34167,34172,34185,34209,34170,34168,34135,34190,34198,34182,34189,34201,34205,34177,34210,34178,34184,34181,34169,34166,34200,34192,34207,34408,34750,34730,34733,34757,34736,34732,34745,34741,34748,34734,34761,34755,34754,34764,34743,34735,34756,34762,34740,34742,34751,34744,34749,34782,34738,35125,35123,35132,35134,35137,35154,35127,35138,35245,35247,35246,35314,35315,35614,35608,35606,35601,35589,35595,35618,35599,35602,35605,35591,35597,35592,35590,35612,35603,35610,35919,35952,35954,35953,35951,35989,35988,36089,36207,36430,36429,36435,36432,36428,36423,36675,36672,36997,36990,37176,37274,37282,37275,37273,37279,37281,37277,37280,37793,37763,37807,37732,37718,37703,37756,37720,37724,37750,37705,37712,37713,37728,37741,37775,37708,37738,37753,37719,37717,37714,37711,37745,37751,37755,37729,37726,37731,37735,37760,37710,37721,38343,38336,38345,38339,38341,38327,38574,38576,38572,38688,38687,38680,38685,38681,38810,38817,38812,38814,38813,38869,38868,38897,38977,38980,38986,38985,38981,38979,39205,39211,39212,39210,39219,39218,39215,39213,39217,39216,39320,39331,39329,39426,39418,39412,39415,39417,39416,39414,39419,39421,39422,39420,39427,39614,39678,39677,39681,39676,39752,39834,39848,39838,39835,39846,39841,39845,39844,39814,39842,39840,39855,40243,40257,40295,40246,40238,40239,40241,40248,40240,40261,40258,40259,40254,40247,40256,40253,32757,40237,40586,40585,40589,40624,40648,40666,40699,40703,40740,40739,40738,40788,40864,20785,20781,20782,22168,22172,22167,22170,22173,22169,22896,23356,23657,23658,24000,24173,24174,25048,25055,25069,25070,25073,25066,25072,25067,25046,25065,25855,25860,25853,25848,25857,25859,25852,26004,26075,26330,26331,26328,27333,27321,27325,27361,27334,27322,27318,27319,27335,27316,27309,27486,27593,27659,28679,28684,28685,28673,28677,28692,28686,28671,28672,28667,28710,28668,28663,28682,29185,29183,29177,29187,29181,29558,29880,29888,29877,29889,29886,29878,29883,29890,29972,29971,30300,30308,30297,30288,30291,30295,30298,30374,30397,30444,30658,30650,30975,30988,30995,30996,30985,30992,30994,30993,31149,31148,31327,31772,31785,31769,31776,31775,31789,31773,31782,31784,31778,31781,31792,32348,32336,32342,32355,32344,32354,32351,32337,32352,32343,32339,32693,32691,32759,32760,32885,33233,33234,33232,33375,33374,34228,34246,34240,34243,34242,34227,34229,34237,34247,34244,34239,34251,34254,34248,34245,34225,34230,34258,34340,34232,34231,34238,34409,34791,34790,34786,34779,34795,34794,34789,34783,34803,34788,34772,34780,34771,34797,34776,34787,34724,34775,34777,34817,34804,34792,34781,35155,35147,35151,35148,35142,35152,35153,35145,35626,35623,35619,35635,35632,35637,35655,35631,35644,35646,35633,35621,35639,35622,35638,35630,35620,35643,35645,35642,35906,35957,35993,35992,35991,36094,36100,36098,36096,36444,36450,36448,36439,36438,36446,36453,36455,36443,36442,36449,36445,36457,36436,36678,36679,36680,36683,37160,37178,37179,37182,37288,37285,37287,37295,37290,37813,37772,37778,37815,37787,37789,37769,37799,37774,37802,37790,37798,37781,37768,37785,37791,37773,37809,37777,37810,37796,37800,37812,37795,37797,38354,38355,38353,38579,38615,38618,24002,38623,38616,38621,38691,38690,38693,38828,38830,38824,38827,38820,38826,38818,38821,38871,38873,38870,38872,38906,38992,38993,38994,39096,39233,39228,39226,39439,39435,39433,39437,39428,39441,39434,39429,39431,39430,39616,39644,39688,39684,39685,39721,39733,39754,39756,39755,39879,39878,39875,39871,39873,39861,39864,39891,39862,39876,39865,39869,40284,40275,40271,40266,40283,40267,40281,40278,40268,40279,40274,40276,40287,40280,40282,40590,40588,40671,40705,40704,40726,40741,40747,40746,40745,40744,40780,40789,20788,20789,21142,21239,21428,22187,22189,22182,22183,22186,22188,22746,22749,22747,22802,23357,23358,23359,24003,24176,24511,25083,25863,25872,25869,25865,25868,25870,25988,26078,26077,26334,27367,27360,27340,27345,27353,27339,27359,27356,27344,27371,27343,27341,27358,27488,27568,27660,28697,28711,28704,28694,28715,28705,28706,28707,28713,28695,28708,28700,28714,29196,29194,29191,29186,29189,29349,29350,29348,29347,29345,29899,29893,29879,29891,29974,30304,30665,30666,30660,30705,31005,31003,31009,31004,30999,31006,31152,31335,31336,31795,31804,31801,31788,31803,31980,31978,32374,32373,32376,32368,32375,32367,32378,32370,32372,32360,32587,32586,32643,32646,32695,32765,32766,32888,33239,33237,33380,33377,33379,34283,34289,34285,34265,34273,34280,34266,34263,34284,34290,34296,34264,34271,34275,34268,34257,34288,34278,34287,34270,34274,34816,34810,34819,34806,34807,34825,34828,34827,34822,34812,34824,34815,34826,34818,35170,35162,35163,35159,35169,35164,35160,35165,35161,35208,35255,35254,35318,35664,35656,35658,35648,35667,35670,35668,35659,35669,35665,35650,35666,35671,35907,35959,35958,35994,36102,36103,36105,36268,36266,36269,36267,36461,36472,36467,36458,36463,36475,36546,36690,36689,36687,36688,36691,36788,37184,37183,37296,37293,37854,37831,37839,37826,37850,37840,37881,37868,37836,37849,37801,37862,37834,37844,37870,37859,37845,37828,37838,37824,37842,37863,38269,38362,38363,38625,38697,38699,38700,38696,38694,38835,38839,38838,38877,38878,38879,39004,39001,39005,38999,39103,39101,39099,39102,39240,39239,39235,39334,39335,39450,39445,39461,39453,39460,39451,39458,39456,39463,39459,39454,39452,39444,39618,39691,39690,39694,39692,39735,39914,39915,39904,39902,39908,39910,39906,39920,39892,39895,39916,39900,39897,39909,39893,39905,39898,40311,40321,40330,40324,40328,40305,40320,40312,40326,40331,40332,40317,40299,40308,40309,40304,40297,40325,40307,40315,40322,40303,40313,40319,40327,40296,40596,40593,40640,40700,40749,40768,40769,40781,40790,40791,40792,21303,22194,22197,22195,22755,23365,24006,24007,24302,24303,24512,24513,25081,25879,25878,25877,25875,26079,26344,26339,26340,27379,27376,27370,27368,27385,27377,27374,27375,28732,28725,28719,28727,28724,28721,28738,28728,28735,28730,28729,28736,28731,28723,28737,29203,29204,29352,29565,29564,29882,30379,30378,30398,30445,30668,30670,30671,30669,30706,31013,31011,31015,31016,31012,31017,31154,31342,31340,31341,31479,31817,31816,31818,31815,31813,31982,32379,32382,32385,32384,32698,32767,32889,33243,33241,33291,33384,33385,34338,34303,34305,34302,34331,34304,34294,34308,34313,34309,34316,34301,34841,34832,34833,34839,34835,34838,35171,35174,35257,35319,35680,35690,35677,35688,35683,35685,35687,35693,36270,36486,36488,36484,36697,36694,36695,36693,36696,36698,37005,37187,37185,37303,37301,37298,37299,37899,37907,37883,37920,37903,37908,37886,37909,37904,37928,37913,37901,37877,37888,37879,37895,37902,37910,37906,37882,37897,37880,37898,37887,37884,37900,37878,37905,37894,38366,38368,38367,38702,38703,38841,38843,38909,38910,39008,39010,39011,39007,39105,39106,39248,39246,39257,39244,39243,39251,39474,39476,39473,39468,39466,39478,39465,39470,39480,39469,39623,39626,39622,39696,39698,39697,39947,39944,39927,39941,39954,39928,40000,39943,39950,39942,39959,39956,39945,40351,40345,40356,40349,40338,40344,40336,40347,40352,40340,40348,40362,40343,40353,40346,40354,40360,40350,40355,40383,40361,40342,40358,40359,40601,40603,40602,40677,40676,40679,40678,40752,40750,40795,40800,40798,40797,40793,40849,20794,20793,21144,21143,22211,22205,22206,23368,23367,24011,24015,24305,25085,25883,27394,27388,27395,27384,27392,28739,28740,28746,28744,28745,28741,28742,29213,29210,29209,29566,29975,30314,30672,31021,31025,31023,31828,31827,31986,32394,32391,32392,32395,32390,32397,32589,32699,32816,33245,34328,34346,34342,34335,34339,34332,34329,34343,34350,34337,34336,34345,34334,34341,34857,34845,34843,34848,34852,34844,34859,34890,35181,35177,35182,35179,35322,35705,35704,35653,35706,35707,36112,36116,36271,36494,36492,36702,36699,36701,37190,37188,37189,37305,37951,37947,37942,37929,37949,37948,37936,37945,37930,37943,37932,37952,37937,38373,38372,38371,38709,38714,38847,38881,39012,39113,39110,39104,39256,39254,39481,39485,39494,39492,39490,39489,39482,39487,39629,39701,39703,39704,39702,39738,39762,39979,39965,39964,39980,39971,39976,39977,39972,39969,40375,40374,40380,40385,40391,40394,40399,40382,40389,40387,40379,40373,40398,40377,40378,40364,40392,40369,40365,40396,40371,40397,40370,40570,40604,40683,40686,40685,40731,40728,40730,40753,40782,40805,40804,40850,20153,22214,22213,22219,22897,23371,23372,24021,24017,24306,25889,25888,25894,25890,27403,27400,27401,27661,28757,28758,28759,28754,29214,29215,29353,29567,29912,29909,29913,29911,30317,30381,31029,31156,31344,31345,31831,31836,31833,31835,31834,31988,31985,32401,32591,32647,33246,33387,34356,34357,34355,34348,34354,34358,34860,34856,34854,34858,34853,35185,35263,35262,35323,35710,35716,35714,35718,35717,35711,36117,36501,36500,36506,36498,36496,36502,36503,36704,36706,37191,37964,37968,37962,37963,37967,37959,37957,37960,37961,37958,38719,38883,39018,39017,39115,39252,39259,39502,39507,39508,39500,39503,39496,39498,39497,39506,39504,39632,39705,39723,39739,39766,39765,40006,40008,39999,40004,39993,39987,40001,39996,39991,39988,39986,39997,39990,40411,40402,40414,40410,40395,40400,40412,40401,40415,40425,40409,40408,40406,40437,40405,40413,40630,40688,40757,40755,40754,40770,40811,40853,40866,20797,21145,22760,22759,22898,23373,24024,34863,24399,25089,25091,25092,25897,25893,26006,26347,27409,27410,27407,27594,28763,28762,29218,29570,29569,29571,30320,30676,31847,31846,32405,33388,34362,34368,34361,34364,34353,34363,34366,34864,34866,34862,34867,35190,35188,35187,35326,35724,35726,35723,35720,35909,36121,36504,36708,36707,37308,37986,37973,37981,37975,37982,38852,38853,38912,39510,39513,39710,39711,39712,40018,40024,40016,40010,40013,40011,40021,40025,40012,40014,40443,40439,40431,40419,40427,40440,40420,40438,40417,40430,40422,40434,40432,40418,40428,40436,40435,40424,40429,40642,40656,40690,40691,40710,40732,40760,40759,40758,40771,40783,40817,40816,40814,40815,22227,22221,23374,23661,25901,26349,26350,27411,28767,28769,28765,28768,29219,29915,29925,30677,31032,31159,31158,31850,32407,32649,33389,34371,34872,34871,34869,34891,35732,35733,36510,36511,36512,36509,37310,37309,37314,37995,37992,37993,38629,38726,38723,38727,38855,38885,39518,39637,39769,40035,40039,40038,40034,40030,40032,40450,40446,40455,40451,40454,40453,40448,40449,40457,40447,40445,40452,40608,40734,40774,40820,40821,40822,22228,25902,26040,27416,27417,27415,27418,28770,29222,29354,30680,30681,31033,31849,31851,31990,32410,32408,32411,32409,33248,33249,34374,34375,34376,35193,35194,35196,35195,35327,35736,35737,36517,36516,36515,37998,37997,37999,38001,38003,38729,39026,39263,40040,40046,40045,40459,40461,40464,40463,40466,40465,40609,40693,40713,40775,40824,40827,40826,40825,22302,28774,31855,34876,36274,36518,37315,38004,38008,38006,38005,39520,40052,40051,40049,40053,40468,40467,40694,40714,40868,28776,28773,31991,34410,34878,34877,34879,35742,35996,36521,36553,38731,39027,39028,39116,39265,39339,39524,39526,39527,39716,40469,40471,40776,25095,27422,29223,34380,36520,38018,38016,38017,39529,39528,39726,40473,29225,34379,35743,38019,40057,40631,30325,39531,40058,40477,28777,28778,40612,40830,40777,40856,30849,37561,35023,22715,24658,31911,23290,9556,9574,9559,9568,9580,9571,9562,9577,9565,9554,9572,9557,9566,9578,9569,9560,9575,9563,9555,9573,9558,9567,9579,9570,9561,9576,9564,9553,9552,9581,9582,9584,9583,65517,132423,37595,132575,147397,34124,17077,29679,20917,13897,149826,166372,37700,137691,33518,146632,30780,26436,25311,149811,166314,131744,158643,135941,20395,140525,20488,159017,162436,144896,150193,140563,20521,131966,24484,131968,131911,28379,132127,20605,20737,13434,20750,39020,14147,33814,149924,132231,20832,144308,20842,134143,139516,131813,140592,132494,143923,137603,23426,34685,132531,146585,20914,20920,40244,20937,20943,20945,15580,20947,150182,20915,20962,21314,20973,33741,26942,145197,24443,21003,21030,21052,21173,21079,21140,21177,21189,31765,34114,21216,34317,158483,21253,166622,21833,28377,147328,133460,147436,21299,21316,134114,27851,136998,26651,29653,24650,16042,14540,136936,29149,17570,21357,21364,165547,21374,21375,136598,136723,30694,21395,166555,21408,21419,21422,29607,153458,16217,29596,21441,21445,27721,20041,22526,21465,15019,134031,21472,147435,142755,21494,134263,21523,28793,21803,26199,27995,21613,158547,134516,21853,21647,21668,18342,136973,134877,15796,134477,166332,140952,21831,19693,21551,29719,21894,21929,22021,137431,147514,17746,148533,26291,135348,22071,26317,144010,26276,26285,22093,22095,30961,22257,38791,21502,22272,22255,22253,166758,13859,135759,22342,147877,27758,28811,22338,14001,158846,22502,136214,22531,136276,148323,22566,150517,22620,22698,13665,22752,22748,135740,22779,23551,22339,172368,148088,37843,13729,22815,26790,14019,28249,136766,23076,21843,136850,34053,22985,134478,158849,159018,137180,23001,137211,137138,159142,28017,137256,136917,23033,159301,23211,23139,14054,149929,23159,14088,23190,29797,23251,159649,140628,15749,137489,14130,136888,24195,21200,23414,25992,23420,162318,16388,18525,131588,23509,24928,137780,154060,132517,23539,23453,19728,23557,138052,23571,29646,23572,138405,158504,23625,18653,23685,23785,23791,23947,138745,138807,23824,23832,23878,138916,23738,24023,33532,14381,149761,139337,139635,33415,14390,15298,24110,27274,24181,24186,148668,134355,21414,20151,24272,21416,137073,24073,24308,164994,24313,24315,14496,24316,26686,37915,24333,131521,194708,15070,18606,135994,24378,157832,140240,24408,140401,24419,38845,159342,24434,37696,166454,24487,23990,15711,152144,139114,159992,140904,37334,131742,166441,24625,26245,137335,14691,15815,13881,22416,141236,31089,15936,24734,24740,24755,149890,149903,162387,29860,20705,23200,24932,33828,24898,194726,159442,24961,20980,132694,24967,23466,147383,141407,25043,166813,170333,25040,14642,141696,141505,24611,24924,25886,25483,131352,25285,137072,25301,142861,25452,149983,14871,25656,25592,136078,137212,25744,28554,142902,38932,147596,153373,25825,25829,38011,14950,25658,14935,25933,28438,150056,150051,25989,25965,25951,143486,26037,149824,19255,26065,16600,137257,26080,26083,24543,144384,26136,143863,143864,26180,143780,143781,26187,134773,26215,152038,26227,26228,138813,143921,165364,143816,152339,30661,141559,39332,26370,148380,150049,15147,27130,145346,26462,26471,26466,147917,168173,26583,17641,26658,28240,37436,26625,144358,159136,26717,144495,27105,27147,166623,26995,26819,144845,26881,26880,15666,14849,144956,15232,26540,26977,166474,17148,26934,27032,15265,132041,33635,20624,27129,144985,139562,27205,145155,27293,15347,26545,27336,168348,15373,27421,133411,24798,27445,27508,141261,28341,146139,132021,137560,14144,21537,146266,27617,147196,27612,27703,140427,149745,158545,27738,33318,27769,146876,17605,146877,147876,149772,149760,146633,14053,15595,134450,39811,143865,140433,32655,26679,159013,159137,159211,28054,27996,28284,28420,149887,147589,159346,34099,159604,20935,27804,28189,33838,166689,28207,146991,29779,147330,31180,28239,23185,143435,28664,14093,28573,146992,28410,136343,147517,17749,37872,28484,28508,15694,28532,168304,15675,28575,147780,28627,147601,147797,147513,147440,147380,147775,20959,147798,147799,147776,156125,28747,28798,28839,28801,28876,28885,28886,28895,16644,15848,29108,29078,148087,28971,28997,23176,29002,29038,23708,148325,29007,37730,148161,28972,148570,150055,150050,29114,166888,28861,29198,37954,29205,22801,37955,29220,37697,153093,29230,29248,149876,26813,29269,29271,15957,143428,26637,28477,29314,29482,29483,149539,165931,18669,165892,29480,29486,29647,29610,134202,158254,29641,29769,147938,136935,150052,26147,14021,149943,149901,150011,29687,29717,26883,150054,29753,132547,16087,29788,141485,29792,167602,29767,29668,29814,33721,29804,14128,29812,37873,27180,29826,18771,150156,147807,150137,166799,23366,166915,137374,29896,137608,29966,29929,29982,167641,137803,23511,167596,37765,30029,30026,30055,30062,151426,16132,150803,30094,29789,30110,30132,30210,30252,30289,30287,30319,30326,156661,30352,33263,14328,157969,157966,30369,30373,30391,30412,159647,33890,151709,151933,138780,30494,30502,30528,25775,152096,30552,144044,30639,166244,166248,136897,30708,30729,136054,150034,26826,30895,30919,30931,38565,31022,153056,30935,31028,30897,161292,36792,34948,166699,155779,140828,31110,35072,26882,31104,153687,31133,162617,31036,31145,28202,160038,16040,31174,168205,31188],
"euckr:440344403544037,,,,,,440474405644062440634406544066,,,,,,,,44075440784408244083,,,nullnull,,,null44085,,,4409044091,,,440954409744098,,,,441024410344104,,,,,441114411244113,,,,,,,nullnullnull4411844119441214412244123,,,441274412844129,,,,,,,,441374413844139,,,,,,,,,,,,,441584415944162,,,44173441744417544177441784417944181,,,,,44186441874419044194441954419644197441984419944203,,,,,,,44213442144421544218442224422344224,,,,,,,,,,,,,,442424424344244,,,,,,,,,,,,,4426244265,,4426944270,,442764427944280,,442824428344286,,,,,,,,,,,,44306,,,,443104431144313443144431544317443184431944321,,,4432444325,4432644327,,,44331,,,44336,,,44339,,,nullnull,,null44342,,4434544346,,4434944350,,4435244353,,4435544358,,443624436344364443654436644367,,44370,4437144373,,44375null,,,nullnull,,4437744378,,4438044381,,44383,,,4438844389,,,,,,4439544398,,4440144402,,444084440944410,,4441644419,,,,4442344426,,444294443044431,,4443444435,,4443744438,,,,4444244443,,444474444844449,,444514445344454,,4445644457,,444594446044461,,44463444644446544466,,4446844469,,4447244473,,444754447644477,,444794448244483,,4448644487,,44490444914449244493,,,,,,4450244503445044450544506,,,445104451144513445144451544517,,44520,,,44523,,4452544526,4452744528,,44530,,44532,,,44535,,44539,,4454244546,4454744548,4454944550,4455144554,4455644558,,4456044561,,,4456544566,,,4456944570,,44572nullnull,,nullnull,,445734457444575,,4457744578,44579,,44581,,44583,,44585,,4458744588,44589,,44591,,4459544597,44598,,44603,,null,,null,,null,,44605,,4460744610,4461244615,44616,,44619,,44625,,44627,,44631,,4463344634,44635,,44642,,44644,,44647,,44651,,4465444655,44657,,4465944660,4466144662,44663,,4467044671,4467244673,44674,,44678,,44680,,44682,,44685,,44687,,4468944690,44691,,4469344694,4469544696,44697,,4469944700,44701,,44703,,44705,,4470744708,44709,,44711,,44713,,44715,,44717,,,4472044721,4472244723,4472444725,4472644727,4472844729,4473044731,,44737,,4473944741,,4474344744,44745,,44747,,44754,,44756,,44758,,44762,,44765,,44767,,44769,,44771,,44773,,44775,4477744778,4478044782,4478344784,4478544786,4478744789,4479044791,4479344794,4479544797,4479844799,4480044801,4480244803,4480444805,nullnull,nullnull,nullnull,4480644809,4481044811,,,,44817448184481944820448214482244823,,,448264482744828,,4483044831,4483244833,,44835null,nullnull,nullnull,null44836,4483744838,4483944840,4484144842,4484344846,4484744849,4485144853,,44855,,44857,,44859,,44864,,44869,,44871,,4487544876,,44878,,4488144882,,44884,,44886,,44888,,44890,,44894,,44896,4489744898,4489944902,4490344904,4490544906,4490744908,4490944910,4491144912,4491344914,4491544916,4491744918,4491944920,4492244923,4492444925,,4492744929,,4493144933,,4493544937,,44939,,4494144942,,44946,,44948,,44951,44952,,4495444955,,44958,,44960,,4496244963,,44965,,4496744968,,44970449714497244973,,4497544976,4497744978,4497944980,,44982,,4498644987,4498944990,4499144993,4499444995,4499644997,4499845002,4500445007,4500845009,4501045011,4501345014,,45016,,45018,4501945021,4502245023,45024,,null,,null,,null,,450264502745028,4502945030,4503145034,4503545036,4503745038,4503945042,4504345045,,4504745049,4505045051,4505245053,4505445055,4505845059,nullnull,nullnull,,null,4506145062,4506345064,4506545066,4506745069,4507045071,4507345074,,45077,,45079,,45081,,45083,,45087,,45089,,45091,,45093,,45095,,4509845099,4510045101,4510245103,45104,,45106,,45108,4510945110,45111,,45113,,45115,,45117,,45119,,4512145122,,45126,,4512945131,,,45136,,45138,,45144,,4514745148,4515045151,45152,,45154,,45156,,45158,,45160,,45162,,45164,,45166,,45168,,45170,,45172,,4517445175,4517645177,4517845179,4518245183,4518545186,,45189,,45191,,45193,45194,45195,,45200,,45203,4520445205,452064520745211,4521345214,,45220,,45222,,45226,,45234,,45239,,45242,,4524545246,4524745248,4524945250,4525145254,4525845259,4526045261,4526245263,45266null,nullnull,,null,,45267,,45270,,45273,,45275,,4527745278,,45281,,4528345284,,4528745288,4528945290,4529145292,,45294,,45296null,,null,,null,,45297,,45299,,4530145302,,45304,,4530645307,4530845309,,45311,,45313,,45315,,4531745318,4531945322,4532545326,4532745329,4533245333,4533445335,,45342,,45344,,4534645350,4535145353,,45355,,45358,,,4536145362,4536345366,4537045371,,45373,,4537545378,,45381,453824538345385,4538645387,4538845389,4539045391,,45395,,45399,4540145402,,454054540645407,4540945410,4541145412,4541345414,4541545416,,45418,4541945420,,45422,,45424,,45426,,45428,4542945430,4543145434,,45437,,45439,,45443,,45445,4544645447,4545045452,4545445455,4545645457,4546145462,,454654546645467,,,,45472454734547445475454764547745478454794548145482,,,,,,,,,,,,,,,,,,,nullnull45497454984549945500455014550245503,,,455064550745508455094551045511,,45514,5515,,4551945521455224552345525nullnullnullnullnullnull4552645527455284552945530,,455364553745538455394554045541455424554345546455474554945550,,,4555545556455574555845559,,,,,,,,,,,,,,,,,,,4559045592455944559545596455974559845599456014560245603456044560545606456074560845609456104561145612,,,,,,,,,,,,,,,45631,,,,,,,,4563945640456414564245643,,4564545646,,456484564945650,,4565245653456544565545657,,,,,,,4566645667,,,,,,45675456764567745678,,,,,4568345686,,4568845689,,,,45694456954569645697,,,,457034570445706,,,4570945710nullnullnull,,,,,45714457154571745718,,,,457254572645727457304573245735,,,,4574145742,,,,457474574945750,,nullnullnull,,nullnull,,4575345754,,4575645757,,4575945760,,4576245763,,4576545766,,457704577145773,,4577545777,,4578045781,,,4578645788,4579045791,,4579345795,,4580145802,,4580945810,4581445820,4582145822,,45827,,45830,,45833,,458354583645837,,4583945842,,458474584845849,,4585145853,,,45856,,4585845859,,45861458624586345864,,4586645867,,4586945870,,,4587345874,,4587645877,,45879,,4588145882,,458844588545886,,4588845889,,4589145892,,,4589545896,,,4589945900,,459024590345904,,459064590745911,459134591445917,,4592145922,,,,459304593245933,,4593845939,,4594245943,4594545946,459474594845949,,4595145954,,459594596045961,,4596345965,nullnullnull,,nullnull,,459674596945970,,4597345974459754597645977,,4597945980,,4598245983,,4598745988,,45990,,,4599445995,45997null,,nullnull,,null45998,,46000,,4600246003,460044600546006,,4600846009,,46011,,460134601446015,,4601746018,,,4602346025,,4602946031,,,4603546038,,4604246044,,4604746049,,,,4605446055,4605746058,,4606046061,,4606346064,,4606646067,,4606946070,,4607246073,,4607546077,4607846079,,46081,,,4608446085,,4608746088,,4609046091,,4609346094,,4609746098,,46100,,,4610346105,,461074610946110,,4611346114,,4611646117,,4611946122,,,461264612746128461294613046131,,,,,,,46139461404614146142,,46144461454614646147,,,46150,,4615246153,,4615546156,,4615846159,,4616346165,,4616746169,4617046171,,46173,,4617546178,,46182nullnull,,nullnullnull,4618346184,,4618646187,4618946190,,4619246193,,,,461974619846199,,,46202462034620446205,,462074620946210null,,,nullnullnull46211,,,46214462154621746218,,,462214622246223,,,,46227462284622946230,,,46233462344623546236,,,46240462414624246243,,,46247462494625046251,,,,4625646257462584625946260462624626446266462674626846269,,,,,,,,,,,,,,,,4628946290462914629246294462954629646297462984629946302463034630546306463094631146312463134631446315463184632046322,,,,,,,,,,,4633446335463364633746338463394634046341,,,,,,,,,,,,,,,,,,,,,,,,463704637146374,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,464194642146422464234642446425464264642746430464344643546436464374643846439464404644146442nullnullnullnullnullnull464434644446445464464644746448464494645046451464524645346454464554645646457464584645946460464614646246463464644646546466,,,,4647046471,,4647346474,,4647646477,,4647946480,,464824648346484,46485,464864648746488,,46490,46491,,4649346494,,4649846499,,4650246503,,4650846509,,4651146514465184651946520,4652146522,46526,,4652946530,,4653346534,,,4653746538,,46542,,,46548,,4655046551,,4655446555,,46557,,4655946560,,4656246563,,,46566,,4656846569,,,,,4657546576,,4657846579,4658046581,658246583,465844658546586,,4658846589,,4659146592,,4659446595,4659646597,,,4660046601,,4660346604,4660546606,,46610466114661346614,,4661746618,4661946620,,nullnull,,nullnull,,4662246623,,,4662646627,,46630,,4663246633,,46635,,4663846639,,4664146642,,4664546646,,4664846649,,nullnull,,nullnull,,4665146652,,4665446655,,4665746658,,4666046661,,,4666546666,,4666846669,,4667146672,,4667446675,,4667746678,,4668046681,,4668346684,,46686,,4668846689,,4669146693,,4669546697,,4669946700,,4670246703,,4670546706,,467084670946710,,46712,,4671446715,,4671746718,,4672046721,,46723,,,4672646727,,4672946730,4673146732,,4673446735,,,4673846739,,4674146742,467434674446745,,4674746750,,4675346754,,4675746758,,4676046761,,4676546766,,4676846770,,4677246773,,4677546776,,4677846779,,,46782,,4678446785,,4678746788,,467904679146792,,4679446795,,4679746798,,4680046801,,46803,6805,,,46808,,46810,,4681246813,,nullnull,,,,4681446815,,4681746818,,46820,,4682246823,,4682546826,,,46829,,4683146833,,4683546837,,4683946841,,,null,,nullnull,,,,,,,46850468514685246854,46855,,4685746858,,4686146862,,468644686546866,,468684686946870,,4687246873,,4687546876,,4687846879,,4688146882,,4688446885,,4688746890,,4689346894,,4689846899,,,4690246903,,46908,,4691046911,,4691346914,,4691746918,,46921,,4692346925,,4692746928,46929,46930,4693146934,4693546936,,4693846939,,46941,,,46945,,46947,,4695046951,4695346954,,4695646957,,46959,,4696446966,,4696846969,,4697146974,469754697746978,,4698146982,,46984,,4698646987,4699046995,,4699747002,,4700547006,4700747009,,4701147012,,4701447015,,4702247023,,47025,,4702747030,,4703347034,,4703647037,4703847039,,,nullnull,nullnull,,null47042,,4704447045,,4704847050,,4705247053,,47055,,4705747058,,47060470614706247063470644706547066470674706847069nullnullnullnull,,,,,,,,470754707647077470784707947080470814708247083,4708647087,,4709047091,,,,47096,,470984709947102,,4710747108,4710947110,,47115,47117,4711847119,,4712247123,,4712547126,4712747130,,4713447135,,4713747138,,4714247143,,4714647147,,4715047151,,4715347154,4715547158,47162,4716347164,,4716647167,,4717047171,,4717447175,,4717747178,,4718047181,4718247183,,471864718847189,,4719147192,4719347194,,4719847199,,4720247203,,47206,,,,47210,47211,,,47218,,4722047221,,4722347225,,4722747229,,4723147232,,4723447235,,47237,,4723947240,,4724247243,,4724647247,,4724947250,4725147252,,4725447255472564725747258,,4726047261,4726247263,,nullnull,,nullnull,,4726547266,,,47269,,4727147273,,47275,,4727747278,,4728147282,,4728547286,,4728947290,4729147292,,nullnullnull,,nullnull,,4729547298,,4730247303,,4730547306,,4730947310,,4731347314,,4731747318,,4732047321,,4732347324,,4732847330,,47332,,4733447335,,473394734147342,,4734547346,,4734847349,,4735147354,,4735847359473604736147362,,4736547366,,47368,,,4737147372,,4737447375,,4737747378,,473804738147382,4738347385,,473874738847389,,4739147393,,47395,,4739747398,,4740047401,,4740347404,,474064740747408,,47410,,,,,,,,,,,47423,474254742647427,,,4743147432,4743347434,,4743747438,,,4744347444,,47446,,4745047451,47453,4745447455,,4745847459,,47461,47462,47463,,4746847470,47471,,47473,4747447475,,47479,,4748247483,47485,,nullnull,nullnull,null47486,4748747488,4748947490,4749147494,,474994750047503,4750447505,4750647507,,4750947510,,4751247513,4751447515,,47517,,nullnull,nullnull,nullnull,4751947520,47521,,4752347524,4752547526,4752747528,47529,,47531,,4753547537,4753847539,47541,,47543,,4754547546,4754747550,47552,,47555,,47557,,4755947562,4756347565,4757147572,47573,,47575,,47580,,47584,,47590,,47593,,47595,,4759847599,4760047601,47602,,47606,,47612,,4761447615,47618,,47620,,47622,,47625,7626,4762747628,4762947630,4763147632,4763347634,4763547636,4763847639,4764047641,4764247643,4764447645,4764647647,4764847649,47650,,47652,,4765447655,4765647657,4765847659,4766047661,4766247663,,47665,,47667,,47669,,47671,,4767547677,4767847679,4768147683,4768447685,,47687,,47692,,47696,,47698,,47703,,47706,,4770947710,47711,,4771347714,4771547718,,47723,4772447725,4772647727,nullnull,nullnull,,null,4773047731,47733,,4773547737,4773847739,4774047741,4774247743,4774447745,47746,,4775247753,4775447755,4775747758,4775947760,4776147762,nullnull,,null,,null,,4776447765,,477674776847769,,,,47773,,,,477774777847779,,477814778247783,,,47790,,4779347795,4779647797,,4779947802,,4780647807,,4780947810,,478134781447815,4781747818,,4782047821,,,4782447825,,4782747828,,4783047831,,4783547836,,,4783947840,,4784247843,,4784547846,,,4784947850,,4785247853,,4785547856,,,47859,,47861,,47863,,47865,,47867,,47870,,47873,,47875,,4787847879,,4788147882,,47884,,47888,,47891,,47893,,47895,,47898,,4790147902,4790347905,47906,,47908,,47910,,47912479144791647917,4791847919,,4792147922,,479274792947930,,47936,,4793847939,,,4794647947,,4795047953,,nullnull,,nullnull,,479554795747958,47959479614796247963,,4796547966,4796747968,4797047972,4797347974,,4797647977,,,4798147982,,47984,,nullnull,,nullnull,,4798647987,4798847989,,4799147992,,,4799547996,,47998,,4800048001,,48003,,4800548006,,4800948010,,4801348014,4801548017,,,4802048021,4802248023,,4802548026,4802748028,4802948030,4803148032,4803348034,4803548037,,4803948041,,4804348045,4804648047,4804848049,4805048051,,4805448056,,48058,4805948060,4806148062,480634806548066,4806748069,4807048071,48073,,48075,,4807748078,4807948081,4808248084,4808548086,4808748088,,4809048091,4809248093,4809448095,4809648097,4809848099,4810048101,4810248103,4810448105,4810648107,4810848109,4811048111,4811248113,4811448115,4811648117,4811848119,4812248123,4812548126,4812948131,4813248133,4813448135,48138,48142,,4814648147,4815348154,4816048161,4816248163,,48168,,48171,4817248174,4817548178,4817948181,nullnull,nullnull,nullnull,4818248183,4818548186,4818748188,4818948190,4819148194,4819848199,48200,,48203,4820648207,4820948210,4821148212,4821348214,4821548216,48217,,nullnull,nullnull,,48218,4821948220,4822248223,,4822548226,48227,,48229,,48231,4823248233,4823448235,4823648237,4823848239,48240,,48242,4824348244,,48246,,48248,,48250,,48252,,48254,,48256,4825748258,4825948262,4826348265,48266,,4827148272,48273,,48275,,48280,,48284,4828548286,4828748290,,48293,,48297,4829848299,4830048301,4830248303,4830648310,4831148312,4831348314,48315,,48319,,4832248323,4832548326,48327,,48329,,4833148332,,48338,,48340,,48343,4834548346,4834748349,,48351,,48353,4835448355,4835648357,4835848359,4836048361,4836248363,4836448365,4836648367,4836848369,,48371,4837548377,48378,,48381,,4838348384,4838548386,48387,,48392,,48395,,4839748398,48399,,48402,,48405,,48407,,4840948410,4841148412,48413null,null,,nullnull,null48414,4841548416,48417,,48419,,48422,,48424,,48426,,48429,,48431,,48433,,48435,,48437,,48439,,48441,,nullnull,null,,null,,48443,,48445,,4844748449,4845048451,,48453,4845448455,4845848459,,48462,,48465,,48467,4846848469,,48471,,48475,,48477,,48479,,4848148482,4848348485,48486,,48489,,48491,,4849348494,48495,,48497,,48499,,48501,,4850348504,48505,,48507,,48509,4851148514,48515,,48518,,48524,,48526,,48530,,48534,,48536,4853948541,4854248543,,48545,,48547,,48550,4855148552,4855348554,,48556,4855748558,4855948561,,4856348564,4856548566,4856748569,48570,,48572,,48574,,48576,,48578,,48580,,48582,,48584,4858548586,4858748588,4858948590,48591,,48593,,48595,,48599,,48602,,48605,,48607,48608,,4860948610,4861148612,,4861448615,486164861848619,,48621,,4862348625,,nullnullnull,nullnull,,4862748629,4863048631,,4863448635,,48637,,4863948641,,4864448646,,4864848649,,4865148654,4865548657,,48659null,,nullnullnull,,,4866248663,,,4866648667,,4867248673,,48675,,4867748678,,,,4868248683,,4868548686,,4868848689,48690,,4869348694,,4869648697,,486994870048701,,4870348704,4870548706,,4871048711,,48714487154871748719,,4872148722,,48726487284873248733,,48735,,4873948741,,,4874548747,4874848749,,4875148754,,487594876048761,,4876648767,,48770,,4877348774,,,4877748778,4877948782,,4878748788,487894879048791,,4879548796,,4879848799,,488014880248803,,48805,,4880748809,,4881148812,488144881548816,,4881848819,4882048821,,,48824,,,4882748828,,4883048831,,488334883448835,,4883748838,,48840,,,4884348844,,4884648847,,48851null,,,nullnull,,4885348854,,4885848859,,4886148862,4886348865,4886648870,,,4887348874,,4887748878,,4888048881,,4888348884,,,null,,null,nullnull,4888648887,4888848889,,4889148892,,4889448895,,4889848899,4890048901,4890248903,4890648907,4890948910,,48912,,48914,,48916,,4891848919,,4892648927,,4892948930,,4893248933,,4893548936,,4893848939,,4894148942,,4894448945,,4894748948,,4895048951,,,489544895548956,,4895848959,,4896348965,,489674896948970,,4897248973,,4897548978,,4898048982,,489844898548986,,48988,,489904899148992,,4899448995,48996,,4899848999,,4900149002,,,490054900649007,4900849009,,4901149012,,,,4901649017,490184901949020,4902149022,,490244902549026,,4902849029,4903049031,,4903349034,,,4903749038,,4904049041,,4904349045,,490474904849049,,490514905249053,,nullnull,,,null49054,,4905649057,,490594906049061,,49063490644906549066,,49068,,4907049071,,490744907549076,4907749078,,49080null,,,nullnull,,4908149082,,490844908549086,,4908849089,,490914909249094,,4909649097,,4909949102,,4910549106,,,49110,,4911249113,,4911549117,,,49122,,49124,,49126,,491284912949130,,4913249133,,491354913649137,491384913949140,,4914249143,,49145,,,4914849149,491504915149152,491534915449155,,,4915849159,4916049161,,491634916449165,49166,49167,4916849169,,4917149172,,,,49176,,491784917949180,491814918249183,4918449185,,49187,,49189,,49191,,49193,,49195,,49197,,4919949200,4920149202,,4920449205,,4920749208,,4921049211,,,,,,4921849219,,4922149222,,4922449225,,49227,,4922949230,,4923249234,,49236,,49238,,49241,,49243null,nullnull,,nullnull,,4924649247,,4925049251,,4925349254,,492584925949260,,49262492634926449265,,4926749268,,,4927149272,,,,nullnullnull,null,,49275,,49277,,4927949280,,49282,,49284,,49286,,,4928949290,,4929249293,,4929549298,,493014930249303,4930549306,,4930849309,,49311,,,4931849319,,4932149322,,4932649329,,4933549336,4933749338,,49342,,,4934849350,,4935449355,,4935849359,,,49363,,4936549366,936749370,,49375,,4937749378,,4938249383,,,49387,,4939049391,,4939349394,,,4940049402,,4940449405,4940649407,,4941049411,,4941449415,,4941849419,,4942149422,,4942549426,,4942849430,,,49433,,4943549441,,49445,,49449,,4945149454,4945849459,4946049461,4946349466,4946749469,,4947149473,4947449475,,49477,,49479,,4948649487,,4948949490,,4949449495,,nullnull,,,null,,4949849499,,4950249503,4950449505,4950649507,,49514,,49516,,,4951949521,,495234952549526,,,49530,49531nullnull,,,,null49532,4953349534,,495364953749538,,4954049542,4954349544,,4954649547,,4955349554,,4955749559,,,4956249563,,4956849570,,4957249574,,4957849579,,49582,,4958549586,,,49589,,4959149592,,4959449595,,4959849599,,4960149602,,49605,,4960749609,,4961149613,,4961549616,,4961849619,,496224962549626,,4962849629,,49631,,49634,,49637,,4963949641,,4964349644,,4964649647,,4965249653,,4965549656,,,49659,,4966349665,,4966749669,,49671,,4967349674,,4967849680,,4968349684,,496864968749690,4969149693,,4969749698,,49700,,4970249703,4970649708,4971049712,4971549717,4971849719,4972049721,,49723,,4972549726,4972749728,4972949730,4973149732,49733null,nullnull,,null,null49734,,,4973849739,4974049741,497424974349746,,,49750,,4975349754,,4975649757,,,49761,4976249763,,49766null,nullnull,,nullnull,4976749768,4976949770,,49774,4977549777,4977849779,,4978249783,,4978549786,,,49792,,49795,,49797,,,4980249803,4980449805,,,49809,,49811,,4981349814,,4981749818,,4982249823,,49825,,4982749830,,49833,,4983549838,,4984049841,,4984349846,,4985049851,,4985349854,,4985649857,,4985949860,4986249863,4986449865,4986649867,4986849869,,49871,,49873,4987449875,,49877,,49879,,49881,,49883,,4988749889,4989049893,4989449895,4989649897,4989849902,4990449906,4990749908,,49911,,49917,,4991949921,,4992349924,,4992649927,,4993149934,,4993649937,4993849942,,4994549946,,4994949950,,4995249953,4995449955,,4995949962,,4996449965,,49967,,4996949970,,nullnull,,nullnull,4997149972,,4997449975,,49977,,4997949980,,,49983,,4998549986,,4998849990,,49992,,4999449995,,49997null,,nullnull,,null49998,,5000050001,5000250003,,,5000650007,50008500095001050011,,50013,,5001550016,,,5001950020,,500225002350026,,5002950030,5003150033,,5003650037,5003850039,,5004350046,,,5004950050,,5005350054,,5005750058,,5006150062,,5006450065,,5006750068,,5007050071,,,5007450075,,5007750078,0079,,50081,,50083,,5008550086,5008750088,5008950090,,50092,,5009450095,,50097,5009950100,,5010250103,,5010550106,,5010850109,,5011150113,,,50116,,5011850119,,,5012250123,5012450125,,5012750128,,501305013150132,5013350134,,50138,,5014150142,,5014750148,,50150,,5015450155,5015650158,,5016050161,,501635016650167,,5017050171,,5017350174,,nullnull,,nullnull,,5017650177,,5017950180,,50182,,5018550186,,5018850189,,5019150193,,5019550196,,5019850199,,,,,nullnull,,nullnull,,5020450205,,5020750208,,50210,,5021350214,,5021650217,,5021950221,,5022350225,,5022750229,,5023150232,,5023450235,5023850239,,5024150242,,5024450245,,5024750249,,5025150252,502535025450255,,5025750258,502595026050261,50262,5026350264,,5026650267,,5026950270,,5027250273,,5027550278502795028150282,,50285,,502875028850289,,,,,,,502995030050301,,,5030550306,,50308,,5031050311,,5031350314,,5031650317,,5031950320,,5032250323,,5032650327,,50329,,5033150333,,5033550336,,5033850339503405034150342,,,5034550346,,50348,,5035150352,,50354,,5035650357,,5035950361,,5036350365,,50367,,5036950370,,5037250373,,nullnull,,nullnull,5037450375,,5037750378,5037950380,,50382,,5038450385,5038650387,,50389,,50391,,,50394,,50396,,5039850399,nullnull,nullnull,,null5040050401,,,,,5040650407,,,5041150412,,504145041550418,,5042150422504235042550427,,5042950430,,504355043650437,,,504405044150442,504435044550446,,5044950450,,5045350454,,,50457,,5045950461,,504635046450465,504665046750468,,50470,,,,,5047850479,5048150482,,,504855048650487,,,,,,504975049850499505025050350507505115051250513,,,,,,,50530505315053350534505355053750538,,,,,505435054650550,,5055250553505545055550558,,,,,,,,50569505705057150574505765057850579,,,,,,,,505915059350594,,,,5059850599,,,,,,,,5060850609506105061150614nullnullnull,,nullnull50615,,506235062450625,,50627506355063750639,,506435064550646,,5064950650,,5065250653,5065450655,,,,50663null,,,,nullnull50664,,5066650667,,5067350674,,5067750680,,,5068350690,,,,5069850699,,507025070350705,507065070750708,5070950710,,507145071750718,5071950720,,5072250723,,507275072950730,,50735,,5073850742,,5074650748,,5075050751,,5075550757,,5075950761,,5076350764,,5076650767,,5077450775,,5077750778,,5078250783,,5078650787,,5078950790,,5079250793,,5079550797,,5080050802,,5080450805,,5080750810,,5081350814,5081550817,,5081950820,,50822,,5082650828,,5083150832,,5083450835,,5083950841,,5084350845,,5084750848,,50850,,5085450856,,5085950860,,50862,,5086650867,,5087050871,5087550876,,5087850879,,,,5088750888,5088950890,,,null,,nullnull,,null50895,5089750898,,5090150902,,5090450905,,50907,,5091150914,,5091650917,5091850919,,50923,,5092650927,5092950930,,nullnull,,null,,5093150932,,5093450935,,5093950940,,5094350944,5094550946,,5095050951,,,5095550957,,50959,,5096150962,,,5096850970,,5097250973,,5097550978,,5098150982,,5098550986,5098750988,5098950990,,,50996,09985100051001,,5100351006,,5100951010,,51013,5101451015,,5101751019,,510245103351034,,5103751038,,,51042,,51044,,5104651047,5104951050,,5105351054,,510565105751058,,,,5106551066,,,510725107351074,,,51084510855108751090,,,510975109951100,,511025110351106,,5111251113,,5111551118,,5112151122,,5112551126,,511285112951130,5113151134,,5113951140,,5114251143,,5114751149,,,51154,,5115651157,,5115951161,,,51164null,,nullnull,,null51166,,5116851169,,5117151173,,5117551177,,5117951181,,5118351184,,5118651187,,5118951190,,5119251193,,,nullnull,nullnull,,5119551196,,511985119951202,,51205,,5120751209,,5121251213,,5121551218,,5122351224,,5122651227,,512315123351234,,5123751238,512395124051241,,51243,,5124851250,,51252,,5125451255,5125751258,5125951261,5126251263,,51266,,5126851269,5127051271,,512755127851279,5128051281,,5128351285,,5128751288,,5129051291,5129251293,,5129551296,,51298,,,,,,5130451305513065130751308,,,,,5131551317513185131951321,,,,,513275133051332,,,,,,,51345513465134751349513505135151352,,,,,,,5136251363513645136551366,,5136951370,,5137251373,,5137551376,5137751378,,5138051381,,51383,,513855138651387,,,,,nullnull,,nullnullnull5139451395,,,,,,,,514065140751408,,,,,,5141851419,5142051421,,51423,,5142751429nullnullnullnull,,null514305143151432,,,,51436514375143851439514405144151442,,5144451446,,,,,51451,,51455,,,51459,,5146451465,,51467,,12288,,12290183,82298230,,12291173,,874165340,,82168217,,822112308,1230912296,,1229812299,1230012301,,,,12305177,215247,,88048805,,8756,,82428243,,849165504,,655099794,979287368869897887068711,,8786167825197349733,,,,9671,,,,965196509661966085948592,,,,,881088118730876587338757,,87488712871588388839,,,,87458743,,,,514745147551476,,51478,,51481,,51483,,,514865148751488,5148951490,,5149251493,514945149551496514975149851499,,,,,,null5150151502,5150351504,,51506,,51509,,51511,,51513,,51515,5151651517,5151851519,,5152151522,,,515255152651527nullnull,,,,,51528,,5153051531,,51533,,51535,,,51541,,5154351545,5154651547,,,5155051551,,5155651557,,5155951560,,51562,,515655156651567,86588660,,8707,,,,728733,730729,,731161,,7208750,,87191648457,,96659664,,9654,,98249825,98299831,,8857,,96359680,,96189636,96379640,,,9641,,97439742,,,1828224,,85978599,,8598,,98379833,,983612927,,847013255,,1325013272,,8364,,nullnull,,null,,,,,nullnull,,null,nullnullnull,,,nullnullnullnull,,5156951570,,5157351574,,,51577515785157951581,,,,51585,,5158751588,,51590,,,5159551597,,51599null,,null,,nullnull,,5160251603,,5160551606,5160751610,,5161451615,,5161751618,,5162051621,5162251623,,51625,,5162751628,,51630null,,nullnull,,null51631,,51633,,5163551636,,5163851639,,5164151642,,5164451645,,51647,,5165151653,,5165751659,516605166151662,5166351666,,5167151672,,6528165282,6528365284,,6528665287,65288,6528965290,,6529265293,652946529565296,,,,,,,653036530465305,6530665307,,,6531065311,,65313,,6531565316,,6531865319,65320,6532165322,,6532465325,,6532765328,,65330,,6533265333,,65335,,6533765338,,6551065341,,6534365344,,653466534765348653496535065351,,,,,,6535765358,,6536065361,,6536365364,6536565366,,6536865369,,6537165372,6537365507,5167851679,,5168351685,,51688,,5169051691,,5169851699,,51701,,,5170651707517095171051711,,,5171551716nullnull,,null,,null51717,,,,51726,,5172851729,,5173151733,,51735,,5173851739,,51741,,5174351744,,5174651747,5174851749,,null,,nullnull,,5175051751,5175251754,,51756,,5175851759,,5176151762,,51764,,5176651767,,5176951770,5177151772,,5177451775,,51777,,5177951780,,5178212593,,12595,,1259712598,,12600,,1260212603,,1260512606,,12608,,1261012611,1261212613,,1261512616,,1261812619,,12621,,1262312624,1262512626,,1262812629,1263012631,,1263312634,1263512636,,1263812639,,12641,,1264312644,1264512646,,12648,,1265012651,,1265312654,,12656,,1265812659,1266012661,,12663,,1266512666,1266712668,1266912670,1267112672,,12674,,1267612677,12678,,1268012681,,1268312684,1268512686,,5178451785,,5178751790,5179151793,,5179551797,,51799,,5180151802,,51806,,5181151812,,5181451815,,51818,,nullnull,,nullnull,,5182051821,,5182351824,,51826,5182751828,5182951830,,5183251833,,5183551836,,518395184051841,5184251843,,51846,,nullnull,,nullnull,,5184851849,,5185151852,,5185451855,,5185751858,,51860,,,51863,,5186651867,,5186951870,,5187251873,,5187551876,,,51879,,85618562,,85648565,,8567,,8569null,,nullnull,null8544,,85468547,,85498550,,85528553,,nullnull,,,null,ull913,,915916,917918,,920921,,923924925,926927,,929931,,933934,,936,,nullnull,,nullnull,,nullnull,945,946947,,949950,,952953954955956957958959,,,,,,966967968,,nullnull,nullnull,nullnull,5188051881,,,,518855188651887,,51889518905189151892,,,,5189651897,,5189951902,,51905,,5190751909null,,,,nullnull,,519115191251913,,5191551918,,,,519255192651927,,,519325193351934,,51937519385193951940,51941,51942,51943,null,nullnullnull,null,,5194551946,,5194951950,5195151952,,5195451955,,5195851959,,5196151962,,5196451965,,5196751968,,5197051971,,5197351974,,51977,,947294749484,,,,,,,952495329473947594879491,,,95079523,,95319547,,95199512,95279535,,,950995289538949094899498,,,,,94859502,,,950695109511951395149517,,,,9525,,95299530,,,9536,,95399540,9541,,9543,,95459546,nullnull,nullnull,,null,,nullnull,nullnull,,nullnullnull,nullnull,,nullnull,,nullnull,,nullnull,,519805198151982,,,,5198751989,,,5199351994,5199551996,,519985199952002,,5200452005,,5200752008,,nullnull,,null,,,5201052011,,52013,,520155201652017,,5201952020,,,5202352024,,,520275202852029,,,,520345203552036nullnull,,nullnull,,,5203852039,,52043,,5204652047,,52050,,5205252053,,5205552058,,5206052062520635206452065,,,5206952070,,5207252073,,5207552076,1320513206,132078467,,,,13220132211322213209,,,132121321313214,,13216,,1321813258,131971319813199,,13192,,13256,,1322413232,,1323413235,,1323713238,,1324013241,,1318513186,1318713188,,1324313244,,13246,,1320013201,1320213203,,848613248,,13194,,13196,,13253,1322913230,1323113275,1322513226,13227,,13277,,1326713251,,13276,,nullnull,,nullnull,,nullnull,nullnull,nullnull,null,,null52077,,52079,5208052081,5208252083,5208452085,52086,,5209052091,5209252093,,5209552096,,5209852099,,5210152102,,52104null,,nullnull,,null,,5210652107,2108,,5211052111,,5211352114,5211552116,,5211852119,,5212152122,5212352125,,52127,,5212952130,52131null,,nullnull,,null52132,5213352134,,52136,,5213852139,,5214152142,,52144,,5214652147,,5214952150,,5215352154,,52156,,5215852159,,5216152162,5216352164,198,,170,,null,,null319,321216,,186222,,330null,,12897,,1289912900,,12902,,1290412905,,129071290812909,1291012911,,1291312914,,129161291712918,,1292012921,1292212923,,94259426,94279428,,94309431,,9433,,94359436,,94389439,,9441,,94439444,,94469447,,9449,,93139314,,9316,,93189319,,93219322,93239324,93259326,189,,8532188,,8539,,85418542,,5216652167,,5216952170,,5217252173,,5217552176,,52178,,5218152182,,,5218552186,5218752188,,52190,,nullnull,,nullnull,,5219252193,,52195,,5219852200,,5220352204,5220552206,5220752208,52209,5221052211,5221252213,,52215,,52217,,52219,,null,nullnull,nullnull,null,,52222,5222352224,,52226,,5222852229,,52231,,52233,,52235,,52239,,52242,,52245,,52247,,52249,,5225152254,52255,,52259,,230,,240,295305,307312,320322,248,,223254,,331,,1280012801,,12803,,1280512806,,,1280912810,,1281212813,1281412815,,1281712818,,1282012821,,12823,,128251282612827,93729373,,9375,,,93789379,,93819382,93839384,,9386,9387,,9389,,93919392,,93949395,93969397,9332,9333,,9335,93369337,93389339,93409341,9342,9343,,9345,9346185,178179,8308,,8321,,8323,,52261,,52266,5226752269,5227152273,5227452275,5227652277,5227852279,52282,52287,,52289,5229052291,5229452295,52297,,52299,,52302,null,,null,nullnull,null,,52304,,52306,,5231052314,,52316,,5231852319,5232152322,,5232552327,5232952330,,52332,,52334,5233552337,,null,nullnull,nullnull,,52339,,5234252343,5234452345,,52347,,5234952350,,5235252353,5235452355,,52357,,5235952360,,52362,,52364,,5236652367,,52369,,5237112353,,12355,,1235712358,1235912360,,12362,,1236412365,,12367,,1236912370,1237112372,,1237412375,,12377,,1237912380,,,12383,,1238512386,1238712388,,1239012391,1239212393,,1239512396,,1239812399,1240012401,,1240312404,,12406,,1240812409,,1241112412,1241312414,,1241612417,,1241912420,1242112422,,12424,,1242612427,1242812429,1243012431,1243212433,1243412435,nullnull,nullnull,null,,null,,null,nullnull,5237252373,5237452375,5237852379,5238152382,52383,,5238652387,5238852389,5239052391,52394,,52399,,52401,,52403,5240652407,52409null,nullnull,nullnull,null52410,5241152413,5241452415,5241652417,5241852419,5242252424,5242652427,5242852429,52430,,52433,,52435,,52438,,52440,5244152442,nullnull,nullnull,null,,5244352444,5244552446,5244752448,52449,,5245152453,5245452455,,5245752458,,52461,,5246352465,,5246752468,,5247052471,,52473,,5247552476,5247712449,,1245112452,1245312454,,1245612457,,1245912460,,1246212463,,1246512466,,12468,,1247012471,1247212473,,1247512476,1247712478,,1248012481,,12483,,1248512486,,12488,,1249012491,1249212493,,12495,,12497,1249812499,,12501,,1250312504,,12506,,1250812509,1251012511,2512,,1251412515,1251612517,,1251912520,1252112522,1252312524,1252512526,1252712528,12529,,12531,,12533,,null,,null,nullnull,nullnull,null,,52479,,52482,,52484,,52486,,52490,5249152493,5249452495,5249752498,5249952500,5250152502,52503,,52508,,52511,,null,null,,null,,null,5251352514,5251552517,5251852519,5252152522,52523,,52526,,52528,,52530,5253152532,5253352534,,52536,5253852539,5254052541,52542,,null,,null,,null,,52544,5254552546,5254752548,5254952550,5255152552,52553,,5255552556,5255752558,5255952560,52561,,52563,,52565,,52567,,52569,52570,5257152573,5257452575,1040,,1042,,1044,,1025,,1047,,1049,,1051,,1053,,1055,,1057,,1059,,1061,,1063,10641065,1066,1067,,1069,,1071,,null,nullnull,nullnull,nullnull,nullnull,null,,null,,null,,1073,,1075,,1077,,1078,10791080,10811082,1083,,1085,,10871088,10891090,1091,,1093,,1095,,1097,10981099,11001101,11021103,null,,null,,null,nullnull,,nullnull,null,null,,52577,5257852579,5258152582,,52584,52585,52586,,52590,,52594,,52596,,52598,,52601,5260252603,5260452605,5260652607,52608,,null,,null,,null,,52610,,52612,5261352614,5261552617,,52619,,52621,5262252623,52624,,52626,,52630,5263152633,5263452635,,52638,52639null,nullnull,null,,null,,5264152642,5264352646,,,5265152652,,,,52657,,52659,,5266152662,,52664,,5266652667,,52669,,52671,,52673,,,52677,,nullnull,null,nullnull,,nullnull,,null,,nullnull,,nullnull,,nullnull,,nullnull,,nullnull,,,,null,,nullnull,,nullnull,nullnull,,nullnull,,nullnull,,null,,nullnull,,null,,nullnull,,null,,nullnull,,null,,null,,null,,,nullnull,,null,,nullnull,,nullnullnull,,null,,nullnull,,null,,nullnull,,,nullnull,null52678,5267952680,,5268252683,,5268652687,,5269052691,5269252693,5269452695,,52697,,526995270052701,,52703,,52705,,null,,null,,null52706,,,5270952710,5271152713,,5271552717,,52719,,52722527235272452725,,52727,,5273252734,,5273652737,52738null,,nullnull,,null,,5274152742,,5274552746,527475274952750,,52752,,52754,,52757,,5275952760,,52763,,,5276652767,5277052771,,52774,,5277752778,,nullnull,,nullnull,nullnull,,null,,nullnull,nullnull,,nullnull,nullnull,,nullnull,nullnull,null,nullnullnull,,null,,null,,nullnull,,nullnull,nullnull,,null,,nullnull,,null,,nullnull,,nullnull,,nullnull,nullnull,nullnull,,nullnull,nullnullnull,,null,,null,,nullnull,,nullnull,,nullnull,nullnull,nullnull,null,,null,,null,nullnull,,null52780,,,52783,,5278852790,5279152792,52793,,52795,,52797,,52799,,52801,5280252803,52804,,52806,5280752808,52809nullnull,nullnull,null,,5281052811,52812,,5281452815,52816,,52818,5281952820,5282152822,52823,,52827,,52830,2834,,52836,,52838,5283952842,52844null,,null,,nullnull,,52847,,52849,528505285152854,5285552857,,5285952861,,5286352864,,52866,,528705287252874,,,52877,,5287952882,5288352885,5288652887,,nullnull,null,null,nullnull,,nullnull,,nullnull,nullnull,,nullnull,,,nullnull,null,,nullnull,,nullnull,,null,,nullnull,,nullnull,,null,,nullnull,,nullnull,,nullnull,,nullnull,nullnull,nullnull,,nullnull,,nullnull,nullnull,,nullnull,,null,,nullnull,,nullnull,,nullnull,nullnull,,nullnull,,nullnull,nullnullnull,nullnull,,nullnull,nullnull52890,5289152892,,528945289552898,,52903,,,52906,,,52911,,5291352914,,5291652917,,52919,,5292152922,,nullnull,,nullnull,,52924,,5292652927,5292852930,5293152932,,,5293552936,,52938,,52940,52941,5294252943,,5294552946,,5294852949,nullnullnull,,nullnull,529505295152952,,5295452955,,5295752958,,5296052961,,52963,,529675296952970,5297352974,529755297652977,,5297952982,,5298752988,5298952990,,4403244033,,4403944040,440414404244048,,4405044051,,4405344054,,4405744058,4405944060,,4406444068,,44077,,440804408144088,,44092,,4410744109,,,4412444144,4414544148,,4415244154,,4416144163,4416444165,,4416944170,,4417244176,,4418844189,,4419244193,,4420144202,44204,4420744208,4421644217,,4422044221,,4422844232,4423644245,,4425644257,4426044263,,,4426844271,,44273,,4427744278,,44285,,4429244294,5299452995,,529985299953001,,53003530045300553006,,,53012,,53015,,53017,,5301953021,5302253023,,5302653027,,nullnull,,null,,53029,,53031,,5303353034,,5303853042,5304353044,,5304653047,,53050,,5305253053,,5305553056,53057,,5305953060,,null,,nullnull,,,530625306353064,5306553066,,5306853069,5307053071,,5307353074,5307553078,5307953081,,53083,,53086,,5308853089,,53091,,5309653098,,53100,44300,44301,4430344305,,4431644320,4432944332,44333,,4434144344,,44356,,4435944361,4436844372,,4438544387,4439644397,,4440344404,4440544406,,4441244413,44415,4441744418,44424,,4442844432,,4444544452,,44480,,4448444488,4449644497,,4450844512,4451644536,,4454044543,4454444545,,4455344555,4455744564,,44593,,4459944600,4460244608,,4461144613,4461444618,,4462144622,,4462844630,4463644637,,4464044641,,44648,,4465244656,,5310153102,5310353106,5310753109,5311053111,,5311453115,,5311753118,5311953121,,5312353124,,53127,5312853129,,5313153133,,nullnull,nullnull,,5313453135,,5313753138,,53140,,5314253143,,5314553146,,53148,,53150,,53152,,5315553156,5315753158,,53161,,nullnull,,null,,5316253163,5316453165,,5316753169,,53171,,5317353174,,5317653177,5317853179,5318053181,,53183,,5318553186,5318753189,,5319153192,,5319453195,,44667,,44669,,44677,44684,,44733,4473444736,,44748,,4475144752,44753,447604476144764,4477644779,,4478844792,4479644807,,4481344816,4484444845,4484844850,,44860,,44863,,4486644867,,44873,,44892,,44900,,4492144928,449324493644944,44945,,4495644984,4498544988,4499244999,,45001,,4500545006,,45020,,45033,,4504145044,4504845056,,45060,,4507245076,4508445085,,4512445125,45128,,4513245134,4513945140,,4514345145,,53197,,5319953200,5320153202,,5320453205,5320653207,,53209,,5321153212,53213,,53215,5321853219,5322153222,,53225null,,null,,null,,5322653227,5322853229,5323053231,,53236,5323853239,53240,5324153242,5324353245,,53247,,53250,,5325353254,5325553256,5325753258,nullnull,nullnull,null,ull,5325953260,5326153262,5326353264,,53267,5326853269,5327053271,5327353274,5327553276,5327753278,,53280,,5328253283,,53285,,53287,,53289,,5329153292,,45180,,,4518845196,4519745199,4520145208,4520945210,,45215,,4521745218,4522445225,,4522845229,45230,,4523345235,,4523745240,4524445252,4525345255,,4525745264,4526545268,,4528045285,4532045321,,45324,,4533045331,,45337,4533945340,,45347,,45349,,4535645364,4536545367,4536845369,,4537745380,4538445392,,4539645397,,45404,,4543245433,45436,,4544245448,4544945451,,45458,,4546045464,,45480,,4552045524,4553245533,,53295,,5329753298,,53302,,5330553306,53307,,5331053311,5331253313,5331453315,5331853320,5332253323,5332453325,5332653327,nullnull,nullnull,nullnull,5332953330,5333153333,5333453335,5333753338,5333953340,5334153342,5334353345,53346,5334753348,,53350,,5335253353,5335453355,,53359null,nullnull,,null,,53361,,5336353365,,5336753368,5336953370,,53374,3375,,5337853379,5338053381,,5338353384,5338553386,,53388,,5339053391,5339253393,,5339553396,4553545544,,4554845552,4556145563,,4557245573,4557645579,,45588,,4559145593,,45620,,45656,,4566445672,4567345684,,45692,,45701,,4571245713,457164572045721,,45728,,4573145733,,45738,,45744,,4576845769,,4577645778,,45785,,4578945794,,4579745798,4580045803,,45805,,4580745811,,45813,,45816,,45818,,4582345824,,45828,,4584045841,4584345844,,45852,,4590945910,,4591545916,4591845919,,4592553397,5339853399,534005340153402,5340353404,,53406,,5340853409,,53411,,53415,,5341853419,5342153422,,5342453425,53426null,,null,,null,,5342753430,5343253434,,5343653437,53438,53439,53442,53443,,5344653447,5345053451,,53453,,5345553458,,5346353464,,53466null,nullnull,,nullnull,5346753470,,53473,,53475,,53478,,5348053481,,53483,,53490,53491,,5349353494,,5349753498,5349953500,,53502,,5350453505,5350653507,,459274592945931,,,,45940,4594445952,45953,,45956,,4596445968,,,,4599245996,4602046021,,46027,,4603046032,4603646037,,46041,,46045,,4605246056,4607646096,,4610846112,4612046121,,46132,,4616146164,4616846176,4617746179,4618146188,4620846216,4623746244,,4625246261,4626346265,,,46280,,4629346300,,,4630746308,,46316,,46319,,46328,,46357,46360,46363,46364,,46373,4637546376,4637746378,4638446385,,463925350953510,,5351253513,351453515,,,,53520,,,5352353524,,53526,,53528,,53530,53531,5353253533,,53535,,nullnull,nullnull,,5353653537,5353853539,5354053541,,5354353544,5354553546,,53548,,5355053551,5355453555,,53558,,5356153563,,53565,,nullnull,nullnull,,null53567,5357053574,,53576,,53578,,53582,,5358553586,,53589,,5359153592,5359353594,,53598,,5360253603,,53605,,5360753609,53610,5361153613,,4640146403,,4640546411,4641246413,,46420,,4642946431,4643246433,4649646497,4650046504,,4650746512,4651346515,,46517,,4652446525,4652846532,,46541,,46545,,4657246608,4660946612,4661646629,4663646644,,4669246696,,4674946752,4675646763,,46769,,4683246836,,46848,,4685346888,4688946892,,46896,,46905,,46916,,4692446932,,46944,4694846952,4696046961,4696346965,4697246973,,4698046988,4698946991,,4699346994,4699846999,5361453615,,53617,,5361953620,,,5362353624,53625,,5362753629,,53631,,5363353634,5363553637,,53639,,53642,,null,,nullnull,,53643,,53645,,5364753648,,53650,,,5365353654,5365553656,,5365853659,5366053661,5366253663,5366653667,,5367053671,,nullnull,nullnull,,53673,,,53676536775367853679,,,,5368753688,,5369153693,5369453695,,5369853699,53700,53701,53702,53703,53704,,53706,,5370853709,53710,53711,4700047001,,47008,470164701747019,,4702147028,470294703247047,4704947084,4708547088,4709247100,4710147103,,4710547111,,47113,,4712047128,47129,,4713347140,,4714447148,,47157,,4716047161,4716847172,4718547187,,47197,,4720447212,4721347215,,4722447228,4724547272,47280,,4728847296,,47299,,4730847312,4731647325,4732747329,,,4734047344473524735347355,,4736447384,,47420,,47424,,4743647439,4744147448,,4745247456,4746447465,,53713,,53715,,5371753718,5371953721,,5372353724,,53726,53727,53728,,,537315373253733,,,537365373753738,,,nullnullnull,,,53740537415374253743,,,53746537475374953750,,,,53755537565375753758,,,537615376253763,,,53766nullnullnullnull,,,,53770537715377253773,,,,5377853779,,537815378253783,,,537865378753788,,53790537915379253793,,,537965379753798,5379953800,5380147467,,4747647477,4748047484,4749247493,,47497,4749847501,,4753247533,47536,,4754847549,,47553,4756047561,47564,4756647567,,4756947570,,4757747579,,47582,,4758747588,4758947592,,4760447605,476074760847609,4761047616,4761747624,,4767247673,4767647680,,4768847689,,4769347694,,47700,,477044770847716,,47719,,4772147728,477294773247736,47747,,4774947751,477564778447785,,4778847792,4779447800,4780147803,,47812,,4783247833,4786853802,,5380653807,5380953810,,53813,,5381553816,,53818538195382253824,,5382753828,538295383053831,,,5383553836null,,,,nullnull,,,,538405384153842,5384353844,,5384653847,,53849,,5385153853,5385453855,5385653857,,53859,,5386253863,53864null,nullnull,nullnull,null53865,5386653867,5386853869,5387053871,5387253873,5387453875,,53877,,5387953880,,53882,,5388453885,,,5389053891,,53894,,,,53899,,478724787647885,4788747889,,,4790447913,,4792447925,,479284793147932,,4793447940,,,,,4795147952,,4796047969,,4798048008,,,,,480444805248055,,,,,4808348120481214812448127,,,481364813748139,,,,4814548148,,48150481514815248155,,,,,481644816548167,,,,481774818048184,,,,481964819748201,,,,,,4826148264,,48268482704827648277482795390153902,,,,5390853910539115391253913,,,,,539195392153922,,,,53927539285392953930,,,,nullnullnullnullnull,,,539365393853939,,,,,539465394753949,,,539555395653957,,,5396253964,,,539675396853969nullnull,,,nullnull5397053971,,,,53977539785397953981,,,,539855398653987,,,53992539935399453995,,,,53999540025400354005,,,,54010482814828248288,,48292482954829648304,,,,483094831648317,,,48333483354833648337,,,,483724837348374,,4838048388,,,,48400484044842048428,,,4845748460,,,4847348484,,48512485134851648519,,485214852248528,,,48533485374853848540,,485604856848596,,,,48617486244862848632,,,,48652486534865648660,,,48671487084870948712,,,4872448725487274872948730,,,487374874054011,,5401354014,,,540205402254023,,,,54027540315403354034,,,54039,,540415404254043,,54050,,nullnullnull,nullnull,,54052,,5405554058,,5406154062,,540655406654067,5406854069,54070,54071,54074,5407854079,5408054081,,5408354086,5408754088,54089null,,null,,nullnull,5409054091,5409254093,54094,,54096,,54098,,54100,,54102,,54104,,54106,,54108,,54110,5411154112,5411354114,5411554116,54117,,54119,5412054121,48744,48746,,48753,4875548756,4875748763,4876448765,48768,,4878048781,,4878448785,48792,,48808,,48849,,48855,4885648864,,4886848869,4887648897,48904,,48920,,48923,,4892548960,4896148964,,4897648977,,49044,,4909349100,,49104,,49116,4911949121,,4923349240,4924449248,,49257,49296,49297,,49304,,49313,,4931749324,,4932749328,,49332,,49334,,49341,49343,,4934549349,4935249353,49356,4936049368,,49371,,4937349380,5412254123,,5412554126,,,54129,,5413154132,,54134,,5413654137,5413854139,,54143,,54146,,5414954150,54151null,,null,,nullnull,5415254153,,,54158,,54163,,5416554166,,54170,,54173,,5417554177,,54179,,5418154182,5418354186,,54190,,null,,nullnull,,541915419254193,5419454195,5419754198,,5420154202,54203,,5420654207,5420854209,,5421154214,5421554218,5421954220,5422154222,,54225,,,5422854229,,4938149384,,49396,,4939949401,,4941249416,4942449429,4943649437,,49439,,4944349444,4944649447,,494534945549456,,49462,,4946549468,4947249480,,4948349484,4948549492,,49496,,4950849509,4951149512,,49520,,49528,,495484954949550,4955249556,495584956449565,4956749569,4957349576,4957749580,4958449597,49604,,49612,,4962349624,4963249636,,49648,,,4966049661,4966449668,,4967749679,4968149688,4968949692,4969549696,,49705,,49709,,5423354234,5423554236,5423754238,,54240,,5424454245,5424654247,,54249,,54251,,54255,,54258,,5426154262,,null,,null,,nullnull,5426454265,54266,54267,5427054272,,,54276,,54278,,54281,,54283,,5428554286,,54288,,54290,,54292,,54294null,nullnull,,null,,5429554296,,542985429954300,,5430354304,,54306,,5430854309,5431054311,,5431354314,5431554316,,54318,,54320,,5432254323,5432454325,,543274971149713,4971449716,,4974449745,4974849752,,49765,,4977349776,4978049788,4978949791,,49800,,4980849816,4981949821,498284982949832,,49837,,49845,,4984949884,4988549888,,4989249899,4990049901,4990349905,,49912,,49915,,4992049928,4992949932,,49939,,499414994449948,4995649957,4996049961,,50024,,5002850032,5003450040,50041,,5004550052,5005650060,5011250136,,50140,,50144,,50152,5015350157,,50165,,5018450192,50212,,50224,,54329,,54331,,54333,,5433554337,54338,,54341,,54343,5434454345,5434654347,5434854349,5435054351,5435254353,5435454355,,null,,null,,null,,54357,,54359,,54361,5436254363,5436554366,5436754369,5437054371,5437354374,,,54377,,54379,5438054382,5438454385,,null,,null,,null,,54387,5438854389,5439054391,5439454395,,54398,,5440354404,,,5440754410,5441254414,5441554416,,54418,,54421,,5442354424,5442554426,,,,50228502365023750248,,,,5028450292,,502975030450324,,50360,5036450409,50416,,50420,5042450426,5043150432,5043350444,50448,,50460,5047250473,50476,,50488,,50491,5049350500,50501,,50505,,5050850509,50510,,50516,5051750519,5052050521,5052550526,50528,,50532,5053650544,5054550547,50548,,50556,5055750560,50564,,50572,,50575,,50581,5058350584,5058850592,50601,,50613,,50617,5061950620,50621,,50628,5062950630,5063150632,50633,,50636,,54430,,5443254433,,5443554436,5443754438,,5444054442,5444354444,54445,,54447,,54449,5445054451,5445254453,54454,,54456null,nullnull,,nullnull,,5445854459,54460,,54462,5446354464,54465,,54467,,54469,5447054471,54472,,54474,,54477,5447854479,5448154482,54483,,null,nullnull,null,,null,,54487,5448854489,54490,,54493,,54496,5449754498,54499,5450054501,5450254503,5450554506,,54509,5451054511,5451354514,5451554516,54517,,54519,,54522,,50640,5064150644,50648,,50657,5065950661,,50669,5067050672,50676,,50679,5068450685,50686,,50688,,50693,5069450695,5069650700,50704,,50713,5071550716,5072450725,50728,,50733,5073450736,50739,,50741,5074350745,50747,,50753,,50760,50768,,50771,,50773,5078050781,50784,,50799,,50808,,50812,5081650824,50825,,50829,5083650837,50840,,50852,5085350855,5085750864,50865,5086850872,50873,,50880,,50883,5088550892,5089350896,50900,5090850909,50912,,50920,,54527,5452854529,54530,,54533,5453454535,54537,,54539,5454154542,54543,,54545,,54547,5455054552,54553,,54555,,54557,nullnull,null,,null,null54558,54559,,54561,5456254563,54564,,54566,5456754568,5456954570,54571,5457254573,54574,,54576,,54578,5457954580,54581,,54583,nullnull,null,,null,null54584,54585,,54587,5459054591,54593,,54595,5459754598,5459954600,54601,,54603,5460654608,54610,,54612,5461354614,5461554618,5461954621,54622,,54625,5462654627,50921,,50928,5093650937,50941,,50949,5095250956,5096450965,50967,,50976,50977,50980,,50992,5099350995,50997,,51004,5100551008,5101251018,,51021,,5102551026,,5102851029,,5103151032,,51040,,5105151060,5106151064,5106851069,51070,,51076,5107751079,51080,,51082,,51088,5108951092,5109451095,51096,,51104,,51107,5110851109,5111051116,51117,,51124,5113251133,51135,,51137,5114451145,5114851150,51152,5116051165,51172,,51180,,51201,5120451208,5121054628,5463054631,54634,,54638,,54640,5464154642,5464354646,54647,,54650,5465154653,54654,,54656,5465754658,54659,,54666,54667,null,null,null,nullnull,null54668,5466954670,54671,,54674,5467554676,5467754678,54679,,54681,,54683,54684,,54686,,54688,5468954690,54691,,54694,54695null,null,,null,nullnull,54696,,54698,5469954700,54701,,54703,,54705,5470654707,54708,,54710,5471154712,54713,,5471554716,54717,5471854719,54720,,54722,5472354724,54725,,54727,5121651217,51219,5122151222,51228,,51232,,51244,51245,,51249,5125651260,51264,,51273,,51277,5128451312,51313,,51320,5132251328,51329,,51333,5133451335,51339,,51341,,51357,5135951361,51368,,51389,5139651400,51404,,51413,5141551417,5142451425,,5144551452,5145351456,,5146151462,5146851469,,51473,,5150051508,5153651537,51540,,51552,5155351555,51564,,51572,5158051592,51593,,51600,5160851609,5161151613,51648,,51652,5165551656,51658,,51665,,54730,5473154733,54734,,54737,,54740,,5474254743,5474654748,5475054751,5475254753,,54755,5475854759,5476154762,5476354765,54766null,null,,null,,null,,54768,5476954770,54771,,54776,,54779,5478054781,5478254783,54786,,54789,5479054791,5479354794,54795,,54797,,54799,54802null,nullnull,,nullnull,5480654807,54808,,54810,5481154813,54814,5481554817,54818,,54821,54822,54823,5482454825,54826,,54828,5483054831,54832,,54834,5483554836,54837,,54839,5484254843,51669,,51673,5167451676,5167751680,51682,,51687,5169251693,51695,,51697,,51705,5170851712,5172051721,51723,,51725,,51736,,51788,5178951792,51796,,51805,5180751808,51809,,51837,5184451864,5190051901,51904,,51916,5191751919,51921,,51928,,51936,51948,,51976,51984,51988,51992,,52001,52033,,52041,5204452048,52056,,52061,5206852088,52089,,52152,5218052196,52199,,52236,,52240,5224452252,5225352257,5225852263,5226452265,52268,,52272,5228052281,5228354845,,54847,5484954850,5485154852,,54855,,54860,5486254863,54864,,54867,5487054871,54873,,54875,,54878,5487954880,54881,,null,nullnull,null,,54882,5488354884,54885,,54888,5489054891,5489254893,54894,,54898,5489954901,5490254903,5490454905,5490654907,54908,,54910,54911,54912,,null,nullnull,null,,54913,5491454916,54918,,54920,,54922,,54926,5492754929,54930,,54933,,5493554936,54937,,54939,,5494254944,54946,,54948,,5495054951,54953,,52284,5228552286,,5229352296,52300,,523095231152312,5231352320,52324,2326,5232852336,5234152376,,52380,,52392,,52395,,52397,,5240552408,5241252420,,52423,,5243252436,5245252460,52464,,52488,,52492,5249652504,525055250752509,5251652520,5252452537,,52576,,52588,,5259152593,5260052616,,52629,,52636,,52645,,,5265652676,,52688,5271252716,5272052728,5272952731,,52740,,52748,,5276152768,52769,,5277652784,5278552787,,54955,,54958,,54961,5496254963,54964,,54966,,54968,5497054972,54973,,54975,,54977,,54979,5498254983,54985,,54987,,null,nullnull,,null,5498954990,5499154992,54994,,54997,5499855000,5500255003,5500455005,5500655007,55009,,55011,5501355014,55015,5501755018,55019,,55021,nullnull,,null,,null,,5502355025,55026,,55028,5503055031,55032,,55034,5503555038,55039,,55042,5504355045,55046,,55048,5504955050,5505155052,55053,,5505555056,55058,,55060,5282452825,52828,,52832,5283352840,5284152843,52845,,52853,5285652860,5286852869,52871,,52880,,52884,,5289652897,52899,,52901,,52909,,5296452965,52968,,52972,5298052981,5298352984,52985,,52993,,53000,,53009,5301153013,53020,,53028,,53037,,53040,5304153048,5307653077,5308053084,53092,,,5309753104,53105,,53112,,53125,,53153,5316053168,53188,53216,,53220,5322453232,,5323553237,,53248,,53265,5327253293,5330053301,5330453308,5506155062,5506355066,55067,,55070,,55073,5507455075,5507655077,,55079,,55084,5508655087,5508855089,5509055091,5509455095,55097null,nullnull,nullnull,null,,55099,,55102,,55104,,55106,55107,,55110,,55114,5511555116,5511755118,5511955122,55123,,55130,5513155132,5513355134,null,nullnull,null,,null,55135,,55140,,55143,55144,,55147,5514955150,55151,,55154,,55157,55158,,5516055161,,55163,,5516755168,5517055171,55172,,55174,5517555178,55179,,53317,,53321,5332853332,,53344,5335653357,5336053364,,53373,,53412,,53416,,53428,,53431,,5344053441,5344453448,5344953456,5345753459,,53461,5346853469,,53476,,53485,,53488,53489,,53517,5355253553,53556,5356053562,53568,,53571,,53573,,53581,5358453588,53596,5359753599,5360153608,5361253628,5363653640,,53665,5366853672,53680,5368153683,53685,,53692,5369653720,53748,,53767,53769,,53804,5380553808,53812,,53821,5382353825,53832,,55181,,55183,5518555186,55187,,55189,,5519155194,,5519855199,5520055201,5520255203,nullnull,ullnull,,nullnull,,nullnull,null,,null,,null,nullnull,nullnull,nullnull,nullnull,null,,null,,null,nullnull,nullnull,nullnull,nullnull,nullnull,null,,null,,null,nullnull,null,,null,,null,,null,,null,,null,,null,nullnull,nullnull,null,,null,,null,nullnull,nullnull,nullnull,,null,,null53860,,53889,,53896,,53905,,53916,5392053924,53932,,53944,,53948,,53952,,53960,,53963,5397253976,5398053988,53989,,54001,5400454008,5401654017,5401954021,5402854029,5403054032,54036,,54044,5404554047,5404854049,5405354056,,54060,,54072,,54075,,54077,,54085,5414054141,5414454148,54156,,54159,5416054161,,5416954172,,54184,5418554187,54189,,54200,5420454212,54213,,54217,5422454232,54241,,54252,54253,54256,5426054268,5426954271,54273,,null,nullnull,null,,null,nullnull,null,,null,nullnull,null,,null,nullnull,null,,null,nullnull,null,,null,nullnull,nullnull,null,nullnull,null,nullnull,null,,null,nullnull,nullnull,null,,null,nullnull,nullnull,nullnull,null,,null,nullnull,null,,null,nullnull,nullnull,null,,null,nullnull,null,,null,nullnull,null,,null,null,null,nullnull,null,,null,nullnull,null,,null,,nullnull,null,,54280,5430154336,54340,,54368,5437254381,54383,5439254393,54396,,54400,5440254408,54409,,54413,5442054441,54476,,54484,54492,,54504,5450854512,5452054523,54525,,54536,5454054548,5454954551,,54589,5459254596,5460454605,5460754609,5461654617,,546245462954632,54633,5463554637,5464454645,54648,,54660,5466154663,54664,,54672,,54728,5472954732,5473654738,54744,,54747,,54756,5475754760,5476454772,54773,,54777,,54785,5478854792,54800,,54803,,54805,,54816,,null,,null,,null,,null,nullnull,nullnull,,null,,null,nullnull,null,,null,,null,nullnull,null,,null,nullnull,null,,null,,null,nullnull,null,,null,nullnull,null,nullnull,nullnull,null,,null,nullnull,null,,null,nullnull,null,,null,null,,null,nullnull,null,nullnull,null,,null,nullnull,null,ull,nullnull,null,,nullnull,,null,nullnull,nullnull,nullnull,nullnull,null,,,nullnull54820,5482954840,5484154844,5484854853,5485654857,,54861,,54868,,54872,,54887,,54896,,54900,,5491754924,5492554928,,54941,,54945,5495254956,5496054969,5497154980,54981,,54988,5499354996,5499955001,5500855012,5501655024,5502955036,5503755040,5504455057,,55065,,55072,,55081,,55085,,55093,,55100,,55111,,55120,,55124,,55127,,55129,,55137,,55141,,55148,,55156,,5516555169,55176,,55180,,55192,,55195,,null,,null,nullnull,null,,null,nullnull,null,,null,,null,nullnull,null,,null,nullnull,nullnull,nullnull,,,nullnull,,null,nullnull,nullnull,null,,nullnull,,nullnull,nullnull,null,,null,,nullnull,null,,nullnull,nullnull,nullnull,null,,null,,null,nullnull,null,,null,null,null,,null,nullnull,nullnull,null,,null,nullnull,null,,null,,null,,null,nullnull,null,,null,nullnull,nullnull,null,,null,nullnull,nullnull,null,,null,nullnull,null,,null,nullnull,null,,null,nullnull,nullnull,null,nullnull,null,,null,nullnull,null,,null,nullnull,nullnull,nullnull,null,,null,nullnull,null,,null,,null,nullnull,null,nullnull,nullnull,null,,null,nullnull,null,,null,nullnull,nullnull,,nullnull,null,,null,nullnull,nullnull,null,ull,,null,nullnull,null,,null,nullnull,nullnull,nullnull,null,,null,,null,nullnull,null,,null,,null,nullnull,nullnull,null,,null,nullnull,nullnull,null,null,,null,nullnull,nullnull,nullnull,nullnull,null,,null,nullnull,,null,,null,nullnull,nullnull,null,,null,nullnull,null,,null,nullnull,nullnull,null,,null,,null,nullnull,nullnull,null,,null,nullnull,,nullnull,nullnull,nullnull,null,,null,nullnull,null,,null,,null,20285,,20551,2072921152,21487,,21733,2202523233,23478,,26550,2655126607,,2963430146,31292,,33540,3490334952,35382,,36303,3660336838,39381,,21364,21508,,24932,,29647,3305035258,35282,,20355,2100222718,22904,,,24185,2503125536,26438,,26751,2856730286,30475,,31240,3148731777,32925,,33393,35563,,20075,2191726359,2821230883,31469,,35088,3463838824,21208,,22570,2388424863,25022,,25954,2657727204,28187,,30131,30435,,32058,3703937969,37970,,null,nullnull,null,,null,nullnull,null,,null,nullnull,null,,null,,null,nullnull,null,,null,nullnull,null,nullnull,nullnull,nullnull,nullnull,null,nullnull,null,,null,nullnull,null,,null,nullnull,nullnull,null,,null,nullnull,nullnull,null,,nullnull,null,,null,,null,nullnull,null,,null,,null,,null,nullnull,null,,null,,null,,null,nullnull,null,,null,null,,null,,null,nullnull,null,,237243000232987,37440,,21083,,23004,,23831,,24378,2439424951,2774330074,30086,,32115,,32652,,33313,,35137,,37628,,40007,,20215,,20977,,24887,,24936,,27114,,30117,,30422,3162333445,3399563744,37799,3828321888,23458,,63745,3192332697,3730120520,,23621,,25298,,25818,,28192,,31067,36317,,6374636989,,3762420094,,20581,,2431424838,,3313734388,,3774939467,2006220625,,2668820745,,2113827298,,nullnull,,null,,nullnull,,nullnull,,nullnull,,null,,nullnull,nullnull,,nullnull,,nullnull,,null,,nullnull,,null,,nullnull,,nullnull,,null,,nullnull,,nullnull,,null,,nullnull,,nullnull,,nullnull,,nullnull,,nullnull,nullnull,,nullnull,,null,,nullnull,,null,nullnull,,null,,nullnullnull,,null,,null,nullnull,null30652,37392,,21163,,36850,2055225001,2558125802,26684,,28608,,35233,38548,,29309,,29956,,32365,,3521135700,3696340273,25225,,28500,,32570,,20860,,31645,,3746337772,,2043520510,,20742,,21197,,22384,,24218,,24950,,25806,,26223,,26356,,28039,,28913,,29861,,30169,,30956,,31478,,32147,,32831,,33686,,36629,,37857,,38968,,39912,,2184322586,2286523395,2362224760,2510626690,26800null,nullnull,,null,,null,,null,,null,,null,,null,,null,,nullnull,nullnull,,null,,null,,null,,null,,nullnull,,nullnull,null,nullnull,nullnull,nullnull,null,,null,,null,nullnull,null,,null,nullnull,nullnull,,null,nullnull,null,null,null,,null,,null,nullnull,nullnull,null,,null,nullnull,nullnull,null,,null,nullnull,nullnull,nullnull,null,,null,nullnull,26856,,30028,,3092631293,3199532363,32380,,35489,,38542,,21476,2148121578,2161722266,2299323396,23611,2423525335,25911,,25970,,26543,,27837,3020430352,3059031295,3266032771,3292933167,,3353333776,3424134865,3499635493,6374736764,3767838599,3901539640,,21741,26011,26354,2676731296,3589540288,2225622372,2382526118,2680126829,,2973634974,3990827752,,3959220379,20844,20849,21151,23380,24037,,24685,,25511,2591529657,3135434467,36002,,2001823521,,2652429916,,nullnull,,nullnull,,nullnull,nullnull,,nullnull,,nullnull,,nullnull,,null,,,nullnull,null,nullnullnull,null,nullnull,,nullnull,nullnull,,nullnull,,nullnull,,null,,nullnull,,nullnull,nullnull,,nullnull,,null,,nullnull,,nullnull,nullnull,,,null,,nullnull,,nullnull,,nullnull,,null,,nullnull,,null,,nullnull,nullnull,,nullnull,,33747,,3550636328,,3770738982,,27112,,3710163749,,2344823532,,26874,,2874829743,,,3259233733,,3601138364,3920821038,,25324,,2036220809,,22745,,2633627960,2882629378,,3156833009,,21350,,3261920054,,22602,,2461824871,,2708839745,2343932024,,36703,,2068921676,2193223308,2396824039,2589825934,2665727211,2940930350,,32094,,3318434126,,3661136686,,39171,,3985119992,,2006120167,,2085521246,,nullnull,,null,,nullnull,,nullnull,,null,,nullnull,nullnull,,nullnull,nullnull,,nullnull,nullnull,,null,,nullnull,,null,,nullnull,,null,,nullnull,,nullnull,nullnull,,nullnull,,nullnull,nullnull,,nullnull,,null,,nullnull,,null,,nullnull,,null,,nullnull,nullnull,,nullnull,,,null,,nullnull,,null,,nullnull,,null,,nullnull,,2131221475,,21646,,,22434,,2394324272,2508425304,,2655226601,2708327472,,2762827714,,2879229399,,2969930655,3069731350,,3277733276,,3329033503,,3563536092,3654436881,,3747637558,,3949340169,4040740860,,2361633738,3881638827,4062821531,,32676,,36557,,22528,23624,,31391,,24339,,31406,,36524,,2104821240,,22280,,2545827402,2809930519,2141329527,,3647038357,,27331,,3543736556,3924363750,,27512,,nullnull,,nullnull,,null,nullnull,nullnull,nullnull,null,nullnullnull,,null,,null,nullnull,,null,,nullnull,nullnullnull,nullnull,nullnull,,null,,nullnull,,nullnull,,null,,null,,nullnull,,null,,nullnull,,nullnull,nullnull,,null,,nullnull,,null,,nullnull,nullnull,,nullnull,,nullnull,nullnull,,nullnull,null,,nullnull,,null,,null,,nullnull,null39740,6375121483,,2286225542,,29674,,3141831429,,33909,,3621136917,,21243,,3002331584,,37406,,2722420811,,2112725119,2684026997,,,2115621220,,26020,,2713529822,,3346533771,3525035641,,39241,,2017022935,258102612927278,2974831105,,3344934942,3494335167,,37670,,,24613,,2776232026,,2012020834,,3294320225,2023820854,,21980,,2233122522,2252422804,,22931,,2369623822,,2419024524,2521626071,,nullnull,,nullnull,,null,,nullnull,nullnull,,null,,nullnull,,nullnull,nullnull,,null,nullnull,nullnull,,nullnull,,null,,nullnull,,nullnull,nullnull,,nullnull,nullnull,nullnull,,null,,nullnull,,null,,nullnull,nullnull,,nullnull,,null,,nullnull,,null,,,null,,nullnull,,nullnull,nullnull,,null,,,nullnull,nullnull,,null,,nullnull,,null,,,2646226827,2682027231,,2768327773,,28103,,2973429738,2982629859,,30079,,3095931041,,3104831098,3163732000,,32648,,3281332908,,35663,,3621537665,3766839138,,3943839439,,40594,,20342,21513,,26708,3732921931,20794,,63756,,25062,63757,,25343,6375863759,6376063761,63762,,37027,6376463765,6376663767,63768,,63769,6377063771,6377226262,63773,,63774,6377538627,6377625423,25466,2133563777,26511,,28275,6377830007,6377963780,63781null,null,,null,,null,nullnull,nullnull,,null,,null,,null,,null,nullnull,nullnull,null,,null,,null,nullnull,null,,null,nullnull,,null,,null,,null,,null,nullnull,,null,nullnull,nullnull,null,,null,,null,,null,nullnull,nullnull,null,,null,nullnull,null,,null,nullnull,nullnull,null,,null,,null,nullnull,null,,null,,null,nullnull,null,,nullnull,null,nullnull,,null,3201363782,63783,,22218,2306463784,63785,,63787,63788,2003563789,2083922856,,3278463790,2289924180,,31178,,24684,25288,,23527,,21162,63791,,24361,,63792,6379363794,29785,,63796,6379763798,63799,,39377,6380163802,6380363804,6380563806,63807,6380863809,6381063811,2861163812,6381333215,3678624817,,63815,,,6381723615,,6381963820,,,6382363824,,2327335365,,3201663826,6382763828,6382963830,6383133021,6383263833,23612,,21311,,22810,33590null,null,,null,,null,nullnull,null,,null,,null,,null,null,nullnull,nullnull,nullnull,nullnull,null,,null,,null,,null,,null,,null,,null,nullnull,null,nullnull,null,,null,nullnull,null,,null,,nullnull,nullnull,nullnull,null,,null,,null,,null,,null,,null,,null,,null,,null,nullnull,null,,null,null,,null,,null,,null,nullnull,nullnull,nullnull,nullnull,nullnull,,20150,,21934,,22727,,26039,,27264,2757328237,3070131471,3177432222,3450734962,3717037723,25787,,29562,,36948,2184622349,2501825812,2631128129,2825128525,2860130192,3283533213,,35203,,35674,,27795,,31572,3636736957,21776,2253022616,2416225095,2575826848,3007031958,3473940680,20195,2240822382,2282323565,23729,,24453,,25825,2961933274,3495536024,3853840667,,24503,,20498,,21040,2229422581,2261523566,23648,,23947,2423024466,2476425361,2548125623,,null,nullnull,null,,null,nullnull,null,,null,nullnull,nullnull,nullnull,nullnull,nullnull,null,,null,,null,,null,,null,,nullnull,nullnull,null,,nullnull,nullnull,nullnull,nullnull,nullnull,nullnull,nullnull,nullnull,,null,nullnull,nullnull,nullnull,nullnull,nullnull,nullnull,null,,nullnull,nullnull,nullnull,nullnull,nullnull,nullnull,nullnull,null,,null,,nullnull,,null,,null,,null,,26873,,28120,,2837228644,2918230428,,3115331291,3379635241,3607736339,,3686736884,3694737117,,,3887627602,,2927229346,,3056331167,,3241135712,,2477525958,,2630227788,,2912935930,,2007731361,,209082094121205,,2499926481,,,2793428540,,3064331461,,,3750920828,,2646026515,,3143133651,,3591036887,,2366333216,,3692936975,,2447123965,,2912830331,,3427635588,,394722189525078,,3031332645,nullnull,,nullnull,nullnull,nullnull,nullnull,,nullnull,,null,,nullnull,nullnull,,,nullnull,nullnullnull,nullnull,nullnull,null,,null,,null,nullnull,null,,null,,null,,null,,null,,null,,null,,null,,null,,null,nullnull,nullnull,nullnull,,null,nullnull,,null,nullnull,null,,null,,null,,null,null,nullnull,,nullnull,nullnull,nullnull,nullnull,nullnull,nullnull,null34367,,35064,,6383627931,2888929662,,3385363837,,39409,63838,0098,2136527396,2741028734,2921134349,40478,21068,,23888,,25900,,28651,,32412,,35172,,25289,3324034847,,26391,2801029436,297012980734690,37086,,23821,,33802,2091925504,3005320142,2048620841,2093726753,2715331918,3192131975,3339135538,3663537327,2040620791,2123721570,2430024942,2515026053,,28670,,34268,3485138317,3952239530,40599,4065421147,26310,,28701,,36706,3872224976,2508825891,28451null,nullnull,nullnull,nullnull,null,,null,,null,,null,,null,nullnull,,null,,null,nullnull,nullnull,null,nullnull,null,nullnull,,null,nullnull,,nullnull,nullnull,nullnull,,null,,null,nullnull,nullnull,,null,nullnull,null,nullnull,nullnull,,null,,nullnull,null,,nullnull,,nullnull,nullnullnull,,null,,nullnull,nullnullnull,,nullnull,,nullnull,,nullnull,ullnull,,,2900129833,,3287934030,,3689937706,,,21155,,2887235010,,2598627566,,,29557,,,2226563839,,239942460429618,,3266632718,,368943742838646,38728,,40801,,28583,31150,,38583,21214,,25736,,27347,,28696,2920030439,3276934310,34396,,36613,3870639791,4044240565,30860,,32160,3373737636,4057540595,35542,,24324,,2871129903,3184032894,20769,,29282,,36034,36058,,38647,20102,,23534,2427826009,29134,3027430637,,34044,,null,nullnull,nullnull,null,,null,,null,nullnull,nullnull,nullnull,nullnull,nullnull,null,ull,,null,null,null,,nullnull,,null,nullnull,null,null,nullnull,null,nullnull,,null,,null,null,,null,nullnull,null,nullnull,null,nullnull,null,,null,null,,null,null,,null,null,,null,,null,null,,null,null,,null,null,nullnull,null,,null,,null,nullnull,null,nullnull,null,,null,null,null,,null,3698839719,4084522744,23105,2365027155,28122,2843130267,32047,,34078,3512837860,38475,,26066,2661127060,27969,,2868729705,2979230041,30244,,35628,3900620845,2513438520,2037420523,23833,,32184,3665024459,24900,2664763841,,21202,,20956,,26974,3126032190,3377738517,2044221033,21400,,21774,2365324743,2644626792,28012,,29432,2970229827,63842,,31852,32633,,33673,,35041,37324,37328,,39881,2153328542,29136,,34298,,38563,4002340607,2651928107,,33256,,30764,null,,null,,null,,null,null,,null,nullnull,nullnull,null,,null,,null,nullnull,null,,null,nullnull,null,,null,,null,nullnull,,null,nullnull,null,,null,,null,nullnull,nullnull,null,nullnull,null,,null,nullnull,null,,null,,null,,null,,null,nullnull,nullnull,null,,null,,null,nullnull,null,,null,,null,nullnull,nullnull,null,,null,nullnull,null,,null,nullnull,nullnull,null31435,,31890,,2980230194,30908,,3934039764,,23518,,28448,3318033707,3700019975,21325,,2401824398,24930,,26217,,28415,2845928771,3062233836,,3487536627,39237,,21788,,26411,2781933545,3517838778,20129,,24536,2453726395,32178,,33426,3357933725,3663837017,2247522969,23186,,26151,,26757,,29028,3262936023,36067,3699339749,33032,,38476,39488,,23391,,29467,,30431,3380420906,35219,,20885,2119326825,27796,,30496,3219132236,38754,0629,28357null,null,,null,null,null,nullnull,nullnull,nullnull,null,,null,nullnull,,null,null,null,nullnull,nullnull,nullnull,,null,nullnull,null,,nullnull,null,,null,,null,,null,,null,nullnull,nullnull,null,,null,null,,null,nullnull,,null,null,,null,nullnull,null,,null,nullnull,null,nullnull,null,,null,nullnull,null,,null,null,,null,nullnull,nullnull,null,,null,,null,null34065,2090121517,2162926126,26269,2691928319,,30609,,33986,,37225,3752840180,3494620398,2088221215,,,2491725720,,26286,,2716927597,,29279,,2976130520,,3279133468,3354135584,,3598026408,2779229287,,3056631302,,2751927794,,,3394521359,,2293724287,2555126164,,2821829483,31447,33495376722120924043,,2503525098,2528725771,26080,,27494,,28961,2968730045,3232633310,33538,,35491,36031,3869540289,22696,,20497,2100621563,2183925991,nullnull,nullnull,nullnull,null,,null,nullnull,null,nullnull,null,null,ull,nullnull,null,,null,,null,,null,,null,null,null,null,null,nullnull,null,null,nullnull,null,nullnull,null,null,nullnull,null,null,,null,null,nullnull,null,null,,null,null,,null,null,null,null,nullnull,,,null,nullnull,null,null,,,,nullnull,null,,nullnull,null,,nullnull,32010,32011,32862,3444238272,38639,21247,27797,29289,21619,23194,38753,40692,23735,24758,24845,25003,25935,26107,26108,27665,27887,29599,29641,32225,38292,23494,34588,35600,21085,21338,25293,25615,25778,26420,27192,27850,29632,29854,31636,31893,32283,33162,33334,34180,36843,38649,39361,20276,21322,21453,21467,25292,25644,25856,26001,27075,27886,28504,29677,30036,30242,,30460,30928,3097131020,32070,33324,3478436820,38930,39151,21187,25300,25765,28196,28497,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,30332,36299,37297,37474,39662,39747,20515,20621,22346,22952,23592,24135,24439,25151,25918,26041,26049,26121,26507,27036,28354,30917,32033,32938,33152,33323,33459,33953,34444,35370,35607,37030,38450,40848,20493,20467,63843,22521,24472,25308,25490,26479,28227,28953,30403,32972,32986,35060,35061,35097,36064,36649,37197,38506,29140,30058,63844,32321,34115,34281,39132,20240,31567,32624,38309,20961,24070,26805,27710,27726,27867,29359,31684,33539,27861,29754,20731,21128,22721,25816,27287,2986330294,nullnull,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,,null,nullnull,null,,null,,null,nullnull,null,30887,34327,38370,38713,63845,21342,24321,35722,36776,36783,37002,21029,30629,40009,40712,19993,20482,20853,23643,24183,26142,26170,26564,26821,28851,29953,30149,31177,31453,36647,39200,39432,20445,22561,22577,23542,26222,27493,27921,28282,28541,29668,29995,33769,35036,35091,35676,36628,20239,20693,21264,21340,23443,24489,26381,31119,33145,33583,34068,35079,35206,36665,36667,39333,39954,26412,20086,20472,22857,23553,23791,23792,25447,26834,28925,29090,29739,32299,34028,34562,36898,37586,40179,19981,20184,20463,20613,21078,21103,21542,21648,22496,22827,23142,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,nullnullnull,nullnull,null,,null,nullnull,null,,null,nullnull,null,2597526023,,2832529238,3152631807,3256633104,3310533178,33344,,33705,3533136000,36070,,36212,36282,,37340,3842838468,3938540167,2127120998,21545,,22707,22868,,24575,,25198,26128,,28954,30406,,31966,3202733452,36033,,63847,20315,,24447,2528223849,26379,2684230844,32323,,19989,20633,,21290,21329,,23138,,24754,2497025161,25209,26000,26503,2704727604,,2760727608,2783263848,29749,,30738,3086531189,3119231875,32203,,32933,nullnull,nullnull,null,,null,nullnull,nullnull,null,,null,,null,,null,null,nullnull,nullnull,null,nullnull,,nullnull,nullnull,nullnull,nullnull,null,,null,,null,nullnull,null,,null,nullnull,nullnull,null,,nullnull,nullnull,,null,nullnull,,null,nullnull,null,,null,null,,null,null,,null,null,,null,nullnull,null,,null,nullnull,nullnull,null,,null,nullnull,null,,null,,null,nullnull,3308633218,33778,,3504835513,,36027,37145,8750,,40763,2218823338,24428,2599627315,27567,2799628657,28693,,29613,,36051,3897124977,27703,,39425,,20107,2012320181,2028220284,2035120447,2073521490,2149621766,2198722235,22763,,23057,23531,,23556,2405124107,24473,,25448,2601226031,2661426619,26797,,27801,,28195,28681,,30722,3103831040,31072,,31721,3202332114,3290233293,33678,,34503,3503935408,35422,,36060,,36781,,3916439391,40605,,63849,2638863850,null,,null,nullnull,null,,null,,null,nullnull,null,nullnull,nullnull,null,,null,nullnull,null,null,nullnull,null,nullnull,null,,null,,null,nullnull,null,,null,,null,nullnull,null,,null,null,nullnull,null,nullnull,null,nullnull,null,null,null,null,,null,,null,nullnull,null,nullnull,,null,nullnull,,null,null,nullnull,null,null,,null,null,nullnull,nullnull,null,null,,nullnull,nullnull,,null,,21034,,2595527733,,29987,,31639,3394837240,3870420087,2574627578,,34217,19977,,26441,2686228183,3343934072,34923,,28545,3739439087,1997820663,20687,,21830,2193022039,23360,,23776,,24202,2422424258,24819,,27233,2824829245,2924829376,3045631077,31665,,35059,,35443,,36062,,22622,2988536093,21959,,31329,3203433394,2929829983,29989,,31513,2266122779,2399624207,24246,,24661,2523425471,2593326257,26329,,26646,2686629312,29790,,32110,3221432626,null,ull,nullnull,null,,nullnull,nullnull,null,,null,nullnull,nullnull,null,,null,,null,nullnull,null,nullnull,null,,null,null,,null,,null,,null,nullnull,null,,null,nullnull,nullnull,null,,null,,null,,null,nullnull,null,null,null,null,null,null,null,,null,null,,null,nullnull,null,nullnull,null,,null,nullnull,null,,null,,null,nullnull,null,nullnull,nullnull,nullnull,nullnull,null,,null,32997,33298,,35199,3547536893,37604,,40736,2280522893,24109,,26132,2622726512,27728,2810128511,3070730889,33990,,37675,,20682,,21892,2330723459,25159,,26059,2821029053,2969729764,29831,,30316,31146,,32341,3268033146,3320333337,34330,,35445,3632336984,3752137925,39245,,21352,23633,,27844,2794528203,3329234203,3513135373,3549838634,40807,,2629727570,32406,,36109,3827538493,258852804129166,6385422478,22995,2346824615,24826,,26143,,29481,29689,,30465,31596null,null,nullnull,nullnull,,null,,nullnull,nullnull,null,null,nullnull,nullnull,null,,null,nullnull,nullnull,,null,,null,null,,nullnull,,nullnull,,null,,nullnull,,nullnull,nullnull,null,nullnull,nullnull,null,null,null,,null,nullnull,nullnull,null,,null,nullnull,null,,null,,null,null,,null,,nullnull,null,,null,,null,null,null,null,null,nullnull,nullnull,nullnull,nullnull,null,,32882,33125,,37266,1999021218,2750627927,,31545,,63855,3601621484,22063,,23477,2356723569,2403425152,,2562026157,,27836,28040,2833528703,2883629138,2999030095,,30233,31505,3171231787,32032,3205734092,34157,,35380,3687736961,37045,,38902,,20439,,26463,2804931903,32396,3560636118,,2340324061,2561333984,,3913729575,2343524730,,28126,,3549436865,38924,2104763856,28753,3086237782,34928,,20462,2146322013,22234,,22781,23234,,23723,2374424101,24833null,null,,null,,null,null,nullnull,null,,nullnull,,nullnull,null,,null,,nullnull,null,,null,nullnull,null,,null,,null,nullnull,null,,null,nullnull,null,,null,nullnull,null,,null,nullnull,nullnull,null,,null,nullnull,null,null,null,null,nullnull,nullnull,null,,null,nullnull,null,,null,,null,null,,null,null,,null,nullnull,null,,null,nullnull,,null,,null,nullnull,null,null,2510125163,2548025628,25910,25976,,27530,,27929,2846529159,29417,2956029703,2987430246,30561,,3131931466,3192932143,32172,,32670,,33585,339363401034282,,35504,3572836664,3693036995,3722837526,,38539,,38568,38614,,38920,,39635,,21460,,2280923408,2348728113,,29087,,2988132901,3378924033,24455,,24642,2609226642,2699127219,2752927957,,2966730462,3063631565,3202033059,,33600,,34147,,35524,37255,3766238918,3934825100,34899,3684837477,23815,,null,,null,,nullnull,nullnull,,null,ull,,nullnull,nullnull,,null,,null,nullnull,null,nullnull,null,nullnull,null,,null,,null,,nullnull,,null,nullnull,null,,null,nullnull,,null,,null,,null,,nullnull,nullnull,nullnull,nullnull,nullnull,nullnull,nullnull,,null,nullnull,nullnull,null,,null,,null,nullnull,null,nullnull,null,nullnull,,null,,null,nullnull,null,nullnull,null,,23913,2979133181,34664,,25342,3272235126,35186,,20056,,21213,21319,,26119,,34821,3849420365,21273,,22987,2320423608,2363023629,24066,2433724643,26045,,26178,26558,2661229468,,31034,3270933940,3399735222,35430,,35553,,35962,2251623508,24335,,25325,2689327542,2825229060,31698,,35672,3660639135,39166,,20353,2044921627,2307223480,24892,,26216,,30003,3107032051,33102,,33688,3421834254,34563,3533836523,,63857,36805,,23460,23526,,23529,23563,,27777,nullnull,nullnull,null,,null,,null,,null,nullnull,null,,null,nullnull,nullnull,null,,null,nullnull,null,,null,null,,null,nullnull,null,,null,null,,nullnull,,null,nullnull,null,,null,nullnull,null,,null,nullnull,null,,null,nullnull,null,,null,nullnull,null,,null,nullnull,null,nullnull,nullnull,null,,null,nullnull,nullnull,nullnull,,null,nullnull,,nullnull,nullnull,null,,null,null63858,2814528683,29978,,35574,2016021313,63859,,27663,,20420,2081821854,23077,,25105,2927333469,33706,,34905,35357,,38597,3918740201,4028522538,23731,2399724132,24801,2485325569,27138,2819737122,37716,,39952,4082323433,23736,,26191,2669630524,38593,,38996,3983926017,35585,,38332,2181323721,24022,2424526263,30284,3378038343,22739,,29390,40232,,22830,2459126171,2752331207,4023021395,21696,,23830,2485926326,28079,,33406,3855238724,21380,2521225494,28082,,33099,38989,,null,null,,null,null,,null,null,,null,nullnull,null,,null,null,,null,nullnull,nullnull,null,,nullnull,nullnull,nullnull,nullnull,nullnull,nullnull,nullnull,null,,nullnull,null,,null,null,nullnull,null,nullnull,null,,null,nullnull,null,,null,,null,,null,,null,,null,,null,,null,,null,,null,,null,nullnull,null,nullnull,null,,null,nullnull,null,,null,null,,null,nullnull,27387,,40367,40474,2006320539,20918,22812,,25590,2692829242,32822,,37326,2436963861,6386232004,33509,3390333979,3427736493,6386320335,63864,,22756,2336324665,25562,,25965,2626463866,26954,,27915,2867329036,30162,3022131155,31344,,32650,6386835140,63869,,37312,,6387039178,2227624481,26044,,30208,3114235486,3934139770,4081220740,25014,,27277,3322220547,2257624422,28937,,3557823420,3432620474,2079622196,,25513,,23978,,20870,,20313,,63872,,22914,63874null,,nullnull,nullnull,null,,null,nullnull,nullnull,null,,null,nullnull,nullnull,null,nullnull,nullnull,null,,null,nullnull,null,,null,nullnull,null,,null,nullnull,null,nullnull,null,,null,nullnull,,null,,null,,null,,null,,null,nullnull,null,,null,nullnull,nullnull,null,,null,,null,nullnull,null,,null,nullnull,null,,null,nullnull,null,,null,nullnull,null,nullnull,,nullnull,,63875,27487,,63876,29877,,63877,3328733349,33593,3667136701,6387839192,6387963880,638812013463882,2249524441,2613163883,6388430123,3237735695,63885,,39515,2218122567,2303223071,23476,,24310,6388763888,25424,,63889,2694127783,27839,,28051,2814928436,6389028895,28982,2901763891,29123,,63892,3079930831,,31605,,63894,3230363895,34893,,63896,6389763898,37467,,40182,63900,,63902,24709,,63903,29105,,63905,38321,,63906,,63908,,63909,,28976,2974433398,33490,,null,nullnull,null,,null,nullnull,null,,null,null,,null,nullnull,null,,null,nullnull,null,,null,nullnull,null,,null,nullnull,null,nullnull,null,ull,null,nullnull,nullnull,null,,null,nullnull,null,,null,nullnull,null,,null,nullnull,null,nullnull,nullnull,nullnull,nullnull,nullnull,null,,null,nullnull,null,nullnull,null,,null,null,,null,null,,null,,null,nullnull,nullnull,null,,null,null,,63910,3833139653,4057326308,6391129121,33865,63912,,22603,63914,,23992,24433,,26144,2625427001,27054,,27891,2821428481,28634,,28719,29008,,29552,6391729787,63918,,30408,31310,3240363919,6392033521,35424,3681463921,,63922,38681,,63924,2003420522,63925,,21473,2635527757,28618,,30591,3133033454,34269,3430663926,35028,,35709,3594763927,3755563928,3867538928,20116,,20425,20658,2132021566,21555,219782271422887,23067,,24735,6392925034,,26111,2621226791,27738,,null,,null,nullnull,null,nullnull,null,null,,null,nullnull,null,,null,null,,null,nullnull,nullnull,null,,null,nullnull,null,nullnull,null,null,,null,null,,null,nullnull,null,nullnull,null,null,,null,null,nullnull,null,nullnull,null,,null,null,,null,nullnull,null,nullnull,null,,null,null,,null,,null,,null,nullnull,null,nullnull,null,nullnull,null,null,,null,null,,null,nullnull,nullnull,null,null28879,29100,29522,,34568,3549239986,40711,23627,,29508,,37434,28331,,30239,31337,3227734314,20800,2272525793,29934,29973,30320,32705,,38605,3925228198,29926,3140131402,33253,,34680,35355,2311323436,23451,2678526880,28003,,29715,29740,,32233,32747,,33109,33694,3591638446,38929,26352,,26106,26505,,29579,2052523043,27498,3070222806,2391624013,29477,30031,,63931,20709,,22575,2282922934,23002,23525,,63933,2397025303,25622,2574725854,63934,2633263935,27208,,29183,29796,63937null,null,nullnull,null,,null,null,,null,nullnull,null,null,,null,nullnull,null,nullnull,null,,null,null,,null,null,,null,null,,null,nullnull,null,null,,null,,null,nullnull,null,nullnull,null,,null,nullnull,null,nullnull,nullnull,null,,null,null,,null,nullnull,null,nullnull,null,,null,null,,null,nullnull,null,,null,,null,null,,null,nullnull,null,nullnull,null,,null,nullnull,nullnull,null,,31407,3232732350,32768,,63938,3479935201,35616,3695363939,36992,,24958,2744228020,32287,,36785,2043320653,20887,2119122471,22665,,24248,2489827029,28044,,28342,2907629794,2999229996,3288333592,33993,3636237780,37854,,20110,,20598,2077821448,21451,,23431,23507,,24858,,26100,,29591,,30402,,31121,31161,,32701,3341934261,3439836802,3693537109,37354,,38632,3863321206,24423,2609326161,26671,,31286,,38922,2011363941,27218,,28560,29065,,33464,34131null,null,,null,null,,null,nullnull,null,,null,nullnull,null,null,,null,nullnull,null,,null,null,,null,nullnull,null,,null,null,,null,,null,,null,null,,null,nullnull,null,,null,nullnull,null,null,nullnull,nullnullnull,,null,,null,,null,nullnull,null,,null,,null,,null,nullnull,null,,null,nullnull,nullnull,null,,null,null,,null,nullnull,null,,null,nullnull,null,,null,null,,38549,38642,,34074,,20112,29066,,20803,2140721729,22291,22290,22435,,23236,2349124616,24895,2558827781,27961,,28304,,29503,,33489,,3667736960,6394238498,3900040219,,36234,,20301,,2070221361,2228522996,,23561,,26256,2820529234,,32239,,3380633894,3411134655,,35096,,36949,,39759,,20369,2075420842,63943,,21929,2341823461,24188,,24254,24736,,24840,2484125540,25912,26377,6394426580,26586,,26977,2697827833,27943,6394628216,63947,,null,,null,,null,null,,null,nullnull,null,,null,null,,null,nullnull,null,nullnull,null,,null,nullnull,null,,null,nullnull,,null,null,nullnull,null,nullnull,nullnull,,null,,null,nullnull,nullnull,nullnull,nullnull,nullnull,,null,,nullnull,nullnull,nullnull,nullnull,nullnull,nullnull,nullnull,null,null,,null,nullnull,nullnull,nullnull,null,nullnull,null,nullnull,null,,null,null,,null,,28641,2949429495,63948,2978830001,63949,,63950,,32173,,33848,,35480,35547,,36400,3641836938,36926,3698637193,3732137742,6395263953,22537,63954,,32905,3294663955,63956,2080122891,2360963957,63958,28516,,32996,3610363959,37399,,63960,6396163962,63963,,25102,2870032104,34701,,22432,2468124903,27575,,37504,,2005721535,2813934093,385123889939150,2555827875,3700920957,2503333210,4044120381,,20736,,24847,,2583626885,2758930097,3069132681,3338034191,,34915,,null,,nullnull,nullnull,nullnull,,nullnull,nullnull,nullnull,,null,,nullnull,,null,nullnull,nullnull,,null,,nullnull,nullnull,nullnull,nullnull,,null,,nullnull,nullnull,,null,,null,,nullnull,nullnull,nullnull,,null,,null,,,null,,null,null,nullnull,nullnull,,null,,nullnull,,null,,null,,nullnull,nullnull,nullnull,,null,,nullnull,nullnull,nullnull,null35696,37291,,20197,2023463965,63966,,23016,63967,,24347,2441124609,63968,,63970,63971,,29669,63972,,30157,6397331227,63974,32780,,32900,33505,,63975,63976,,36019,36999,,63978,3915639180,6397963980,28727,3041032714,32716,3276435610,20154,,20995,21360,,21693,2224023035,23493,24341,,28270,6398263983,32106,3358963984,34451,3546963985,38765,3877563986,63987,19968,2031420350,22777,26085,,36920,37808,3935320219,2276422922,23001,2464163988,63989,,63990,33615,,20837,21316,ull,nullnull,null,,null,null,,null,nullnull,null,nullnull,null,,null,null,,null,nullnull,null,nullnull,null,,null,,null,null,nullnull,null,,null,nullnull,nullnull,nullnull,null,nullnull,null,,null,null,nullnull,nullnull,null,,null,null,nullnull,null,nullnull,nullnull,null,nullnull,nullnull,nullnull,null,nullnull,null,,null,nullnull,null,,null,null,,null,,null,nullnull,null,,null,null,6399163992,63993,2017321097,2338133471,20180,2105021672,22985,23039,,23383,2338824675,24904,28363,,29038,2957429943,30133,3091332043,32773,,33576,3407134249,35566,3603938604,20316,,22204,,26152,,28856,,32189,,37196,,40306,,26855,,28538,3043023697,26283,2850731668,31786,3487038620,19976,2018321280,22580,2271522767,2289223559,24115,24196,,25484,26290,2645427167,27299,,28479,,63994,29520,,31456,3191133144,33247,,33674,3390034083,34196,,35037,36115,37292,38263,nullnull,null,nullnull,null,,null,nullnull,null,null,,null,null,,null,nullnull,null,,null,null,,null,nullnull,null,null,,null,null,nullnull,nullnull,null,nullnull,null,nullnull,null,,null,,null,nullnull,null,nullnull,null,,null,null,,null,nullnull,null,,null,null,nullnull,null,nullnull,nullnull,null,nullnull,null,,null,null,,null,nullnull,null,nullnull,null,nullnull,null,,null,nullnull,null,,null,,20877,21705,,23472,25165,,26685,2677128221,2837128797,3228935009,,36617,,40782,29229,3163135533,37658,,20302,20786,,22992,24213,,26485,26990,,27822,28186,2940129482,30141,,32053,33511,,33879,34295,,36015,3648736889,3704838606,40799,21219,,23265,23490,,25973,,29380,63995,3034031309,,31821,,32735,3365935627,36042,36196,,36447,36842,,36969,3784120291,20346,,20840,2085621069,21098,2262522652,22880,2356023637,24283,,25136,26643,,27656,28593null,nullnull,null,nullnull,null,nullnull,nullnull,null,,null,null,nullnull,nullnull,null,,null,null,,null,,null,null,,null,null,,null,nullnull,null,null,,null,nullnull,null,nullnull,null,nullnull,null,nullnull,null,,null,nullnull,null,,null,,nullnull,null,,nullnull,,null,,null,,null,,nullnull,,null,nullnull,nullnull,null,,nullnull,null,,null,,null,,null,,null,,null,,29006,,30000,,30033,,31564,,31661,,3239935438,,36681,3743937523,3766637931,3865139002,3901939198,,25130,,27993,,31434,,32118,,23742,,28472,,31896,3867339822,4067025509,2572234678,1996920117,20141,20572,20597,21576,22979,2345024128,24237,24311,24449,24773,25402,2591925972,26060,26230,26232,,26984,27273,2749127712,28096,2813628191,28254,,28833,29582,2969330010,30555,,31118,31243,,31934,32142,,35330,35562,,37165,37194,,37478,37580,,38662,38742,,null,,null,,null,null,nullnull,null,nullnull,null,,null,null,,null,null,nullnull,null,nullnull,null,,null,null,nullnull,null,,null,null,,null,null,,null,null,,null,null,,null,null,nullnull,null,nullnull,null,nullnull,null,null,,null,null,nullnull,null,nullnull,null,null,,null,null,null,,null,,null,null,,null,null,,null,,null,null,null,,null,null,,null,null,,null,null,,null,null,,38914,40718,,21137,2188422564,24093,2435124716,25552,2679928639,31085,,33229,34234,,35576,3642037261,38500,3855538717,38988,,20430,,20939,21161,,24340,2442725514,25805,,26177,26362,,26397,26781,,27133,28437,,29031,29157,,29866,30522,,31066,31199,31264,3138131895,31967,3206832368,32903,3429934468,35412,3551936249,36481,,36973,37347,,38613,4016526063,31751,3627537827,23384,2356221330,25305,2946920519,23447,24478,,24939,26837,,29742,31278,,32156,32305,,null,null,,null,null,nullnull,nullnull,null,null,ull,null,,null,null,,null,null,,null,null,,null,null,,null,null,,null,nullnull,null,null,null,,null,null,,null,,null,,null,null,,null,nullnull,null,nullnull,null,nullnull,null,null,nullnull,null,nullnull,null,,null,null,,null,null,nullnull,null,nullnull,null,,null,null,,null,null,,null,null,,null,null,,null,null,nullnull,null,nullnull,null,3639436405,37758,3791220304,22352,2403824231,25387,32618,20027,,20367,20570,,32964,21610,,22014,2286323449,2403024282,26205,2641726609,26666,27880,27954,28234,,28855,29664,,31820,3200232044,32162,3331134523,35387,3546136208,36490,,36913,37198,,37956,39376,,31909,20426,,20934,2247223535,2380326201,2719727994,28310,2865228940,30063,3145934850,36897,3698138603,39423,3353720013,20210,34886,,21373,27355,,27713,3391422686,24974,,25327,2889329969,30151,,33976,35657,,20043,21482,,null,null,nullnull,null,nullnull,null,nullnull,null,null,,null,null,nullnull,null,null,null,,null,null,,null,null,,null,null,nullnull,null,nullnull,null,null,,null,null,nullnull,null,nullnull,null,,null,null,,null,null,nullnull,null,null,,null,nullnull,null,nullnull,null,nullnull,null,,null,null,,null,null,,null,nullnull,null,null,,null,,null,nullnull,null,nullnull,null,null,,null,null,null,,null,21675,22320,,24535,25345,2535125711,25903,26088,,26525,26547,2749027744,27802,28460,,30757,31049,,32025,32930,33026,,33437,33463,3458435468,63996,36100,,36978,30452,3125731287,32340,32887,,21972,22645,25391,,26185,26187,2673327035,27524,27941,,29645,29800,2985730043,30137,30433,,30603,31206,,32285,33275,,34967,35386,3604936587,36784,,37805,38499,,38663,20356,,23018,23241,2408926702,29894,,31209,31378,3318734541,36074,,36845,2601526389,63997,22519,2850332221,36655null,null,null,null,null,null,ull,null,nullnull,null,nullnull,null,null,nullnull,null,null,,null,null,nullnull,null,nullnull,null,null,nullnull,null,nullnull,null,null,,null,null,nullnull,null,null,null,nullnull,null,nullnull,null,null,nullnull,null,nullnull,null,nullnull,null,nullnull,null,null,,null,null,nullnull,null,nullnull,null,nullnull,null,,null,nullnull,nullnull,null,,null,,null,null,null,,null,nullnull,null,,37878,38598,,25074,2854819988,20376,20511,2144921983,23919,24046,,27492,30923,3164263998,3642536554,36974,25417,,30528,31364,,38015,40810,,28591,2915829864,29914,3142831762,32386,3192232408,35738,36106,,39184,39244,,23519,25830,2641332046,20717,2144322649,24920,24921,,26028,,35730,35734,2048920513,21109,2180923100,24288,2443224884,25950,2612426166,26274,,28356,28466,2946230241,31379,33081,,33750,3398020661,22512,,23528,24425,,30758,32181,,34081,37319,,20874,26613,,null,null,,null,null,nullnull,null,nullnull,null,nullnull,null,nullnull,null,null,,null,null,,null,null,null,,null,null,,null,null,,null,null,,null,null,,null,null,,null,null,nullnull,null,null,,null,null,nullnull,null,nullnull,null,nullnull,null,nullnull,null,nullnull,null,nullnull,null,nullnull,null,nullnull,null,null,,null,null,,null,null,,null,null,null,,null,nullnull,null,,null,nullnull,null,null,,20932,2297124765,34389,20508,6399921076,23610,24957,2511425299,25842,26021,2836430240,33034,36448,,38587,20191,2131521912,22825,24029,,27849,28154,,31359,33307,,36068,36368,,37351,38369,,38854,2098421746,21894,,25764,28552,,36639,3668537941,20681,2357427838,28155,,30651,3180531844,35449,,22558,2297424086,25463,29266,,30571,35548,3602836626,24307,26228,2815232893,33729,3553138737,39894,64000,,26367,28053,,32224,35558,,36958,39636,,21119,21736,2498025220,25307,26786,,null,null,nullnull,null,null,,null,null,,null,null,null,,null,null,nullnull,null,,null,null,,null,null,nullnull,null,,null,null,nullnull,null,null,,null,null,,null,null,nullnull,null,nullnull,null,null,ull,null,,null,null,,null,null,nullnull,null,nullnull,null,nullnull,null,nullnull,null,nullnull,null,null,,null,null,null,,null,null,nullnull,null,null,,null,null,nullnull,null,nullnull,null,nullnull,null,26898,2697027189,28818,28966,3081330977,30990,31186,,32918,33400,,33609,34121,3597036229,37218,37259,,20419,22225,2916530679,34560,35320,,24534,26449,,21474,22618,2354124740,24961,25696,,32880,34085,3750725774,20652,23828,,22684,2527725512,26894,2700027166,28267,3039431179,33467,3383335535,36264,3686137138,37195,3727637648,37656,37786,3861939478,39949,19985,,31069,31482,3156931689,32302,33988,,36468,36600,,26149,26943,2976320986,26414,40668,2080524544,27798,34802,,34935,24756,3320533795,null,null,nullnull,null,nullnull,null,,null,null,nullnull,null,,null,null,,null,null,nullnull,null,null,,null,null,nullnull,null,null,null,,null,null,nullnull,null,nullnull,null,nullnull,null,null,null,,null,null,nullnull,null,null,,null,nullnull,null,,null,null,,null,null,null,,null,null,nullnull,null,null,nullnull,null,null,nullnull,null,,null,null,nullnull,null,null,nullnull,null,null,null,,null,null,null,,36101,21462,,22068,23094,2360128810,32736,32858,,33261,36259,37257,,40434,20596,20164,2140824827,28204,23652,,20516,21988,,24159,24677,2677227835,28100,29118,,30196,30305,31258,,32199,32251,32622,,34473,36636,38601,3934740786,21063,21189,39149,,19971,26578,,20405,23522,2651727784,28024,29723,30759,,37756,34756,,31281,24555,,21668,21822,,22949,24816,2517125302,26422,2696533333,38464,3934539389,20524,21331,,22396,64001,,64002,25826,2621926589,28609,28655,,29752,35351,,null,null,nullnull,null,nullnull,null,null,,null,null,nullnull,null,,null,null,nullnull,null,nullnull,null,nullnull,null,nullnull,null,null,null,,null,null,null,nullnull,null,nullnull,null,null,,null,null,,null,null,nullnull,null,nullnull,null,null,,null,null,nullnull,null,nullnull,null,nullnull,null,null,,null,null,,null,null,nullnull,null,null,,null,null,null,,null,null,,null,null,,null,null,nullnull,null,,21585,22022,2237424392,24986,27470,,28845,32187,3547722890,33067,25506,,32829,36010,22612,,27067,23445,2408128271,64003,34153,,21488,22826,24608,2490727526,27760,27888,31518,,33492,36294,37040,,64004,25799,2858025745,25860,20814,,22303,35342,,26742,64005,,31570,32113,36890,22534,,33151,35114,,38969,20600,2287122956,25237,36879,,24925,29305,,22369,23110,24052,25226,25773,25850,26487,,27966,29228,29750,,32631,33453,36315,,21028,22338,26495,2925629923,36009,36774,37393null,null,nullnull,null,nullnull,null,null,,null,null,,null,null,nullnull,null,nullnull,null,null,,null,null,,null,null,,null,null,nullnull,nullnull,null,null,nullnull,nullnull,null,null,,null,null,,null,null,,null,null,,null,null,nullnull,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,38442,20843,21485,25420,20329,21764,24726,25943,27803,28031,29260,29437,31255,35207,35997,24429,28558,28921,33192,24846,20415,20559,25153,29255,31687,32232,32745,36941,38829,39449,36022,22378,24179,26544,33805,35413,21536,23318,24163,24290,24330,25987,32954,34109,38281,38491,20296,21253,21261,21263,21638,21754,22275,24067,24598,25243,25265,25429,64006,27873,28006,30129,30770,32990,33071,33502,33889,33970,34957,35090,36875,37610,39165,39825,24133,26292,26333,28689,29190,64007,20469,21117,24426,24915,26451,27161,28418,29922,31080,34920,35961,39111,39108,39491,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,21697,31263,26963,35575,35914,39080,39342,24444,25259,30130,30382,34987,36991,38466,21305,24380,24517,27852,29644,30050,30091,31558,33534,39325,20047,36924,19979,20309,21414,22799,24264,26160,27827,29781,33655,34662,36032,36944,38686,39957,22737,23416,34384,35604,40372,23506,24680,24717,26097,27735,28450,28579,28698,32597,32752,38289,38290,38480,38867,21106,36676,20989,21547,21688,21859,21898,27323,28085,32216,33382,37532,38519,40569,21512,21704,30418,34532,38308,38356,38492,20130,20233,23022,23270,24055,24658,25239,26477,26689,27782,28207,32568,32923,33322,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,64008,64009,38917,20133,20565,21683,22419,22874,23401,23475,25032,26999,28023,28707,34809,35299,35442,35559,36994,39405,39608,21182,26680,20502,24184,26447,33607,34892,20139,21521,22190,29670,37141,38911,39177,39255,39321,22099,22687,34395,35377,25010,27382,29563,36562,27463,38570,39511,22869,29184,36203,38761,20436,23796,24358,25080,26203,27883,28843,29572,29625,29694,30505,30541,32067,32098,32291,33335,34898,64010,36066,37449,39023,23377,31348,34880,38913,23244,20448,21332,22846,23805,25406,28025,29433,33029,33031,33698,37583,38960,20136,20804,21009,22411,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,24418,27842,28366,28677,28752,28847,29074,29673,29801,33610,34722,34913,36872,37026,37795,39336,20846,24407,24800,24935,26291,34137,36426,37295,38795,20046,20114,21628,22741,22778,22909,23733,24359,25142,25160,26122,26215,27627,28009,28111,28246,28408,28564,28640,28649,28765,29392,29733,29786,29920,30355,31068,31946,32286,32993,33446,33899,33983,34382,34399,34676,35703,35946,37804,38912,39013,24785,25110,37239,23130,26127,28151,28222,29759,39746,24573,24794,31503,21700,24344,27742,27859,27946,28888,32005,34425,35340,40251,21270,21644,23301,27194,28779,30069,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,31117,31166,33457,33775,35441,35649,36008,38772,64011,25844,25899,30906,30907,31339,20024,21914,22864,23462,24187,24739,25563,27489,26213,26707,28185,29029,29872,32008,36996,39529,39973,27963,28369,29502,35905,38346,20976,24140,24488,24653,24822,24880,24908,26179,26180,27045,27841,28255,28361,28514,29004,29852,30343,31681,31783,33618,34647,36945,38541,40643,21295,22238,24315,24458,24674,24724,25079,26214,26371,27292,28142,28590,28784,29546,32362,33214,33588,34516,35496,36036,21123,29554,23446,27243,37892,21742,22150,23389,25928,25989,26313,26783,28045,28102,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,29243,32948,37237,39501,20399,20505,21402,21518,21564,21897,21957,24127,24460,26429,29030,29661,36869,21211,21235,22628,22734,28932,29071,29179,34224,35347,26248,34216,21927,26244,29002,33841,21321,21913,27585,24409,24509,25582,26249,28999,35569,36637,40638,20241,25658,28875,30054,34407,24676,35662,40440,20807,20982,21256,27958,33016,40657,26133,27427,28824,30165,21507,23673,32007,35350,27424,27453,27462,21560,24688,27965,32725,33288,20694,20958,21916,22123,22221,23020,23305,24076,24985,24984,25137,26206,26342,29081,29113,29114,29351,31143,31232,32690,35440,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],
--> --------------------

--> maximum size reached

--> --------------------

Messung V0.5 in Prozent
C=99 H=96 G=97

¤ Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.6.628Bemerkung:  ¤

*Bot Zugriff






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.